1 bitflags::bitflags! { 2 /// Flags for use with [`futex`]. 3 /// 4 /// [`futex`]: crate::thread::futex 5 pub struct FutexFlags: u32 { 6 /// `FUTEX_PRIVATE_FLAG` 7 const PRIVATE = linux_raw_sys::general::FUTEX_PRIVATE_FLAG; 8 /// `FUTEX_CLOCK_REALTIME` 9 const CLOCK_REALTIME = linux_raw_sys::general::FUTEX_CLOCK_REALTIME; 10 } 11 } 12 13 /// Operations for use with [`futex`]. 14 /// 15 /// [`futex`]: crate::thread::futex 16 #[derive(Debug, Copy, Clone, Eq, PartialEq)] 17 #[repr(u32)] 18 pub enum FutexOperation { 19 /// `FUTEX_WAIT` 20 Wait = linux_raw_sys::general::FUTEX_WAIT, 21 /// `FUTEX_WAKE` 22 Wake = linux_raw_sys::general::FUTEX_WAKE, 23 /// `FUTEX_FD` 24 Fd = linux_raw_sys::general::FUTEX_FD, 25 /// `FUTEX_REQUEUE` 26 Requeue = linux_raw_sys::general::FUTEX_REQUEUE, 27 /// `FUTEX_CMP_REQUEUE` 28 CmpRequeue = linux_raw_sys::general::FUTEX_CMP_REQUEUE, 29 /// `FUTEX_WAKE_OP` 30 WakeOp = linux_raw_sys::general::FUTEX_WAKE_OP, 31 /// `FUTEX_LOCK_PI` 32 LockPi = linux_raw_sys::general::FUTEX_LOCK_PI, 33 /// `FUTEX_UNLOCK_PI` 34 UnlockPi = linux_raw_sys::general::FUTEX_UNLOCK_PI, 35 /// `FUTEX_TRYLOCK_PI` 36 TrylockPi = linux_raw_sys::general::FUTEX_TRYLOCK_PI, 37 /// `FUTEX_WAIT_BITSET` 38 WaitBitset = linux_raw_sys::general::FUTEX_WAIT_BITSET, 39 } 40