]> git.proxmox.com Git - rustc.git/blob - vendor/rustix/src/imp/linux_raw/thread/futex.rs
New upstream version 1.64.0+dfsg1
[rustc.git] / vendor / rustix / src / imp / linux_raw / thread / futex.rs
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 }