1#ifndef _H8300_BARRIER_H 2#define _H8300_BARRIER_H 3 4#define nop() asm volatile ("nop"::) 5 6/* 7 * Force strict CPU ordering. 8 * Not really required on H8... 9 */ 10#define mb() asm volatile ("" : : :"memory") 11#define rmb() asm volatile ("" : : :"memory") 12#define wmb() asm volatile ("" : : :"memory") 13#define set_mb(var, value) do { xchg(&var, value); } while (0) 14 15#ifdef CONFIG_SMP 16#define smp_mb() mb() 17#define smp_rmb() rmb() 18#define smp_wmb() wmb() 19#define smp_read_barrier_depends() read_barrier_depends() 20#else 21#define smp_mb() barrier() 22#define smp_rmb() barrier() 23#define smp_wmb() barrier() 24#define smp_read_barrier_depends() do { } while(0) 25#endif 26 27#endif /* _H8300_BARRIER_H */ 28