diff options
author | Keir Fraser <keir@xen.org> | 2012-01-21 17:14:37 +0000 |
---|---|---|
committer | Keir Fraser <keir@xen.org> | 2012-01-21 17:14:37 +0000 |
commit | 8d3f757328e1580a8363597543b8e36ecc8837de (patch) | |
tree | 07588f8f6d413a3704f4c35a0db1aba2a2bddf07 /tools/libxc/xenctrl.h | |
parent | cd95bce19e4cc070a0cd32cf688136cfcc01dcc2 (diff) | |
download | xen-8d3f757328e1580a8363597543b8e36ecc8837de.tar.gz xen-8d3f757328e1580a8363597543b8e36ecc8837de.tar.bz2 xen-8d3f757328e1580a8363597543b8e36ecc8837de.zip |
libxc: Update rmb/wmb for x86.
Only the compiler needs to see the barriers; not the CPU.
Signed-off-by: Keir Fraser <keir@xen.org>
Diffstat (limited to 'tools/libxc/xenctrl.h')
-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") |