]> git.kernelconcepts.de Git - karo-tx-linux.git/blob - tools/virtio/asm/barrier.h
26b7926bda8849a8b931fff6750a3ed8217dae89
[karo-tx-linux.git] / tools / virtio / asm / barrier.h
1 #if defined(__i386__) || defined(__x86_64__)
2 #define barrier() asm volatile("" ::: "memory")
3 #define mb() __sync_synchronize()
4
5 #define smp_mb()        mb()
6 # define dma_rmb()      barrier()
7 # define dma_wmb()      barrier()
8 # define smp_rmb()      barrier()
9 # define smp_wmb()      barrier()
10 /* Weak barriers should be used. If not - it's a bug */
11 # define rmb()  abort()
12 # define wmb()  abort()
13 #else
14 #error Please fill in barrier macros
15 #endif
16