Go to the documentation of this file. 1 #ifndef __SPARC64_BARRIER_H
2 #define __SPARC64_BARRIER_H
25 #define membar_safe(type) \
26 do { __asm__ __volatile__("ba,pt %%xcc, 1f\n\t" \
27 " membar " type "\n" \
36 #define mb() membar_safe("#StoreLoad")
37 #define rmb() __asm__ __volatile__("":::"memory")
38 #define wmb() __asm__ __volatile__("":::"memory")
40 #define read_barrier_depends() do { } while(0)
41 #define set_mb(__var, __value) \
42 do { __var = __value; membar_safe("#StoreLoad"); } while(0)
46 #define smp_rmb() rmb()
47 #define smp_wmb() wmb()
49 #define smp_mb() __asm__ __volatile__("":::"memory")
50 #define smp_rmb() __asm__ __volatile__("":::"memory")
51 #define smp_wmb() __asm__ __volatile__("":::"memory")
54 #define smp_read_barrier_depends() do { } while(0)