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"
21 long int cmd = tcp->u_arg[1] & 127;
22 tprintf("%p, ", (void *) tcp->u_arg[0]);
23 printxval(futexops, tcp->u_arg[1], "FUTEX_???");
24 tprintf(", %ld", tcp->u_arg[2]);
25 if (cmd == FUTEX_WAKE_BITSET)
26 tprintf(", %lx", tcp->u_arg[5]);
27 else if (cmd == FUTEX_WAIT) {
29 printtv(tcp, tcp->u_arg[3]);
30 } else if (cmd == FUTEX_WAIT_BITSET) {
32 printtv(tcp, tcp->u_arg[3]);
33 tprintf(", %lx", tcp->u_arg[5]);
34 } else if (cmd == FUTEX_REQUEUE)
35 tprintf(", %ld, %p", tcp->u_arg[3], (void *) tcp->u_arg[4]);
36 else if (cmd == FUTEX_CMP_REQUEUE || cmd == FUTEX_CMP_REQUEUE_PI)
37 tprintf(", %ld, %p, %ld", tcp->u_arg[3], (void *) tcp->u_arg[4], tcp->u_arg[5]);
38 else if (cmd == FUTEX_WAKE_OP) {
39 tprintf(", %ld, %p, {", tcp->u_arg[3], (void *) tcp->u_arg[4]);
40 if ((tcp->u_arg[5] >> 28) & 8)
41 tprints("FUTEX_OP_OPARG_SHIFT|");
42 printxval(futexwakeops, (tcp->u_arg[5] >> 28) & 0x7, "FUTEX_OP_???");
43 tprintf(", %ld, ", (tcp->u_arg[5] >> 12) & 0xfff);
44 if ((tcp->u_arg[5] >> 24) & 8)
45 tprints("FUTEX_OP_OPARG_SHIFT|");
46 printxval(futexwakecmps, (tcp->u_arg[5] >> 24) & 0x7, "FUTEX_OP_CMP_???");
47 tprintf(", %ld}", tcp->u_arg[5] & 0xfff);
48 } else if (cmd == FUTEX_WAIT_REQUEUE_PI) {
50 printtv(tcp, tcp->u_arg[3]);
51 tprintf(", %p", (void *) tcp->u_arg[4]);