Skip to content

Commit cb688da

Browse files
committed
Merge pull request rust-lang#175 from alexcrichton/rollup
Merging 2 PRs together
2 parents a64ee24 + e295b8a commit cb688da

File tree

4 files changed

+42
-0
lines changed

4 files changed

+42
-0
lines changed

src/unix/bsd/openbsdlike/mod.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -366,6 +366,9 @@ pub const _SC_PAGE_SIZE: ::c_int = _SC_PAGESIZE;
366366
pub const _SC_FSYNC : ::c_int = 29;
367367

368368
pub const KERN_PROC_ARGV: ::c_int = 1;
369+
pub const KERN_PROC_NARGV: ::c_int = 2;
370+
pub const KERN_PROC_ENV: ::c_int = 3;
371+
pub const KERN_PROC_NENV: ::c_int = 4;
369372

370373
pub const Q_GETQUOTA: ::c_int = 0x300;
371374
pub const Q_SETQUOTA: ::c_int = 0x400;

src/unix/notbsd/linux/mips.rs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -498,4 +498,10 @@ extern {
498498
flags: ::c_int) -> ::c_int;
499499
pub fn eventfd(init: ::c_uint, flags: ::c_int) -> ::c_int;
500500
pub fn ptrace(request: ::c_uint, ...) -> ::c_long;
501+
pub fn pthread_attr_getaffinity_np(attr: *const ::pthread_attr_t,
502+
cpusetsize: ::size_t,
503+
cpuset: *mut ::cpu_set_t) -> ::c_int;
504+
pub fn pthread_attr_setaffinity_np(attr: *mut ::pthread_attr_t,
505+
cpusetsize: ::size_t,
506+
cpuset: *const ::cpu_set_t) -> ::c_int;
501507
}

src/unix/notbsd/linux/mod.rs

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
//! Linux-specific definitions for linux-like values
22
3+
use dox::mem;
4+
35
pub type useconds_t = u32;
46
pub type dev_t = u64;
57
pub type socklen_t = u32;
@@ -185,6 +187,31 @@ s! {
185187
}
186188
}
187189

190+
f! {
191+
pub fn CPU_ZERO(cpuset: &mut cpu_set_t) -> () {
192+
for slot in cpuset.bits.iter_mut() {
193+
*slot = 0;
194+
}
195+
}
196+
197+
pub fn CPU_SET(cpu: usize, cpuset: &mut cpu_set_t) -> () {
198+
let size = mem::size_of_val(&cpuset.bits[0]);
199+
let (idx, offset) = (cpu / size, cpu % size);
200+
cpuset.bits[idx] |= 1 << offset;
201+
()
202+
}
203+
204+
pub fn CPU_ISSET(cpu: usize, cpuset: &cpu_set_t) -> bool {
205+
let size = mem::size_of_val(&cpuset.bits[0]);
206+
let (idx, offset) = (cpu / size, cpu % size);
207+
0 != (cpuset.bits[idx] & (1 << offset))
208+
}
209+
210+
pub fn CPU_EQUAL(set1: &cpu_set_t, set2: &cpu_set_t) -> bool {
211+
set1.bits == set2.bits
212+
}
213+
}
214+
188215
pub const FILENAME_MAX: ::c_uint = 4096;
189216
pub const L_tmpnam: ::c_uint = 20;
190217
pub const _PC_NAME_MAX: ::c_int = 3;

src/unix/notbsd/linux/other/mod.rs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -438,6 +438,12 @@ extern {
438438
flags: ::c_int) -> ::c_int;
439439
pub fn eventfd(init: ::c_uint, flags: ::c_int) -> ::c_int;
440440
pub fn ptrace(request: ::c_uint, ...) -> ::c_long;
441+
pub fn pthread_attr_getaffinity_np(attr: *const ::pthread_attr_t,
442+
cpusetsize: ::size_t,
443+
cpuset: *mut ::cpu_set_t) -> ::c_int;
444+
pub fn pthread_attr_setaffinity_np(attr: *mut ::pthread_attr_t,
445+
cpusetsize: ::size_t,
446+
cpuset: *const ::cpu_set_t) -> ::c_int;
441447
}
442448

443449
cfg_if! {

0 commit comments

Comments
 (0)