xref: /kvmtool/x86/include/kvm/barrier.h (revision dbb12379656cc01cc9e13f4b6c7d056fd03b9733)
1 #ifndef _KVM_BARRIER_H_
2 #define _KVM_BARRIER_H_
3 
4 #define barrier() asm volatile("": : :"memory")
5 
6 #define mb()	asm volatile ("mfence": : :"memory")
7 #define rmb()	asm volatile ("lfence": : :"memory")
8 #define wmb()	asm volatile ("sfence": : :"memory")
9 
10 #ifdef CONFIG_SMP
11 #define smp_mb()	mb()
12 #define smp_rmb()	rmb()
13 #define smp_wmb()	wmb()
14 #else
15 #define smp_mb()	barrier()
16 #define smp_rmb()	barrier()
17 #define smp_wmb()	barrier()
18 #endif
19 
20 #endif /* _KVM_BARRIER_H_ */
21