xref: /kvm-unit-tests/lib/arm64/asm/barrier.h (revision 44bd4c1ddeaae30f96e45d867e71977cd2fed80c)
1 #ifndef _ASMARM64_BARRIER_H_
2 #define _ASMARM64_BARRIER_H_
3 /*
4  * From Linux arch/arm64/include/asm/barrier.h
5  */
6 
7 #define sev()		asm volatile("sev" : : : "memory")
8 #define wfe()		asm volatile("wfe" : : : "memory")
9 #define wfi()		asm volatile("wfi" : : : "memory")
10 #define cpu_relax()	asm volatile(""    : : : "memory")
11 
12 #define isb()		asm volatile("isb" : : : "memory")
13 #define dmb(opt)	asm volatile("dmb " #opt : : : "memory")
14 #define dsb(opt)	asm volatile("dsb " #opt : : : "memory")
15 #define mb()		dsb(sy)
16 #define rmb()		dsb(ld)
17 #define wmb()		dsb(st)
18 #define smp_mb()	dmb(ish)
19 #define smp_rmb()	dmb(ishld)
20 #define smp_wmb()	dmb(ishst)
21 
22 #endif /* _ASMARM64_BARRIER_H_ */
23