[PATCH]: btt - major fixes and speed improvements
[blktrace.git] / barrier.h
1 #ifndef BARRIER_H
2 #define BARRIER_H
3
4 #if defined(__ia64__)
5 #define store_barrier()         asm volatile ("mf" ::: "memory")
6 #elif defined(__x86_64__)
7 #define store_barrier()         asm volatile("sfence" ::: "memory")
8 #elif defined(__i386__)
9 #define store_barrier()         asm volatile ("": : :"memory")
10 #elif defined(__ppc__) || defined(__powerpc__)
11 #define store_barrier()         asm volatile ("eieio" : : : "memory")
12 #elif defined(__s390__) || defined(__s390x__)
13 #define store_barrier()         asm volatile ("bcr 15,0" : : : "memory")
14 #else
15 #error Define store_barrier() for your CPU
16 #endif
17
18 #endif