X-Git-Url: http://git.liburcu.org/?p=urcu.git;a=blobdiff_plain;f=urcu%2Farch%2Fs390.h;h=e71f99ec483d447e9bcdb7fa2ac1dd8ef82d5b69;hp=5985b2014d78513d1eb010fa33edf93f70df1b36;hb=3fa182868e25068413fdaa1bef290365e99ab246;hpb=9d2614f07691a813a3c560a6c0bcd0a7be854ed5 diff --git a/urcu/arch/s390.h b/urcu/arch/s390.h index 5985b20..e71f99e 100644 --- a/urcu/arch/s390.h +++ b/urcu/arch/s390.h @@ -30,27 +30,39 @@ #include #include +#include +#include #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" ); return cycles; } -#ifdef __cplusplus +/* + * Define the membarrier system call number if not yet available in the + * system headers. + */ +#ifndef __NR_membarrier +#define __NR_membarrier 356 +#endif + +#ifdef __cplusplus } #endif