xref: /kvm-unit-tests/lib/x86/asm/barrier.h (revision 53776986c1228215be984863bac0a9d052e0529c)
1 #ifndef _ASM_X86_BARRIER_H_
2 #define _ASM_X86_BARRIER_H_
3 /*
4  * Copyright (C) 2016, Red Hat Inc, Alexander Gordeev <agordeev@redhat.com>
5  *
6  * This work is licensed under the terms of the GNU LGPL, version 2.
7  */
8 
9 #include <processor.h>
10 
11 #define mb()	asm volatile("mfence":::"memory")
12 #define rmb()	asm volatile("lfence":::"memory")
13 #define wmb()	asm volatile("sfence":::"memory")
14 
15 #define smp_mb()	mb()
16 #define smp_rmb()	barrier()
17 #define smp_wmb()	barrier()
18 
19 #endif
20