home *** CD-ROM | disk | FTP | other *** search
/ Mac Easy 2010 May / Mac Life Ubuntu.iso / casper / filesystem.squashfs / usr / src / linux-headers-2.6.28-15 / arch / alpha / include / asm / barrier.h < prev    next >
Encoding:
C/C++ Source or Header  |  2008-12-24  |  700 b   |  34 lines

  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 smp_mb()    mb()
  20. #define smp_rmb()    rmb()
  21. #define smp_wmb()    wmb()
  22. #define smp_read_barrier_depends()    read_barrier_depends()
  23. #else
  24. #define smp_mb()    barrier()
  25. #define smp_rmb()    barrier()
  26. #define smp_wmb()    barrier()
  27. #define smp_read_barrier_depends()    do { } while (0)
  28. #endif
  29.  
  30. #define set_mb(var, value) \
  31. do { var = value; mb(); } while (0)
  32.  
  33. #endif        /* __BARRIER_H */
  34.