Cleanup: move generic caa_get_cycles to arch/generic.h
[urcu.git] / urcu / arch / arm.h
index b49f7821052b5e00d0fd30d09145d72c95bc970a..9483bab0e23761a8f6e853dfbe9258b73adb8256 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>
 #include <sys/time.h>
 
-typedef unsigned long long cycles_t;
-
-static inline cycles_t caa_get_cycles (void)
-{
-       cycles_t thetime;
-       struct timeval tv;
-
-       if (gettimeofday(&tv, NULL) != 0)
-               return 0;
-       thetime = ((cycles_t)tv.tv_sec) * 1000000ULL + ((cycles_t)tv.tv_usec);
-       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 
 }
This page took 0.022725 seconds and 4 git commands to generate.