rustix/backend/linux_raw/process/
types.rs1use linux_raw_sys::general::membarrier_cmd;
2
3#[derive(Copy, Clone, Eq, PartialEq, Debug)]
11#[repr(u32)]
12pub enum MembarrierCommand {
13 #[doc(alias = "Shared")]
15 #[doc(alias = "MEMBARRIER_CMD_SHARED")]
16 Global = membarrier_cmd::MEMBARRIER_CMD_GLOBAL as _,
17 GlobalExpedited = membarrier_cmd::MEMBARRIER_CMD_GLOBAL_EXPEDITED as _,
19 RegisterGlobalExpedited = membarrier_cmd::MEMBARRIER_CMD_REGISTER_GLOBAL_EXPEDITED as _,
21 PrivateExpedited = membarrier_cmd::MEMBARRIER_CMD_PRIVATE_EXPEDITED as _,
23 RegisterPrivateExpedited = membarrier_cmd::MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED as _,
25 PrivateExpeditedSyncCore = membarrier_cmd::MEMBARRIER_CMD_PRIVATE_EXPEDITED_SYNC_CORE as _,
27 RegisterPrivateExpeditedSyncCore =
29 membarrier_cmd::MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_SYNC_CORE as _,
30 PrivateExpeditedRseq = membarrier_cmd::MEMBARRIER_CMD_PRIVATE_EXPEDITED_RSEQ as _,
32 RegisterPrivateExpeditedRseq =
34 membarrier_cmd::MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_RSEQ as _,
35}
36
37#[derive(Copy, Clone, Debug, Eq, PartialEq)]
44#[repr(u32)]
45pub enum Resource {
46 Cpu = linux_raw_sys::general::RLIMIT_CPU,
48 Fsize = linux_raw_sys::general::RLIMIT_FSIZE,
50 Data = linux_raw_sys::general::RLIMIT_DATA,
52 Stack = linux_raw_sys::general::RLIMIT_STACK,
54 Core = linux_raw_sys::general::RLIMIT_CORE,
56 Rss = linux_raw_sys::general::RLIMIT_RSS,
58 Nproc = linux_raw_sys::general::RLIMIT_NPROC,
60 Nofile = linux_raw_sys::general::RLIMIT_NOFILE,
62 Memlock = linux_raw_sys::general::RLIMIT_MEMLOCK,
64 As = linux_raw_sys::general::RLIMIT_AS,
66 Locks = linux_raw_sys::general::RLIMIT_LOCKS,
68 Sigpending = linux_raw_sys::general::RLIMIT_SIGPENDING,
70 Msgqueue = linux_raw_sys::general::RLIMIT_MSGQUEUE,
72 Nice = linux_raw_sys::general::RLIMIT_NICE,
74 Rtprio = linux_raw_sys::general::RLIMIT_RTPRIO,
76 Rttime = linux_raw_sys::general::RLIMIT_RTTIME,
78}
79
80pub type RawCpuid = u32;
82
83#[repr(C)]
84#[derive(Clone, Copy, Debug, Eq, Hash, PartialEq)]
85pub(crate) struct RawCpuSet {
86 #[cfg(all(target_pointer_width = "32", not(target_arch = "x86_64")))]
87 pub(crate) bits: [u32; 32],
88 #[cfg(not(all(target_pointer_width = "32", not(target_arch = "x86_64"))))]
89 pub(crate) bits: [u64; 16],
90}
91
92#[inline]
93pub(crate) fn raw_cpu_set_new() -> RawCpuSet {
94 #[cfg(all(target_pointer_width = "32", not(target_arch = "x86_64")))]
95 {
96 RawCpuSet { bits: [0; 32] }
97 }
98 #[cfg(not(all(target_pointer_width = "32", not(target_arch = "x86_64"))))]
99 {
100 RawCpuSet { bits: [0; 16] }
101 }
102}
103
104pub(crate) const CPU_SETSIZE: usize = 8 * core::mem::size_of::<RawCpuSet>();