mirror of
https://github.com/xen-project/xen.git
synced 2026-10-28 02:01:24 +01:00
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>
This commit is contained in:
1 parent
cd95bce19e
commit
8d3f757328
1 file changed
+6
-4
@@ -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")
|
||||
|
||||