diff options
author | bors <bors@rust-lang.org> | 2021-10-23 11:03:14 +0000 |
---|---|---|
committer | bors <bors@rust-lang.org> | 2021-10-23 11:03:14 +0000 |
commit | 4f0b03761903e53ed2574a5b31ea003b35dfc496 (patch) | |
tree | e14a57bede4b6a3aab36a2bc5a6740079cdb44d0 | |
parent | a2693689ebe760e534c27240204ca5a27b7881cd (diff) | |
parent | 91810ce1d2a8c0b446f29cba5692c9ab137cf56a (diff) | |
download | rust-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.rs | 1 | ||||
-rw-r--r-- | src/unix/bsd/freebsdlike/freebsd/freebsd13/mod.rs | 29 |
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")] |