#ifndef _H8300_BARRIER_H #define _H8300_BARRIER_H #define nop() asm volatile ("nop"::) /* * Force strict CPU ordering. * Not really required on H8... */ #define mb() asm volatile ("" : : :"memory") #define rmb() asm volatile ("" : : :"memory") #define wmb() asm volatile ("" : : :"memory") #define set_mb(var, value) do { xchg(&var, value); } while (0) #define read_barrier_depends() do { } while (0) #ifdef CONFIG_SMP #define smp_mb() mb() #define smp_rmb() rmb() #define smp_wmb() wmb() #define smp_read_barrier_depends() read_barrier_depends() #else #define smp_mb() barrier() #define smp_rmb() barrier() #define smp_wmb() barrier() #define smp_read_barrier_depends() do { } while(0) #endif #endif /* _H8300_BARRIER_H */