linux/arch/alpha/include/asm/barrier.h
<<
>>
Prefs
   1#ifndef __BARRIER_H
   2#define __BARRIER_H
   3
   4#include <asm/compiler.h>
   5
   6#define mb() \
   7__asm__ __volatile__("mb": : :"memory")
   8
   9#define rmb() \
  10__asm__ __volatile__("mb": : :"memory")
  11
  12#define wmb() \
  13__asm__ __volatile__("wmb": : :"memory")
  14
  15#define read_barrier_depends() \
  16__asm__ __volatile__("mb": : :"memory")
  17
  18#ifdef CONFIG_SMP
  19#define __ASM_SMP_MB    "\tmb\n"
  20#define smp_mb()        mb()
  21#define smp_rmb()       rmb()
  22#define smp_wmb()       wmb()
  23#define smp_read_barrier_depends()      read_barrier_depends()
  24#else
  25#define __ASM_SMP_MB
  26#define smp_mb()        barrier()
  27#define smp_rmb()       barrier()
  28#define smp_wmb()       barrier()
  29#define smp_read_barrier_depends()      do { } while (0)
  30#endif
  31
  32#define set_mb(var, value) \
  33do { var = value; mb(); } while (0)
  34
  35#endif          /* __BARRIER_H */
  36