18class CLUES_API FutexOperation :
19 public ValueInParameter {
22 enum class Command :
int {
25 WAIT_REQUEUE_PI = FUTEX_WAIT_REQUEUE_PI,
27 REQUEUE = FUTEX_REQUEUE,
28 CMP_REQUEUE = FUTEX_CMP_REQUEUE,
29 CMP_REQUEUE_PI = FUTEX_CMP_REQUEUE_PI,
30 WAKE_OP = FUTEX_WAKE_OP,
31 WAIT_BITSET = FUTEX_WAIT_BITSET,
32 WAKE_BITSET = FUTEX_WAKE_BITSET,
33 LOCK_PI = FUTEX_LOCK_PI,
34 LOCK_PI2 = FUTEX_LOCK_PI2,
35 TRYLOCK_PI = FUTEX_TRYLOCK_PI,
36 UNLOCK_PI = FUTEX_UNLOCK_PI,
39 enum class Flag :
int {
40 PRIVATE_FLAG = FUTEX_PRIVATE_FLAG,
41 REALTIME = FUTEX_CLOCK_REALTIME,
44 using Flags = cosmos::BitMask<Flag>;
48 explicit FutexOperation() :
49 ValueInParameter{
"op",
"futex operation"} {
52 std::string
str()
const override;
56 auto command()
const {
66 Command m_cmd = Command{0};