1 #if defined(__i386__) || defined(__x86_64__) 2 #define barrier() asm volatile("" ::: "memory") 3 #define mb() __sync_synchronize() 4 5 #define smp_mb() mb() 6 # define smp_rmb() barrier() 7 # define smp_wmb() barrier() 8 /* Weak barriers should be used. If not - it's a bug */ 9 # define rmb() abort() 10 # define wmb() abort() 11 #else 12 #error Please fill in barrier macros 13 #endif 14 15