1*39ac3f84SAndrew Jones #ifndef _ASMARM64_BARRIER_H_ 2*39ac3f84SAndrew Jones #define _ASMARM64_BARRIER_H_ 3*39ac3f84SAndrew Jones /* 4*39ac3f84SAndrew Jones * From Linux arch/arm64/include/asm/barrier.h 5*39ac3f84SAndrew Jones */ 6*39ac3f84SAndrew Jones 7*39ac3f84SAndrew Jones #define isb() asm volatile("isb" : : : "memory") 8*39ac3f84SAndrew Jones #define dmb(opt) asm volatile("dmb " #opt : : : "memory") 9*39ac3f84SAndrew Jones #define dsb(opt) asm volatile("dsb " #opt : : : "memory") 10*39ac3f84SAndrew Jones #define mb() dsb(sy) 11*39ac3f84SAndrew Jones #define rmb() dsb(ld) 12*39ac3f84SAndrew Jones #define wmb() dsb(st) 13*39ac3f84SAndrew Jones #define smp_mb() dmb(ish) 14*39ac3f84SAndrew Jones #define smp_rmb() dmb(ishld) 15*39ac3f84SAndrew Jones #define smp_wmb() dmb(ishst) 16*39ac3f84SAndrew Jones 17*39ac3f84SAndrew Jones #endif /* _ASMARM64_BARRIER_H_ */ 18