From b6adf58eec103ae8ecc0eba3507174178af427ec Mon Sep 17 00:00:00 2001 From: Ossi Herrala Date: Thu, 4 Dec 2025 13:32:16 +0200 Subject: [PATCH] bsd: Add missing minherit system call --- libc-test/semver/apple.txt | 4 ++++ libc-test/semver/dragonfly.txt | 4 ++++ libc-test/semver/freebsd.txt | 4 ++++ libc-test/semver/netbsd.txt | 5 +++++ libc-test/semver/openbsd.txt | 4 ++++ src/unix/bsd/apple/mod.rs | 4 ++++ src/unix/bsd/freebsdlike/mod.rs | 6 ++++++ src/unix/bsd/mod.rs | 1 + src/unix/bsd/netbsdlike/netbsd/mod.rs | 7 +++++++ src/unix/bsd/netbsdlike/openbsd/mod.rs | 6 ++++++ 10 files changed, 45 insertions(+) diff --git a/libc-test/semver/apple.txt b/libc-test/semver/apple.txt index bd18afc5822f..41f3bf6402ef 100644 --- a/libc-test/semver/apple.txt +++ b/libc-test/semver/apple.txt @@ -1535,6 +1535,10 @@ UTIME_OMIT VDISCARD VDSUSP VLNEXT +VM_INHERIT_COPY +VM_INHERIT_DONATE_COPY +VM_INHERIT_NONE +VM_INHERIT_SHARE VM_LOADAVG VM_MACHFACTOR VM_MAKE_TAG diff --git a/libc-test/semver/dragonfly.txt b/libc-test/semver/dragonfly.txt index 6a14a615b8bb..f08b6930ec85 100644 --- a/libc-test/semver/dragonfly.txt +++ b/libc-test/semver/dragonfly.txt @@ -382,6 +382,10 @@ IFF_SMART IFF_STATICARP IFF_UP IMAXBEL +INHERIT_COPY +INHERIT_NONE +INHERIT_SHARE +INHERIT_ZERO INIT_PROCESS IOV_MAX IPC_CREAT diff --git a/libc-test/semver/freebsd.txt b/libc-test/semver/freebsd.txt index 252f7fff4686..1ea01bf0de3c 100644 --- a/libc-test/semver/freebsd.txt +++ b/libc-test/semver/freebsd.txt @@ -540,6 +540,10 @@ IN6_IFF_NODAD IN6_IFF_PREFER_SOURCE IN6_IFF_TEMPORARY IN6_IFF_TENTATIVE +INHERIT_COPY +INHERIT_NONE +INHERIT_SHARE +INHERIT_ZERO INIT_PROCESS IOV_MAX IPC_CREAT diff --git a/libc-test/semver/netbsd.txt b/libc-test/semver/netbsd.txt index 1169ec12b012..58219520363b 100644 --- a/libc-test/semver/netbsd.txt +++ b/libc-test/semver/netbsd.txt @@ -650,6 +650,11 @@ MAP_ALIGNMENT_MASK MAP_ALIGNMENT_SHIFT MAP_FILE MAP_HASSEMAPHORE +MAP_INHERIT_COPY +MAP_INHERIT_DONATE_COPY +MAP_INHERIT_NONE +MAP_INHERIT_SHARE +MAP_INHERIT_ZERO MAP_NORESERVE MAP_REMAPDUP MAP_RENAME diff --git a/libc-test/semver/openbsd.txt b/libc-test/semver/openbsd.txt index f7933a856d64..a5116d75c4b8 100644 --- a/libc-test/semver/openbsd.txt +++ b/libc-test/semver/openbsd.txt @@ -537,6 +537,10 @@ MAP_CONCEAL MAP_COPY MAP_FILE MAP_HASSEMAPHORE +MAP_INHERIT_COPY +MAP_INHERIT_NONE +MAP_INHERIT_SHARE +MAP_INHERIT_ZERO MAP_NOEXTEND MAP_NORESERVE MAP_RENAME diff --git a/src/unix/bsd/apple/mod.rs b/src/unix/bsd/apple/mod.rs index 376319109ef8..5a20ca248b6f 100644 --- a/src/unix/bsd/apple/mod.rs +++ b/src/unix/bsd/apple/mod.rs @@ -3423,6 +3423,10 @@ 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 VM_INHERIT_SHARE: c_int = 0; +pub const VM_INHERIT_COPY: c_int = 1; +pub const VM_INHERIT_NONE: c_int = 2; +pub const VM_INHERIT_DONATE_COPY: c_int = 3; pub const MEMORY_OBJECT_NULL: crate::memory_object_t = 0; pub const HW_MACHINE: c_int = 1; pub const HW_MODEL: c_int = 2; diff --git a/src/unix/bsd/freebsdlike/mod.rs b/src/unix/bsd/freebsdlike/mod.rs index aa680abd097b..98df0ac68b98 100644 --- a/src/unix/bsd/freebsdlike/mod.rs +++ b/src/unix/bsd/freebsdlike/mod.rs @@ -581,6 +581,12 @@ pub const MAP_ANONYMOUS: c_int = MAP_ANON; pub const MAP_FAILED: *mut c_void = !0 as *mut c_void; +// minherit syscall inherit values +pub const INHERIT_SHARE: c_int = 0; +pub const INHERIT_COPY: c_int = 1; +pub const INHERIT_NONE: c_int = 2; +pub const INHERIT_ZERO: c_int = 3; + pub const MCL_CURRENT: c_int = 0x0001; pub const MCL_FUTURE: c_int = 0x0002; diff --git a/src/unix/bsd/mod.rs b/src/unix/bsd/mod.rs index e925289796e5..7ee39774a1ba 100644 --- a/src/unix/bsd/mod.rs +++ b/src/unix/bsd/mod.rs @@ -628,6 +628,7 @@ extern "C" { )] 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 minherit(addr: *mut c_void, len: size_t, inherit: c_int) -> c_int; #[cfg_attr( all(target_os = "macos", target_arch = "x86"), diff --git a/src/unix/bsd/netbsdlike/netbsd/mod.rs b/src/unix/bsd/netbsdlike/netbsd/mod.rs index 8b7bfd24824c..7644b3ea4bcd 100644 --- a/src/unix/bsd/netbsdlike/netbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/netbsd/mod.rs @@ -1111,6 +1111,13 @@ pub const MAP_ALIGNMENT_64PB: c_int = 56 << MAP_ALIGNMENT_SHIFT; // mremap flag pub const MAP_REMAPDUP: c_int = 0x004; +// minherit syscall inherit values +pub const MAP_INHERIT_SHARE: c_int = 0; +pub const MAP_INHERIT_COPY: c_int = 1; +pub const MAP_INHERIT_NONE: c_int = 2; +pub const MAP_INHERIT_DONATE_COPY: c_int = 3; +pub const MAP_INHERIT_ZERO: c_int = 4; + pub const DCCP_TYPE_REQUEST: c_int = 0; pub const DCCP_TYPE_RESPONSE: c_int = 1; pub const DCCP_TYPE_DATA: c_int = 2; diff --git a/src/unix/bsd/netbsdlike/openbsd/mod.rs b/src/unix/bsd/netbsdlike/openbsd/mod.rs index 89348d7ec156..4fddbb5988e4 100644 --- a/src/unix/bsd/netbsdlike/openbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/openbsd/mod.rs @@ -1096,6 +1096,12 @@ pub const MAP_NORESERVE: c_int = 0x0000; pub const MAP_HASSEMAPHORE: c_int = 0x0000; pub const MAP_TRYFIXED: c_int = 0; +// minherit syscall inherit values +pub const MAP_INHERIT_SHARE: c_int = 0; +pub const MAP_INHERIT_COPY: c_int = 1; +pub const MAP_INHERIT_NONE: c_int = 2; +pub const MAP_INHERIT_ZERO: c_int = 3; + pub const EIPSEC: c_int = 82; pub const ENOMEDIUM: c_int = 85; pub const EMEDIUMTYPE: c_int = 86;