barrier.h 361 B

1234567891011121314
  1. #if defined(__i386__) || defined(__x86_64__)
  2. #define barrier() asm volatile("" ::: "memory")
  3. #define mb() __sync_synchronize()
  4. #define smp_mb() mb()
  5. # define smp_rmb() barrier()
  6. # define smp_wmb() barrier()
  7. /* Weak barriers should be used. If not - it's a bug */
  8. # define rmb() abort()
  9. # define wmb() abort()
  10. #else
  11. #error Please fill in barrier macros
  12. #endif