//! Rust implementation of the `CPU_*` macro API. #![allow(non_snake_case)] use super::types::{RawCpuSet, CPU_SETSIZE}; use crate::backend::c; #[inline] pub(crate) fn CPU_SET(cpu: usize, cpuset: &mut RawCpuSet) { assert!( cpu < CPU_SETSIZE, "cpu out of bounds: the cpu max is {} but the cpu is {}", CPU_SETSIZE, cpu ); unsafe { c::CPU_SET(cpu, cpuset) } } #[inline] pub(crate) fn CPU_ZERO(cpuset: &mut RawCpuSet) { unsafe { c::CPU_ZERO(cpuset) } } #[inline] pub(crate) fn CPU_CLR(cpu: usize, cpuset: &mut RawCpuSet) { assert!( cpu < CPU_SETSIZE, "cpu out of bounds: the cpu max is {} but the cpu is {}", CPU_SETSIZE, cpu ); unsafe { c::CPU_CLR(cpu, cpuset) } } #[inline] pub(crate) fn CPU_ISSET(cpu: usize, cpuset: &RawCpuSet) -> bool { assert!( cpu < CPU_SETSIZE, "cpu out of bounds: the cpu max is {} but the cpu is {}", CPU_SETSIZE, cpu ); unsafe { c::CPU_ISSET(cpu, cpuset) } } #[cfg(linux_kernel)] #[inline] pub(crate) fn CPU_COUNT(cpuset: &RawCpuSet) -> u32 { unsafe { c::CPU_COUNT(cpuset).try_into().unwrap() } }