rustix/backend/linux_raw/thread/
futex.rs1bitflags::bitflags! {
2 #[repr(transparent)]
6 #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
7 pub struct Flags: u32 {
8 const PRIVATE = linux_raw_sys::general::FUTEX_PRIVATE_FLAG;
10 const CLOCK_REALTIME = linux_raw_sys::general::FUTEX_CLOCK_REALTIME;
12
13 const _ = !0;
15 }
16}
17
18bitflags::bitflags! {
19 #[repr(transparent)]
27 #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
28 pub struct WaitFlags: u32 {
29 const SIZE_U8 = linux_raw_sys::general::FUTEX2_SIZE_U8;
31 const SIZE_U16 = linux_raw_sys::general::FUTEX2_SIZE_U16;
33 const SIZE_U32 = linux_raw_sys::general::FUTEX2_SIZE_U32;
35 const SIZE_U64 = linux_raw_sys::general::FUTEX2_SIZE_U64;
37 const SIZE_MASK = linux_raw_sys::general::FUTEX2_SIZE_MASK;
39
40 const NUMA = linux_raw_sys::general::FUTEX2_NUMA;
42
43 const PRIVATE = linux_raw_sys::general::FUTEX2_PRIVATE;
45
46 const _ = !0;
48 }
49}
50
51#[derive(Debug, Copy, Clone, Eq, PartialEq)]
53#[repr(u32)]
54pub(crate) enum Operation {
55 Wait = linux_raw_sys::general::FUTEX_WAIT,
57 Wake = linux_raw_sys::general::FUTEX_WAKE,
59 Fd = linux_raw_sys::general::FUTEX_FD,
61 Requeue = linux_raw_sys::general::FUTEX_REQUEUE,
63 CmpRequeue = linux_raw_sys::general::FUTEX_CMP_REQUEUE,
65 WakeOp = linux_raw_sys::general::FUTEX_WAKE_OP,
67 LockPi = linux_raw_sys::general::FUTEX_LOCK_PI,
69 UnlockPi = linux_raw_sys::general::FUTEX_UNLOCK_PI,
71 TrylockPi = linux_raw_sys::general::FUTEX_TRYLOCK_PI,
73 WaitBitset = linux_raw_sys::general::FUTEX_WAIT_BITSET,
75 WakeBitset = linux_raw_sys::general::FUTEX_WAKE_BITSET,
77 WaitRequeuePi = linux_raw_sys::general::FUTEX_WAIT_REQUEUE_PI,
79 CmpRequeuePi = linux_raw_sys::general::FUTEX_CMP_REQUEUE_PI,
81 LockPi2 = linux_raw_sys::general::FUTEX_LOCK_PI2,
83}
84
85pub const WAITERS: u32 = linux_raw_sys::general::FUTEX_WAITERS;
87
88pub const OWNER_DIED: u32 = linux_raw_sys::general::FUTEX_OWNER_DIED;