#include <unistd.h>
#include <stdint.h>
+#include <urcu/config.h>
#include <urcu/compiler.h>
#include <urcu/arch.h>
#include <urcu/system.h>
#include <urcu/list.h>
#include <urcu/futex.h>
#include <urcu/tls-compat.h>
-#include <urcu/rand-compat.h>
#include <urcu/debug.h>
+#include <urcu/static/urcu-signal-nr.h>
#ifdef __cplusplus
extern "C" {
* This is required to permit relinking with newer versions of the library.
*/
-/*
- * The signal number used by the RCU library can be overridden with
- * -DSIGRCU= when compiling the library.
- * Provide backward compatibility for liburcu 0.3.x SIGURCU.
- */
-#ifdef SIGURCU
-#define SIGRCU SIGURCU
-#endif
-
-#ifndef SIGRCU
-#define SIGRCU SIGUSR1
-#endif
-
enum rcu_state {
RCU_READER_ACTIVE_CURRENT,
RCU_READER_ACTIVE_OLD,
*/
#ifdef RCU_MEMBARRIER
-extern int rcu_has_sys_membarrier;
+#ifdef CONFIG_RCU_FORCE_SYS_MEMBARRIER
+#define rcu_has_sys_membarrier_memb 1
+#else
+extern int rcu_has_sys_membarrier_memb;
+#endif
static inline void smp_mb_slave(void)
{
- if (caa_likely(rcu_has_sys_membarrier))
+ if (caa_likely(rcu_has_sys_membarrier_memb))
cmm_barrier();
else
cmm_smp_mb();