3 #ifdef HAVE_LINUX_FUTEX_H
4 # include <linux/futex.h>
7 #ifndef FUTEX_PRIVATE_FLAG
8 # define FUTEX_PRIVATE_FLAG 128
10 #ifndef FUTEX_CLOCK_REALTIME
11 # define FUTEX_CLOCK_REALTIME 256
14 #include "xlat/futexops.h"
15 #include "xlat/futexwakeops.h"
16 #include "xlat/futexwakecmps.h"
20 const long uaddr = tcp->u_arg[0];
21 const int op = tcp->u_arg[1];
22 const int cmd = op & 127;
23 const long timeout = tcp->u_arg[3];
24 const long uaddr2 = tcp->u_arg[4];
25 const unsigned int val = tcp->u_arg[2];
26 const unsigned int val2 = tcp->u_arg[3];
27 const unsigned int val3 = tcp->u_arg[5];
31 printxval(futexops, op, "FUTEX_???");
37 printtv(tcp, timeout);
39 case FUTEX_WAIT_BITSET:
41 printtv(tcp, timeout);
42 tprintf(", %x", val3);
44 case FUTEX_WAKE_BITSET:
45 tprintf(", %x", val3);
48 tprintf(", %u, ", val2);
51 case FUTEX_CMP_REQUEUE:
52 case FUTEX_CMP_REQUEUE_PI:
53 tprintf(", %u, ", val2);
55 tprintf(", %u", val3);
58 tprintf(", %u, ", val2);
62 tprints("FUTEX_OP_OPARG_SHIFT|");
63 printxval(futexwakeops, (val3 >> 28) & 0x7, "FUTEX_OP_???");
64 tprintf(", %u, ", (val3 >> 12) & 0xfff);
66 tprints("FUTEX_OP_OPARG_SHIFT|");
67 printxval(futexwakecmps, (val3 >> 24) & 0x7, "FUTEX_OP_CMP_???");
68 tprintf(", %u}", val3 & 0xfff);
70 case FUTEX_WAIT_REQUEUE_PI:
72 printtv(tcp, timeout);
78 case FUTEX_TRYLOCK_PI:
81 tprintf(", %lx, %lx, %x", timeout, uaddr2, val3);