X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;f=urcu.h;h=92b31df603d157ffa942534af1d5731d912c2342;hb=b715b99eb0d52e0744bfea46c62849f260a5ec58;hp=c4a7992b4b7b166d527411d4ae5108cac174fc95;hpb=5464000f823e493703feb49d7580a479d3ba54d4;p=userspace-rcu.git diff --git a/urcu.h b/urcu.h index c4a7992..92b31df 100644 --- a/urcu.h +++ b/urcu.h @@ -31,6 +31,19 @@ #define rmb() asm volatile("lfence":::"memory") #define wmb() asm volatile("sfence" ::: "memory") +/* Assume SMP machine, given we don't have this information */ +#define CONFIG_SMP 1 + +#ifdef CONFIG_SMP +#define smp_mb() mb() +#define smp_rmb() rmb() +#define smp_wmb() wmb() +#else +#define smp_mb() barrier() +#define smp_rmb() barrier() +#define smp_wmb() barrier() +#endif + static inline void atomic_inc(int *v) { asm volatile("lock; incl %0" @@ -173,7 +186,7 @@ static inline void debug_yield_init(void) #ifdef DEBUG_FULL_MB static inline void read_barrier() { - mb(); + smp_mb(); } #else static inline void read_barrier()