]> granicus.if.org Git - strace/blobdiff - futex.c
io.c: use printaddr and umove_or_printaddr
[strace] / futex.c
diff --git a/futex.c b/futex.c
index a1781c0e97bdf9f078f8a3cde0098bc16128fd88..fa83f6430e109f1a7e0312069370e01420bcb0ba 100644 (file)
--- a/futex.c
+++ b/futex.c
 # include <linux/futex.h>
 #endif
 
-#ifndef FUTEX_WAIT
-# define FUTEX_WAIT 0
-#endif
-#ifndef FUTEX_WAKE
-# define FUTEX_WAKE 1
-#endif
-#ifndef FUTEX_FD
-# define FUTEX_FD 2
-#endif
-#ifndef FUTEX_REQUEUE
-# define FUTEX_REQUEUE 3
-#endif
-#ifndef FUTEX_CMP_REQUEUE
-# define FUTEX_CMP_REQUEUE 4
-#endif
-#ifndef FUTEX_WAKE_OP
-# define FUTEX_WAKE_OP 5
-#endif
-#ifndef FUTEX_LOCK_PI
-# define FUTEX_LOCK_PI 6
-# define FUTEX_UNLOCK_PI 7
-# define FUTEX_TRYLOCK_PI 8
-#endif
-#ifndef FUTEX_WAIT_BITSET
-# define FUTEX_WAIT_BITSET 9
-#endif
-#ifndef FUTEX_WAKE_BITSET
-# define FUTEX_WAKE_BITSET 10
-#endif
-#ifndef FUTEX_WAIT_REQUEUE_PI
-# define FUTEX_WAIT_REQUEUE_PI 11
-#endif
-#ifndef FUTEX_CMP_REQUEUE_PI
-# define FUTEX_CMP_REQUEUE_PI 12
-#endif
 #ifndef FUTEX_PRIVATE_FLAG
 # define FUTEX_PRIVATE_FLAG 128
 #endif
 #ifndef FUTEX_CLOCK_REALTIME
 # define FUTEX_CLOCK_REALTIME 256
 #endif
-#ifndef FUTEX_WAIT_PRIVATE
-# define FUTEX_WAIT_PRIVATE            (FUTEX_WAIT | FUTEX_PRIVATE_FLAG)
-#endif
-#ifndef FUTEX_WAKE_PRIVATE
-# define FUTEX_WAKE_PRIVATE            (FUTEX_WAKE | FUTEX_PRIVATE_FLAG)
-#endif
-#ifndef FUTEX_REQUEUE_PRIVATE
-# define FUTEX_REQUEUE_PRIVATE         (FUTEX_REQUEUE | FUTEX_PRIVATE_FLAG)
-#endif
-#ifndef FUTEX_CMP_REQUEUE_PRIVATE
-# define FUTEX_CMP_REQUEUE_PRIVATE     (FUTEX_CMP_REQUEUE | FUTEX_PRIVATE_FLAG)
-#endif
-#ifndef FUTEX_WAKE_OP_PRIVATE
-# define FUTEX_WAKE_OP_PRIVATE         (FUTEX_WAKE_OP | FUTEX_PRIVATE_FLAG)
-#endif
-#ifndef FUTEX_LOCK_PI_PRIVATE
-# define FUTEX_LOCK_PI_PRIVATE         (FUTEX_LOCK_PI | FUTEX_PRIVATE_FLAG)
-#endif
-#ifndef FUTEX_UNLOCK_PI_PRIVATE
-# define FUTEX_UNLOCK_PI_PRIVATE       (FUTEX_UNLOCK_PI | FUTEX_PRIVATE_FLAG)
-#endif
-#ifndef FUTEX_TRYLOCK_PI_PRIVATE
-# define FUTEX_TRYLOCK_PI_PRIVATE      (FUTEX_TRYLOCK_PI | FUTEX_PRIVATE_FLAG)
-#endif
-#ifndef FUTEX_WAIT_BITSET_PRIVATE
-# define FUTEX_WAIT_BITSET_PRIVATE     (FUTEX_WAIT_BITSET | FUTEX_PRIVATE_FLAG)
-#endif
-#ifndef FUTEX_WAKE_BITSET_PRIVATE
-# define FUTEX_WAKE_BITSET_PRIVATE     (FUTEX_WAKE_BITSET | FUTEX_PRIVATE_FLAG)
-#endif
-#ifndef FUTEX_WAIT_REQUEUE_PI_PRIVATE
-# define FUTEX_WAIT_REQUEUE_PI_PRIVATE (FUTEX_WAIT_REQUEUE_PI | FUTEX_PRIVATE_FLAG)
-#endif
-#ifndef FUTEX_CMP_REQUEUE_PI_PRIVATE
-# define FUTEX_CMP_REQUEUE_PI_PRIVATE  (FUTEX_CMP_REQUEUE_PI | FUTEX_PRIVATE_FLAG)
-#endif
+
 #include "xlat/futexops.h"
-#ifndef FUTEX_OP_SET
-# define FUTEX_OP_SET          0
-# define FUTEX_OP_ADD          1
-# define FUTEX_OP_OR           2
-# define FUTEX_OP_ANDN         3
-# define FUTEX_OP_XOR          4
-# define FUTEX_OP_CMP_EQ       0
-# define FUTEX_OP_CMP_NE       1
-# define FUTEX_OP_CMP_LT       2
-# define FUTEX_OP_CMP_LE       3
-# define FUTEX_OP_CMP_GT       4
-# define FUTEX_OP_CMP_GE       5
-#endif
 #include "xlat/futexwakeops.h"
 #include "xlat/futexwakecmps.h"
 
-int
-sys_futex(struct tcb *tcp)
+SYS_FUNC(futex)
 {
        if (entering(tcp)) {
                long int cmd = tcp->u_arg[1] & 127;