diff options
author | Ryan Zoeller <rtzoeller@rtzoeller.com> | 2022-07-11 18:33:09 -0500 |
---|---|---|
committer | Ryan Zoeller <rtzoeller@rtzoeller.com> | 2022-07-11 18:33:09 -0500 |
commit | 57dff108b9b2331c463b4f79d9c349084a70b8e5 (patch) | |
tree | 3f1d131b6fa7034ffcfdebc666a5c0b4114ce3c9 | |
parent | b01a39a237c65438849124bcf1d6d7e73b0edcb4 (diff) | |
download | rust-libc-57dff108b9b2331c463b4f79d9c349084a70b8e5.tar.gz |
Fix FreeBSD CPU_ macros
The current definitions conflate bits and bytes, leading to panics.
-rw-r--r-- | src/unix/bsd/freebsdlike/freebsd/mod.rs | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/src/unix/bsd/freebsdlike/freebsd/mod.rs b/src/unix/bsd/freebsdlike/freebsd/mod.rs index 43686d3f51..84e43b23e5 100644 --- a/src/unix/bsd/freebsdlike/freebsd/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/mod.rs @@ -3781,21 +3781,21 @@ f! { } pub fn CPU_SET(cpu: usize, cpuset: &mut cpuset_t) -> () { - let bitset_bits = ::mem::size_of::<::c_long>(); + let bitset_bits = 8 * ::mem::size_of::<::c_long>(); let (idx, offset) = (cpu / bitset_bits, cpu % bitset_bits); cpuset.__bits[idx] |= 1 << offset; () } pub fn CPU_CLR(cpu: usize, cpuset: &mut cpuset_t) -> () { - let bitset_bits = ::mem::size_of::<::c_long>(); + let bitset_bits = 8 * ::mem::size_of::<::c_long>(); let (idx, offset) = (cpu / bitset_bits, cpu % bitset_bits); cpuset.__bits[idx] &= !(1 << offset); () } pub fn CPU_ISSET(cpu: usize, cpuset: &cpuset_t) -> bool { - let bitset_bits = ::mem::size_of::<::c_long>(); + let bitset_bits = 8 * ::mem::size_of::<::c_long>(); let (idx, offset) = (cpu / bitset_bits, cpu % bitset_bits); 0 != cpuset.__bits[idx] & (1 << offset) } @@ -3803,9 +3803,9 @@ f! { pub fn CPU_COUNT(cpuset: &cpuset_t) -> ::c_int { let mut s: u32 = 0; let cpuset_size = ::mem::size_of::<cpuset_t>(); - let bitset_bits = ::mem::size_of::<::c_long>(); + let bitset_size = ::mem::size_of::<::c_long>(); - for i in cpuset.__bits[..(cpuset_size / bitset_bits)].iter() { + for i in cpuset.__bits[..(cpuset_size / bitset_size)].iter() { s += i.count_ones(); }; s as ::c_int |