Skip to content

Commit 473ddd5

Browse files
committed
netbsd cpu affinity api
1 parent b367bc4 commit 473ddd5

File tree

2 files changed

+31
-0
lines changed

2 files changed

+31
-0
lines changed

libc-test/semver/netbsd.txt

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1009,6 +1009,12 @@ _UTX_USERSIZE
10091009
__cpu_simple_lock_nv_t
10101010
__errno
10111011
__exit_status
1012+
_cpuset_clr
1013+
_cpuset_create
1014+
_cpuset_destroy
1015+
_cpuset_isset
1016+
_cpuset_set
1017+
_cpuset_zero
10121018
_lwp_self
10131019
abs
10141020
accept4
@@ -1195,8 +1201,10 @@ pthread_attr_getstack
11951201
pthread_cancel
11961202
pthread_condattr_setclock
11971203
pthread_getattr_np
1204+
pthread_getaffinity_np
11981205
pthread_kill
11991206
pthread_mutex_timedlock
1207+
pthread_setaffinity_np
12001208
pthread_setname_np
12011209
ptrace
12021210
ptrace_io_desc

src/unix/bsd/netbsdlike/netbsd/mod.rs

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@ type __pthread_spin_t = __cpu_simple_lock_nv_t;
1010
pub type vm_size_t = ::uintptr_t; // FIXME: deprecated since long time
1111
pub type lwpid_t = ::c_uint;
1212
pub type shmatt_t = ::c_uint;
13+
pub type cpuid_t = u64;
14+
pub type cpuset_t = _cpuset;
1315

1416
// elf.h
1517

@@ -429,6 +431,10 @@ s! {
429431
pub dlpi_tls_modid: usize,
430432
pub dlpi_tls_data: *mut ::c_void,
431433
}
434+
435+
pub struct _cpuset {
436+
bits: [u32; 0]
437+
}
432438
}
433439

434440
s_no_extra_traits! {
@@ -2046,6 +2052,23 @@ extern "C" {
20462052
stackaddr: *mut *mut ::c_void,
20472053
stacksize: *mut ::size_t,
20482054
) -> ::c_int;
2055+
pub fn pthread_getaffinity_np(
2056+
thread: ::pthread_t,
2057+
size: ::size_t,
2058+
set: *mut cpuset_t,
2059+
) -> ::c_int;
2060+
pub fn pthread_setaffinity_np(
2061+
thread: ::pthread_t,
2062+
size: ::size_t,
2063+
set: *mut cpuset_t,
2064+
) -> ::c_int;
2065+
pub fn _cpuset_create() -> *mut cpuset_t;
2066+
pub fn _cpuset_destroy(set: *mut cpuset_t);
2067+
pub fn _cpuset_clr(cpu: cpuid_t, set: *mut cpuset_t) -> ::c_int;
2068+
pub fn _cpuset_set(cpu: cpuid_t, set: *mut cpuset_t) -> ::c_int;
2069+
pub fn _cpuset_isset(cpu: cpuid_t, set: *const cpuset_t) -> ::c_int;
2070+
pub fn _cpuset_size(set: *const cpuset_t) -> ::size_t;
2071+
pub fn _cpuset_zero(set: *mut cpuset_t);
20492072
#[link_name = "__sigtimedwait50"]
20502073
pub fn sigtimedwait(
20512074
set: *const sigset_t,

0 commit comments

Comments
 (0)