xref: /kvm-unit-tests/lib/arm/asm/barrier.h (revision d3aacb4f57d05f74f2030dbe12e7dfd6aa1b273d)
1 #ifndef _ASMARM_BARRIER_H_
2 #define _ASMARM_BARRIER_H_
3 /*
4  * Adapted form arch/arm/include/asm/barrier.h
5  */
6 
7 #define isb(option) __asm__ __volatile__ ("isb " #option : : : "memory")
8 #define dsb(option) __asm__ __volatile__ ("dsb " #option : : : "memory")
9 #define dmb(option) __asm__ __volatile__ ("dmb " #option : : : "memory")
10 
11 #define mb()		dsb()
12 #define rmb()		dsb()
13 #define wmb()		dsb(st)
14 #define smp_mb()	dmb(ish)
15 #define smp_rmb()	smp_mb()
16 #define smp_wmb()	dmb(ishst)
17 
18 #endif /* _ASMARM_BARRIER_H_ */
19