Skip to content

Commit 91810ce

Browse files
committed
freebsd add numa domain api
1 parent 71b2de4 commit 91810ce

File tree

2 files changed

+30
-0
lines changed

2 files changed

+30
-0
lines changed

libc-test/build.rs

+1
Original file line numberDiff line numberDiff line change
@@ -1814,6 +1814,7 @@ fn test_freebsd(target: &str) {
18141814
"sys/capsicum.h",
18151815
[freebsdlast]:"sys/auxv.h",
18161816
"sys/cpuset.h",
1817+
[freebsdlast]:"sys/domainset.h",
18171818
"sys/event.h",
18181819
"sys/extattr.h",
18191820
"sys/file.h",

src/unix/bsd/freebsdlike/freebsd/freebsd13/mod.rs

+29
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ pub type ino_t = ::c_ulong;
66
pub type shmatt_t = ::c_uint;
77
pub type kpaddr_t = u64;
88
pub type kssize_t = i64;
9+
pub type domainset_t = __c_anonymous_domainset;
910

1011
s! {
1112
pub struct shmid_ds {
@@ -49,6 +50,10 @@ s! {
4950
pub kp_offset: ::off_t,
5051
pub kp_len: ::size_t,
5152
}
53+
54+
pub struct __c_anonymous_domainset {
55+
_priv: [::uintptr_t; 4],
56+
}
5257
}
5358

5459
s_no_extra_traits! {
@@ -222,6 +227,13 @@ pub const KF_TYPE_EVENTFD: ::c_int = 13;
222227
pub const SPECNAMELEN: ::c_int = 255;
223228
pub const KI_NSPARE_PTR: usize = 5;
224229

230+
/// domainset policies
231+
pub const DOMAINSET_POLICY_INVALID: ::c_int = 0;
232+
pub const DOMAINSET_POLICY_ROUNDROBIN: ::c_int = 1;
233+
pub const DOMAINSET_POLICY_FIRSTTOUCH: ::c_int = 2;
234+
pub const DOMAINSET_POLICY_PREFER: ::c_int = 3;
235+
pub const DOMAINSET_POLICY_INTERLEAVE: ::c_int = 4;
236+
225237
f! {
226238
pub fn SOCKCRED2SIZE(ngrps: usize) -> usize {
227239
let ngrps = if ngrps > 0 {
@@ -261,6 +273,23 @@ extern "C" {
261273
pub fn setproctitle_fast(fmt: *const ::c_char, ...);
262274
pub fn timingsafe_bcmp(a: *const ::c_void, b: *const ::c_void, len: ::size_t) -> ::c_int;
263275
pub fn timingsafe_memcmp(a: *const ::c_void, b: *const ::c_void, len: ::size_t) -> ::c_int;
276+
277+
pub fn cpuset_getdomain(
278+
level: ::cpulevel_t,
279+
which: ::cpuwhich_t,
280+
id: ::id_t,
281+
setsize: ::size_t,
282+
mask: *mut ::domainset_t,
283+
policy: *mut ::c_int,
284+
) -> ::c_int;
285+
pub fn cpuset_setdomain(
286+
level: ::cpulevel_t,
287+
which: ::cpuwhich_t,
288+
id: ::id_t,
289+
setsize: ::size_t,
290+
mask: *const ::domainset_t,
291+
policy: ::c_int,
292+
) -> ::c_int;
264293
}
265294

266295
#[link(name = "kvm")]

0 commit comments

Comments
 (0)