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