summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArnon Gilboa <agilboa@redhat.com>2011-02-02 11:21:11 +0200
committerArnon Gilboa <agilboa@redhat.com>2011-02-02 11:34:19 +0200
commitd529c7d830f3650a4a6099942915e1703db31202 (patch)
tree2304ce90e64ed777f1397e16ba56639accb07704
parent0b953e03ba1507966ee777d3217003f9dc4da778 (diff)
downloadspice-protocol-d529c7d830f3650a4a6099942915e1703db31202.tar.gz
spice-protocol-d529c7d830f3650a4a6099942915e1703db31202.tar.xz
spice-protocol-d529c7d830f3650a4a6099942915e1703db31202.zip
define spice_mb MemoryBarrier for WIN64
__asm is not supported on _WIN64, so use macro instead required for Windows x64 guest display driver (qxldd.dll)
-rw-r--r--spice/barrier.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/spice/barrier.h b/spice/barrier.h
index 8c81c86..710da09 100644
--- a/spice/barrier.h
+++ b/spice/barrier.h
@@ -33,14 +33,23 @@
#define _H_SPICE_BARRIER
#ifdef __GNUC__
+
#ifdef __i386__
#define spice_mb() __asm__ __volatile__ ("lock; addl $0,0(%%esp)": : :"memory")
#else
//mfence
#define spice_mb() __asm__ __volatile__ ("lock; addl $0,0(%%rsp)": : :"memory")
#endif
+
+#else
+
+#ifdef _WIN64
+//__asm not supported on _WIN64, so use macro instead.
+#define spice_mb MemoryBarrier
#else
#define spice_mb() __asm {lock add [esp], 0}
#endif
+#endif
+
#endif /* _H_SPICE_BARRIER */