arm: allocate membarrier system call number
[urcu.git] / urcu / arch / arm.h
index b49f7821052b5e00d0fd30d09145d72c95bc970a..1457166270314653f9564cdaf99e6c6a598e7e9b 100644 (file)
 
 #include <urcu/compiler.h>
 #include <urcu/config.h>
+#include <urcu/syscall-compat.h>
 
 #ifdef __cplusplus
 extern "C" {
 #endif 
 
 #ifdef CONFIG_RCU_ARM_HAVE_DMB
-#define cmm_mb()       asm volatile("dmb":::"memory")
-#define cmm_rmb()      asm volatile("dmb":::"memory")
-#define cmm_wmb()      asm volatile("dmb":::"memory")
+#define cmm_mb()       __asm__ __volatile__ ("dmb":::"memory")
+#define cmm_rmb()      __asm__ __volatile__ ("dmb":::"memory")
+#define cmm_wmb()      __asm__ __volatile__ ("dmb":::"memory")
 #endif /* CONFIG_RCU_ARM_HAVE_DMB */
 
 #include <stdlib.h>
@@ -51,6 +52,14 @@ static inline cycles_t caa_get_cycles (void)
        return (cycles_t)thetime;
 }
 
+/*
+ * Define the membarrier system call number if not yet available in the
+ * system headers.
+ */
+#ifndef __NR_membarrier
+#define __NR_membarrier                389
+#endif
+
 #ifdef __cplusplus 
 }
 #endif
This page took 0.024383 seconds and 4 git commands to generate.