summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2022-11-30 12:44:39 +0000
committerbors <bors@rust-lang.org>2022-11-30 12:44:39 +0000
commitd6fe78238726fc23e722dc89d62b3d63acf2ff1f (patch)
tree805c782eeac847c09648ced16e8e30de966371c5
parentb8c8e13e4dd36d79537d36274fc19dd494abcfb6 (diff)
parentafb665dbec82369d53916fe2e27ba4e3bcaad6c7 (diff)
downloadrust-libc-d6fe78238726fc23e722dc89d62b3d63acf2ff1f.tar.gz
Auto merge of #3022 - asomers:capsicum, r=JohnTitor
Add more capsicum functions for FreeBSD These have all been available since at least FreeBSD 9.2.
-rw-r--r--libc-test/semver/freebsd.txt17
-rw-r--r--src/unix/bsd/freebsdlike/freebsd/mod.rs6
2 files changed, 23 insertions, 0 deletions
diff --git a/libc-test/semver/freebsd.txt b/libc-test/semver/freebsd.txt
index 8f73e027af..e3a824a874 100644
--- a/libc-test/semver/freebsd.txt
+++ b/libc-test/semver/freebsd.txt
@@ -1509,6 +1509,23 @@ bpf_program
bpf_stat
bpf_version
bsearch
+cap_enter
+cap_getmode
+cap_fcntls_get
+cap_fcntls_limit
+cap_ioctls_get
+cap_ioctls_limit
+__cap_rights_init
+__cap_rights_get
+__cap_rights_set
+__cap_rights_clear
+__cap_rights_is_set
+cap_rights_is_valid
+cap_rights_limit
+cap_rights_merge
+cap_rights_remove
+cap_rights_contains
+cap_sandboxed
cfmakesane
chflags
chflagsat
diff --git a/src/unix/bsd/freebsdlike/freebsd/mod.rs b/src/unix/bsd/freebsdlike/freebsd/mod.rs
index 4064a3fe4e..9847030f80 100644
--- a/src/unix/bsd/freebsdlike/freebsd/mod.rs
+++ b/src/unix/bsd/freebsdlike/freebsd/mod.rs
@@ -4292,8 +4292,13 @@ extern "C" {
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;
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;
@@ -4303,6 +4308,7 @@ extern "C" {
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;