Jacek Caban : include: Fix __dmb declaration.

Alexandre Julliard julliard at winehq.org
Fri Feb 26 14:39:29 CST 2021


Module: wine
Branch: master
Commit: e3708c2c79d378ff53f2fe04d1fa9ececbd1f78c
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=e3708c2c79d378ff53f2fe04d1fa9ececbd1f78c

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Fri Feb 26 15:54:05 2021 +0100

include: Fix __dmb declaration.

Signed-off-by: Jacek Caban <jacek at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 include/msvcrt/intrin.h | 40 ++++++++++++++++++++++++++++++++++++++++
 include/winnt.h         | 13 +++++--------
 2 files changed, 45 insertions(+), 8 deletions(-)

diff --git a/include/msvcrt/intrin.h b/include/msvcrt/intrin.h
index 38496251d5a..781c6fac823 100644
--- a/include/msvcrt/intrin.h
+++ b/include/msvcrt/intrin.h
@@ -22,6 +22,46 @@ static inline void __cpuid(int info[4], int ax)
 }
 #endif
 
+#ifdef __aarch64__
+typedef enum _tag_ARM64INTR_BARRIER_TYPE
+{
+    _ARM64_BARRIER_OSHLD  = 0x1,
+    _ARM64_BARRIER_OSHST  = 0x2,
+    _ARM64_BARRIER_OSH    = 0x3,
+    _ARM64_BARRIER_NSHLD  = 0x5,
+    _ARM64_BARRIER_NSHST  = 0x6,
+    _ARM64_BARRIER_NSH    = 0x7,
+    _ARM64_BARRIER_ISHLD  = 0x9,
+    _ARM64_BARRIER_ISHST  = 0xa,
+    _ARM64_BARRIER_ISH    = 0xb,
+    _ARM64_BARRIER_LD     = 0xd,
+    _ARM64_BARRIER_ST     = 0xe,
+    _ARM64_BARRIER_SY     = 0xf
+} _ARM64INTR_BARRIER_TYPE;
+#endif
+
+#ifdef __arm__
+typedef enum _tag_ARMINTR_BARRIER_TYPE
+{
+    _ARM_BARRIER_OSHST  = 0x2,
+    _ARM_BARRIER_OSH    = 0x3,
+    _ARM_BARRIER_NSHST  = 0x6,
+    _ARM_BARRIER_NSH    = 0x7,
+    _ARM_BARRIER_ISHST  = 0xa,
+    _ARM_BARRIER_ISH    = 0xb,
+    _ARM_BARRIER_ST     = 0xe,
+    _ARM_BARRIER_SY     = 0xf
+} _ARMINTR_BARRIER_TYPE;
+#endif
+
+#if defined(_MSC_VER) && (defined(__arm__) || defined(__aarch64__))
+
+void __dmb(unsigned int);
+
+#pragma intrinsic(__dmb)
+
+#endif
+
 #ifdef __cplusplus
 }
 #endif
diff --git a/include/winnt.h b/include/winnt.h
index 3a9d13b055c..e594c89419a 100644
--- a/include/winnt.h
+++ b/include/winnt.h
@@ -32,6 +32,11 @@
 #endif
 
 
+#if defined(_MSC_VER) && (defined(__arm__) || defined(__aarch64__))
+#include <intrin.h>
+#endif
+
+
 #ifdef __cplusplus
 extern "C" {
 #endif
@@ -7035,10 +7040,6 @@ static FORCEINLINE void MemoryBarrier(void)
 
 #elif defined(__arm__)
 
-#pragma intrinsic(__dmb)
-
-void __dmb(void);
-
 static FORCEINLINE void MemoryBarrier(void)
 {
     __dmb(_ARM_BARRIER_SY);
@@ -7046,10 +7047,6 @@ static FORCEINLINE void MemoryBarrier(void)
 
 #elif defined(__aarch64__)
 
-#pragma intrinsic(__dmb)
-
-void __dmb(void);
-
 static FORCEINLINE void MemoryBarrier(void)
 {
     __dmb(_ARM64_BARRIER_SY);




More information about the wine-cvs mailing list