*
* Userspace RCU - sys_futex/compat_futex header.
*
+ * Copyright 2011-2012 - Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
+ *
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
*/
#include <urcu/config.h>
+#include <stdint.h>
#ifdef __cplusplus
extern "C" {
*/
#ifdef CONFIG_RCU_HAVE_FUTEX
-#include <sys/syscall.h>
+#include <urcu/syscall-compat.h>
#define futex(...) syscall(__NR_futex, __VA_ARGS__)
#define futex_noasync(uaddr, op, val, timeout, uaddr2, val3) \
futex(uaddr, op, val, timeout, uaddr2, val3)
#define futex_async(uaddr, op, val, timeout, uaddr2, val3) \
futex(uaddr, op, val, timeout, uaddr2, val3)
#else
-extern int compat_futex_noasync(int *uaddr, int op, int val,
- const struct timespec *timeout, int *uaddr2, int val3);
+extern int compat_futex_noasync(int32_t *uaddr, int op, int32_t val,
+ const struct timespec *timeout, int32_t *uaddr2, int32_t val3);
#define futex_noasync(uaddr, op, val, timeout, uaddr2, val3) \
compat_futex_noasync(uaddr, op, val, timeout, uaddr2, val3)
-extern int compat_futex_async(int *uaddr, int op, int val,
- const struct timespec *timeout, int *uaddr2, int val3);
+extern int compat_futex_async(int32_t *uaddr, int op, int32_t val,
+ const struct timespec *timeout, int32_t *uaddr2, int32_t val3);
#define futex_async(uaddr, op, val, timeout, uaddr2, val3) \
compat_futex_async(uaddr, op, val, timeout, uaddr2, val3)
#endif