#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 <syscall.h>
-
-/* 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 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
#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
#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