1 #ifndef _ASM_GENERIC_BARRIER_H_ 2 #define _ASM_GENERIC_BARRIER_H_ 3 /* 4 * asm-generic/barrier.h 5 * 6 * Copyright (C) 2016, Red Hat Inc, Alexander Gordeev <agordeev@redhat.com> 7 * 8 * This work is licensed under the terms of the GNU LGPL, version 2. 9 */ 10 11 #ifndef mb 12 #define mb() asm volatile("":::"memory") 13 #endif 14 #ifndef rmb 15 #define rmb() asm volatile("":::"memory") 16 #endif 17 #ifndef wmb 18 #define wmb() asm volatile("":::"memory") 19 #endif 20 21 #ifndef smp_mb 22 #define smp_mb() mb() 23 #endif 24 #ifndef smp_rmb 25 #define smp_rmb() rmb() 26 #endif 27 #ifndef smp_wmb 28 #define smp_wmb() wmb() 29 #endif 30 31 #ifndef cpu_relax 32 #define cpu_relax() asm volatile ("":::"memory") 33 #endif 34 35 #endif /* _ASM_GENERIC_BARRIER_H_ */ 36