X-Git-Url: https://git.liburcu.org/?a=blobdiff_plain;f=urcu%2Farch_s390.h;h=4ad3ee8edd39e8c9f7752ebc0d82db4e90722280;hb=e4d1eb09301904b56cdf22e1d6042df4492d57cb;hp=9d3d452b961b3dd3e74a99147a2b6012688685d0;hpb=2041a99a1abff800c4d48fd2e9d0761609bb63a4;p=urcu.git diff --git a/urcu/arch_s390.h b/urcu/arch_s390.h index 9d3d452..4ad3ee8 100644 --- a/urcu/arch_s390.h +++ b/urcu/arch_s390.h @@ -28,10 +28,12 @@ * IN THE SOFTWARE. */ -#include +#include #include -#define CONFIG_HAVE_MEM_COHERENCY +#ifdef __cplusplus +extern "C" { +#endif #define CACHE_LINE_SIZE 128 @@ -48,40 +50,6 @@ #endif #define mb() __asm__ __volatile__("bcr 15,0" : : : "memory") -#define rmb() __asm__ __volatile__("bcr 15,0" : : : "memory"); -#define wmb() __asm__ __volatile__("bcr 15,0" : : : "memory"); -#define mc() barrier() -#define rmc() barrier() -#define wmc() barrier() - -#ifdef CONFIG_URCU_SMP -#define smp_mb() mb() -#define smp_rmb() rmb() -#define smp_wmb() wmb() -#define smp_mc() mc() -#define smp_rmc() rmc() -#define smp_wmc() wmc() -#else -#define smp_mb() barrier() -#define smp_rmb() barrier() -#define smp_wmb() barrier() -#define smp_mc() barrier() -#define smp_rmc() barrier() -#define smp_wmc() barrier() -#endif - -/* Nop everywhere except on alpha. */ -#define smp_read_barrier_depends() - -static inline void cpu_relax(void) -{ - barrier(); -} - -static inline void sync_core() -{ - __asm__ __volatile__("bcr 15,0" : : : "memory"); -} typedef unsigned long long cycles_t; @@ -94,4 +62,10 @@ static inline cycles_t get_cycles (void) return cycles; } +#ifdef __cplusplus +} +#endif + +#include + #endif /* _URCU_ARCH_S390_H */