#include <urcu/compiler.h>
#include <urcu/config.h>
#include <urcu/syscall-compat.h>
+#include <stdint.h>
#ifdef __cplusplus
extern "C" {
-#endif
+#endif
#define CAA_CACHE_LINE_SIZE 128
#define cmm_mb() __asm__ __volatile__("bcr 15,0" : : : "memory")
-typedef unsigned long long cycles_t;
+#define HAS_CAA_GET_CYCLES
+
+typedef uint64_t caa_cycles_t;
-static inline cycles_t caa_get_cycles (void)
+static inline caa_cycles_t caa_get_cycles (void)
{
- cycles_t cycles;
+ caa_cycles_t cycles;
__asm__ __volatile__("stck %0" : "=m" (cycles) : : "cc", "memory" );
}
/*
- * Define the membarrier system call number if not yet available in the
- * system headers.
+ * On Linux, define the membarrier system call number if not yet available in
+ * the system headers.
*/
-#ifndef __NR_membarrier
+#if (defined(__linux__) && !defined(__NR_membarrier))
#define __NR_membarrier 356
#endif
-#ifdef __cplusplus
+#ifdef __cplusplus
}
#endif