Skip to content

Commit 94208c6

Browse files
committed
Add CPU_COUNT/CPU_COUNT_S
revenge of #598
1 parent a1c4092 commit 94208c6

File tree

1 file changed

+13
-0
lines changed
  • src/unix/linux_like/linux

1 file changed

+13
-0
lines changed

src/unix/linux_like/linux/mod.rs

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2564,6 +2564,19 @@ f! {
25642564
0 != (cpuset.bits[idx] & (1 << offset))
25652565
}
25662566

2567+
pub fn CPU_COUNT_S(size: usize, cpuset: &cpu_set_t) -> ::c_int {
2568+
let mut s: u32 = 0;
2569+
let size_of_mask = ::mem::size_of_val(&cpuset.bits[0]);
2570+
for i in cpuset.bits[..(size / size_of_mask)].iter() {
2571+
s += i.count_ones();
2572+
};
2573+
s as ::c_int
2574+
}
2575+
2576+
pub fn CPU_COUNT(cpuset: &cpu_set_t) -> ::c_int {
2577+
CPU_COUNT_S(::mem::size_of::<cpu_set_t>(), cpuset)
2578+
}
2579+
25672580
pub fn CPU_EQUAL(set1: &cpu_set_t, set2: &cpu_set_t) -> bool {
25682581
set1.bits == set2.bits
25692582
}

0 commit comments

Comments
 (0)