X-Git-Url: http://git.liburcu.org/?p=urcu.git;a=blobdiff_plain;f=urcu%2Fmap%2Furcu.h;h=9a4bb1ab08af2f9db3cb9986b094dcf5e23ad1cc;hp=759cb4108a8c8cb2787813a518e4362e19acc274;hb=a59f39055b5ecb77b68cf78b9839aa9e8e4ec332;hpb=1de4df4b770e5e90440008becc5e14a15c75c6e0 diff --git a/urcu/map/urcu.h b/urcu/map/urcu.h index 759cb41..9a4bb1a 100644 --- a/urcu/map/urcu.h +++ b/urcu/map/urcu.h @@ -38,45 +38,21 @@ #define RCU_MEMBARRIER #endif -/* - * RCU_MEMBARRIER is only possibly available on Linux. Fallback to - * RCU_MB - * otherwise. - */ -#if !defined(__linux__) && defined(RCU_MEMBARRIER) -#undef RCU_MEMBARRIER -#define RCU_MB -#endif - -#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 -#endif - #ifdef RCU_MEMBARRIER #define rcu_read_lock rcu_read_lock_memb #define _rcu_read_lock _rcu_read_lock_memb #define rcu_read_unlock rcu_read_unlock_memb #define _rcu_read_unlock _rcu_read_unlock_memb +#define rcu_read_ongoing rcu_read_ongoing_memb +#define _rcu_read_ongoing _rcu_read_ongoing_memb #define rcu_register_thread rcu_register_thread_memb #define rcu_unregister_thread rcu_unregister_thread_memb #define rcu_init rcu_init_memb #define rcu_exit rcu_exit_memb #define synchronize_rcu synchronize_rcu_memb #define rcu_reader rcu_reader_memb -#define rcu_gp_ctr rcu_gp_ctr_memb -#define rcu_gp_futex rcu_gp_futex_memb +#define rcu_gp rcu_gp_memb #define get_cpu_call_rcu_data get_cpu_call_rcu_data_memb #define get_call_rcu_thread get_call_rcu_thread_memb @@ -93,6 +69,7 @@ #define call_rcu_before_fork call_rcu_before_fork_memb #define call_rcu_after_fork_parent call_rcu_after_fork_parent_memb #define call_rcu_after_fork_child call_rcu_after_fork_child_memb +#define rcu_barrier rcu_barrier_memb #define defer_rcu defer_rcu_memb #define rcu_defer_register_thread rcu_defer_register_thread_memb @@ -103,9 +80,6 @@ #define rcu_flavor rcu_flavor_memb -#define rcu_yield_active rcu_yield_active_memb -#define rcu_rand_yield rcu_rand_yield_memb - /* Specific to MEMBARRIER flavor */ #define rcu_has_sys_membarrier rcu_has_sys_membarrier_memb @@ -115,14 +89,15 @@ #define _rcu_read_lock _rcu_read_lock_sig #define rcu_read_unlock rcu_read_unlock_sig #define _rcu_read_unlock _rcu_read_unlock_sig +#define rcu_read_ongoing rcu_read_ongoing_sig +#define _rcu_read_ongoing _rcu_read_ongoing_sig #define rcu_register_thread rcu_register_thread_sig #define rcu_unregister_thread rcu_unregister_thread_sig #define rcu_init rcu_init_sig #define rcu_exit rcu_exit_sig #define synchronize_rcu synchronize_rcu_sig #define rcu_reader rcu_reader_sig -#define rcu_gp_ctr rcu_gp_ctr_sig -#define rcu_gp_futex rcu_gp_futex_sig +#define rcu_gp rcu_gp_sig #define get_cpu_call_rcu_data get_cpu_call_rcu_data_sig #define get_call_rcu_thread get_call_rcu_thread_sig @@ -139,6 +114,7 @@ #define call_rcu_before_fork call_rcu_before_fork_sig #define call_rcu_after_fork_parent call_rcu_after_fork_parent_sig #define call_rcu_after_fork_child call_rcu_after_fork_child_sig +#define rcu_barrier rcu_barrier_sig #define defer_rcu defer_rcu_sig #define rcu_defer_register_thread rcu_defer_register_thread_sig @@ -149,23 +125,21 @@ #define rcu_flavor rcu_flavor_sig -#define rcu_yield_active rcu_yield_active_sig -#define rcu_rand_yield rcu_rand_yield_sig - #elif defined(RCU_MB) #define rcu_read_lock rcu_read_lock_mb #define _rcu_read_lock _rcu_read_lock_mb #define rcu_read_unlock rcu_read_unlock_mb #define _rcu_read_unlock _rcu_read_unlock_mb +#define rcu_read_ongoing rcu_read_ongoing_mb +#define _rcu_read_ongoing _rcu_read_ongoing_mb #define rcu_register_thread rcu_register_thread_mb #define rcu_unregister_thread rcu_unregister_thread_mb #define rcu_init rcu_init_mb #define rcu_exit rcu_exit_mb #define synchronize_rcu synchronize_rcu_mb #define rcu_reader rcu_reader_mb -#define rcu_gp_ctr rcu_gp_ctr_mb -#define rcu_gp_futex rcu_gp_futex_mb +#define rcu_gp rcu_gp_mb #define get_cpu_call_rcu_data get_cpu_call_rcu_data_mb #define get_call_rcu_thread get_call_rcu_thread_mb @@ -182,6 +156,7 @@ #define call_rcu_before_fork call_rcu_before_fork_mb #define call_rcu_after_fork_parent call_rcu_after_fork_parent_mb #define call_rcu_after_fork_child call_rcu_after_fork_child_mb +#define rcu_barrier rcu_barrier_mb #define defer_rcu defer_rcu_mb #define rcu_defer_register_thread rcu_defer_register_thread_mb @@ -192,9 +167,6 @@ #define rcu_flavor rcu_flavor_mb -#define rcu_yield_active rcu_yield_active_mb -#define rcu_rand_yield rcu_rand_yield_mb - #else #error "Undefined selection"