summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2021-10-23 11:03:14 +0000
committerbors <bors@rust-lang.org>2021-10-23 11:03:14 +0000
commit4f0b03761903e53ed2574a5b31ea003b35dfc496 (patch)
treee14a57bede4b6a3aab36a2bc5a6740079cdb44d0
parenta2693689ebe760e534c27240204ca5a27b7881cd (diff)
parent91810ce1d2a8c0b446f29cba5692c9ab137cf56a (diff)
downloadrust-libc-4f0b03761903e53ed2574a5b31ea003b35dfc496.tar.gz
Auto merge of #2475 - devnexen:fbsd_numa_domain, r=JohnTitor
freebsd add numa domain api
-rw-r--r--libc-test/build.rs1
-rw-r--r--src/unix/bsd/freebsdlike/freebsd/freebsd13/mod.rs29
2 files changed, 30 insertions, 0 deletions
diff --git a/libc-test/build.rs b/libc-test/build.rs
index a161507f10..d2737d0e34 100644
--- a/libc-test/build.rs
+++ b/libc-test/build.rs
@@ -1814,6 +1814,7 @@ fn test_freebsd(target: &str) {
"sys/capsicum.h",
[freebsdlast]:"sys/auxv.h",
"sys/cpuset.h",
+ [freebsdlast]:"sys/domainset.h",
"sys/event.h",
"sys/extattr.h",
"sys/file.h",
diff --git a/src/unix/bsd/freebsdlike/freebsd/freebsd13/mod.rs b/src/unix/bsd/freebsdlike/freebsd/freebsd13/mod.rs
index fffeec8600..92ea7f5aa2 100644
--- a/src/unix/bsd/freebsdlike/freebsd/freebsd13/mod.rs
+++ b/src/unix/bsd/freebsdlike/freebsd/freebsd13/mod.rs
@@ -6,6 +6,7 @@ pub type ino_t = ::c_ulong;
pub type shmatt_t = ::c_uint;
pub type kpaddr_t = u64;
pub type kssize_t = i64;
+pub type domainset_t = __c_anonymous_domainset;
s! {
pub struct shmid_ds {
@@ -49,6 +50,10 @@ s! {
pub kp_offset: ::off_t,
pub kp_len: ::size_t,
}
+
+ pub struct __c_anonymous_domainset {
+ _priv: [::uintptr_t; 4],
+ }
}
s_no_extra_traits! {
@@ -222,6 +227,13 @@ pub const KF_TYPE_EVENTFD: ::c_int = 13;
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;
+
f! {
pub fn SOCKCRED2SIZE(ngrps: usize) -> usize {
let ngrps = if ngrps > 0 {
@@ -261,6 +273,23 @@ extern "C" {
pub fn setproctitle_fast(fmt: *const ::c_char, ...);
pub fn timingsafe_bcmp(a: *const ::c_void, b: *const ::c_void, len: ::size_t) -> ::c_int;
pub fn timingsafe_memcmp(a: *const ::c_void, b: *const ::c_void, len: ::size_t) -> ::c_int;
+
+ pub fn cpuset_getdomain(
+ level: ::cpulevel_t,
+ which: ::cpuwhich_t,
+ id: ::id_t,
+ setsize: ::size_t,
+ mask: *mut ::domainset_t,
+ policy: *mut ::c_int,
+ ) -> ::c_int;
+ pub fn cpuset_setdomain(
+ level: ::cpulevel_t,
+ which: ::cpuwhich_t,
+ id: ::id_t,
+ setsize: ::size_t,
+ mask: *const ::domainset_t,
+ policy: ::c_int,
+ ) -> ::c_int;
}
#[link(name = "kvm")]