diff options
Diffstat (limited to 'tools')
-rw-r--r-- | tools/libxc/xenctrl.h | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/tools/libxc/xenctrl.h b/tools/libxc/xenctrl.h index 8b347697cc..37b0fd6f23 100644 --- a/tools/libxc/xenctrl.h +++ b/tools/libxc/xenctrl.h @@ -69,14 +69,16 @@ * DEFINITIONS FOR CPU BARRIERS */ +#define xen_barrier() asm volatile ( "" : : : "memory") + #if defined(__i386__) #define xen_mb() asm volatile ( "lock; addl $0,0(%%esp)" : : : "memory" ) -#define xen_rmb() asm volatile ( "lock; addl $0,0(%%esp)" : : : "memory" ) -#define xen_wmb() asm volatile ( "" : : : "memory") +#define xen_rmb() xen_barrier() +#define xen_wmb() xen_barrier() #elif defined(__x86_64__) #define xen_mb() asm volatile ( "mfence" : : : "memory") -#define xen_rmb() asm volatile ( "lfence" : : : "memory") -#define xen_wmb() asm volatile ( "" : : : "memory") +#define xen_rmb() xen_barrier() +#define xen_wmb() xen_barrier() #elif defined(__ia64__) #define xen_mb() asm volatile ("mf" ::: "memory") #define xen_rmb() asm volatile ("mf" ::: "memory") |