X-Git-Url: http://git.liburcu.org/?a=blobdiff_plain;f=urcu%2Fmap%2Furcu.h;h=3fae95fbdfafa6883b44ad1864cbfd85013321c5;hb=de07ab9691f011d2458be8c1239d62aaa6cb6100;hp=3f436a7375120366bca0898aafd3debdc45a48a5;hpb=4157e1ac43033c8b3ef5405b9c01e8311b2454ca;p=userspace-rcu.git diff --git a/urcu/map/urcu.h b/urcu/map/urcu.h index 3f436a7..3fae95f 100644 --- a/urcu/map/urcu.h +++ b/urcu/map/urcu.h @@ -48,19 +48,13 @@ #define RCU_MB #endif +/* + * The ABI of sys_membarrier changed after its original implementation. + * Disable it for now. Use RCU_MB flavor instead. + */ #ifdef RCU_MEMBARRIER -#include - -/* If the headers do not support SYS_membarrier, statically use RCU_MB */ -#ifdef SYS_membarrier -# define MEMBARRIER_EXPEDITED (1 << 0) -# define MEMBARRIER_DELAYED (1 << 1) -# define MEMBARRIER_QUERY (1 << 16) -# define membarrier(...) syscall(SYS_membarrier, __VA_ARGS__) -#else -# undef RCU_MEMBARRIER -# define RCU_MB -#endif +#undef RCU_MEMBARRIER +#define RCU_MB #endif #ifdef RCU_MEMBARRIER @@ -95,6 +89,8 @@ #define rcu_defer_barrier rcu_defer_barrier_memb #define rcu_defer_barrier_thread rcu_defer_barrier_thread_memb +#define rcu_flavor rcu_flavor_memb + #elif defined(RCU_SIGNAL) #define rcu_read_lock rcu_read_lock_sig @@ -127,6 +123,8 @@ #define rcu_defer_barrier rcu_defer_barrier_sig #define rcu_defer_barrier_thread rcu_defer_barrier_thread_sig +#define rcu_flavor rcu_flavor_sig + #elif defined(RCU_MB) #define rcu_read_lock rcu_read_lock_mb @@ -159,6 +157,8 @@ #define rcu_defer_barrier rcu_defer_barrier_mb #define rcu_defer_barrier_thread rcu_defer_barrier_thread_mb +#define rcu_flavor rcu_flavor_mb + #else #error "Undefined selection"