X-Git-Url: https://git.liburcu.org/?p=urcu.git;a=blobdiff_plain;f=compat_futex.c;h=3f1d1ef3410a91d4ae432080debcba4c6a17e387;hp=27fc66bb4ff7e1318f6bde0788498505319ff02e;hb=6d841bc23fc94345fe76651d73c1a3f821a85aa7;hpb=49617de1d80d771ac9a1d45b1710b16fac65e0aa diff --git a/compat_futex.c b/compat_futex.c index 27fc66b..3f1d1ef 100644 --- a/compat_futex.c +++ b/compat_futex.c @@ -3,7 +3,7 @@ * * Userspace RCU library - sys_futex compatibility code * - * Copyright (c) 2009 Mathieu Desnoyers + * Copyright (c) 2009 Mathieu Desnoyers * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -26,9 +26,10 @@ #include #include #include +#include #include -#include +#include static pthread_mutex_t compat_futex_lock = PTHREAD_MUTEX_INITIALIZER; static pthread_cond_t compat_futex_cond = PTHREAD_COND_INITIALIZER; @@ -39,8 +40,8 @@ static pthread_cond_t compat_futex_cond = PTHREAD_COND_INITIALIZER; * Waiter will relinquish the CPU until woken up. */ -int compat_futex_noasync(int *uaddr, int op, int val, - const struct timespec *timeout, int *uaddr2, int val3) +int compat_futex_noasync(int32_t *uaddr, int op, int32_t val, + const struct timespec *timeout, int32_t *uaddr2, int32_t val3) { int ret, i, gret = 0; @@ -55,7 +56,7 @@ int compat_futex_noasync(int *uaddr, int op, int val, /* * memory barriers to serialize with the previous uaddr modification. */ - smp_mb(); + cmm_smp_mb(); ret = pthread_mutex_lock(&compat_futex_lock); assert(!ret); @@ -84,8 +85,8 @@ end: * Waiter will busy-loop trying to read the condition. */ -int compat_futex_async(int *uaddr, int op, int val, - const struct timespec *timeout, int *uaddr2, int val3) +int compat_futex_async(int32_t *uaddr, int op, int32_t val, + const struct timespec *timeout, int32_t *uaddr2, int32_t val3) { int ret, i; @@ -100,7 +101,7 @@ int compat_futex_async(int *uaddr, int op, int val, /* * Ensure previous memory operations on uaddr have completed. */ - smp_mb(); + cmm_smp_mb(); switch (op) { case FUTEX_WAIT: