rustix/backend/libc/thread/
types.rs1#[cfg(all(
2 any(freebsdlike, linux_kernel, target_os = "fuchsia"),
3 not(any(target_os = "espidf", target_os = "vita"))
4))]
5use crate::backend::c;
6
7#[cfg(linux_kernel)]
15#[derive(Copy, Clone, Eq, PartialEq, Debug)]
16#[repr(u32)]
17#[non_exhaustive]
18pub enum MembarrierCommand {
19 #[doc(alias = "Shared")]
21 #[doc(alias = "MEMBARRIER_CMD_SHARED")]
22 Global = c::MEMBARRIER_CMD_GLOBAL as u32,
23 GlobalExpedited = c::MEMBARRIER_CMD_GLOBAL_EXPEDITED as u32,
25 RegisterGlobalExpedited = c::MEMBARRIER_CMD_REGISTER_GLOBAL_EXPEDITED as u32,
27 PrivateExpedited = c::MEMBARRIER_CMD_PRIVATE_EXPEDITED as u32,
29 RegisterPrivateExpedited = c::MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED as u32,
31 PrivateExpeditedSyncCore = c::MEMBARRIER_CMD_PRIVATE_EXPEDITED_SYNC_CORE as u32,
33 RegisterPrivateExpeditedSyncCore =
35 c::MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_SYNC_CORE as u32,
36 PrivateExpeditedRseq = c::MEMBARRIER_CMD_PRIVATE_EXPEDITED_RSEQ as u32,
38 RegisterPrivateExpeditedRseq = c::MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_RSEQ as u32,
40}
41
42#[cfg(linux_kernel)]
44pub type RawCpuid = u32;
45
46#[cfg(any(linux_kernel, target_os = "fuchsia"))]
47pub(crate) type RawCpuSet = c::cpu_set_t;
48#[cfg(freebsdlike)]
49pub(crate) type RawCpuSet = c::cpuset_t;
50
51#[cfg(any(freebsdlike, linux_kernel, target_os = "fuchsia"))]
52#[inline]
53pub(crate) fn raw_cpu_set_new() -> RawCpuSet {
54 let mut set = unsafe { core::mem::zeroed() };
55 super::cpu_set::CPU_ZERO(&mut set);
56 set
57}
58
59#[cfg(any(freebsdlike, linux_kernel, target_os = "fuchsia"))]
60pub(crate) const CPU_SETSIZE: usize = c::CPU_SETSIZE as usize;