/* If the headers do not support SYS_membarrier, statically use RCU_MB */
#ifdef SYS_membarrier
-#define membarrier(...) syscall(__NR_membarrier, __VA_ARGS__)
+# define MEMBARRIER_EXPEDITED (1 << 0)
+# define MEMBARRIER_DELAYED (1 << 1)
+# define MEMBARRIER_QUERY (1 << 16)
+# define membarrier(...) syscall(__NR_membarrier, __VA_ARGS__)
#else
-#undef RCU_MEMBARRIER
-#define RCU_MB
+# undef RCU_MEMBARRIER
+# define RCU_MB
#endif
#endif
/*
* 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