• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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