[ovs-dev] [PATCH] windows: Fix x64 build

Alin Gabriel Serdean aserdean at ovn.org
Wed Jan 10 17:27:52 UTC 2018


MSVC complains:
error C4013: 'atomic_storeX' undefined; assuming extern returning int

atomic_storeX - is no longer defined. This patch adds back its implementation.

Signed-off-by: Alin Gabriel Serdean <aserdean at ovn.org>
---
 lib/ovs-atomic-msvc.h | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/lib/ovs-atomic-msvc.h b/lib/ovs-atomic-msvc.h
index 6727d2c..9def887 100644
--- a/lib/ovs-atomic-msvc.h
+++ b/lib/ovs-atomic-msvc.h
@@ -124,8 +124,13 @@ atomic_signal_fence(memory_order order)
     }
 #elif _M_X64
 /* 64 bit writes are atomic on amd64 if 64 bit aligned. */
-#define atomic_store64(DST, SRC, ORDER)                                 \
-    atomic_storeX(64, DST, SRC, ORDER)
+#define atomic_store64(DST, SRC, ORDER)                                    \
+    if (ORDER == memory_order_seq_cst) {                                   \
+        InterlockedExchange64((int64_t volatile *) (DST),                  \
+                               (int64_t) (SRC));                           \
+    } else {                                                               \
+        *(DST) = (SRC);                                                    \
+    }
 #endif
 
 #define atomic_store8(DST, SRC, ORDER)                                     \
-- 
2.10.2.windows.1



More information about the dev mailing list