From e6d663064d8bc5ed85c663b976436bab7d233873 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 | 8 ++++++++ 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/mod.rs | 9 +++++++++ 9 files changed, 45 insertions(+) diff --git a/libc-test/semver/apple.txt b/libc-test/semver/apple.txt index 3bc827f8d849c..48d96accba452 100644 --- a/libc-test/semver/apple.txt +++ b/libc-test/semver/apple.txt @@ -1545,6 +1545,10 @@ UTUN_OPT_IFNAME 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 6d41c8c6cabd9..4b4141a98b800 100644 --- a/libc-test/semver/dragonfly.txt +++ b/libc-test/semver/dragonfly.txt @@ -367,6 +367,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 99748fe84be5f..fc6aca59f78da 100644 --- a/libc-test/semver/freebsd.txt +++ b/libc-test/semver/freebsd.txt @@ -516,6 +516,10 @@ IFF_SIMPLEX IFF_STATICARP IFF_UP IMAXBEL +INHERIT_COPY +INHERIT_NONE +INHERIT_SHARE +INHERIT_ZERO INIT_PROCESS IOV_MAX IPC_CREAT @@ -1705,6 +1709,10 @@ VDISCARD VDSUSP VERASE2 VLNEXT +VM_INHERIT_COPY +VM_INHERIT_DONATE_COPY +VM_INHERIT_NONE +VM_INHERIT_SHARE VM_TOTAL VREPRINT VSTATUS diff --git a/libc-test/semver/netbsd.txt b/libc-test/semver/netbsd.txt index 982f610a4f3aa..afab5e6ba7fc8 100644 --- a/libc-test/semver/netbsd.txt +++ b/libc-test/semver/netbsd.txt @@ -635,6 +635,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 0505a3e4a2564..32c5fb9140a78 100644 --- a/libc-test/semver/openbsd.txt +++ b/libc-test/semver/openbsd.txt @@ -493,6 +493,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 7b084251d3b8e..9d20d92406590 100644 --- a/src/unix/bsd/apple/mod.rs +++ b/src/unix/bsd/apple/mod.rs @@ -3308,6 +3308,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 30d78f5ff5263..b9c74ace6872d 100644 --- a/src/unix/bsd/freebsdlike/mod.rs +++ b/src/unix/bsd/freebsdlike/mod.rs @@ -576,6 +576,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 754272a852c48..bb7e4ab4afecc 100644 --- a/src/unix/bsd/mod.rs +++ b/src/unix/bsd/mod.rs @@ -658,6 +658,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/mod.rs b/src/unix/bsd/netbsdlike/mod.rs index 557199dc75a87..961b8b9369dc8 100644 --- a/src/unix/bsd/netbsdlike/mod.rs +++ b/src/unix/bsd/netbsdlike/mod.rs @@ -209,6 +209,15 @@ 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 MAP_INHERIT_SHARE: c_int = 0; +pub const MAP_INHERIT_COPY: c_int = 1; +pub const MAP_INHERIT_NONE: c_int = 2; +#[cfg(target_os = "netbsd")] +pub const MAP_INHERIT_DONATE_COPY: c_int = 3; +#[cfg(target_os = "netbsd")] +pub const MAP_INHERIT_ZERO: c_int = 4; + pub const IPC_CREAT: c_int = 0o001000; pub const IPC_EXCL: c_int = 0o002000; pub const IPC_NOWAIT: c_int = 0o004000;