Commit e3708c2c authored by Jacek Caban's avatar Jacek Caban Committed by Alexandre Julliard

include: Fix __dmb declaration.

parent 3f951cbe
...@@ -22,6 +22,46 @@ static inline void __cpuid(int info[4], int ax) ...@@ -22,6 +22,46 @@ static inline void __cpuid(int info[4], int ax)
} }
#endif #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 #ifdef __cplusplus
} }
#endif #endif
......
...@@ -32,6 +32,11 @@ ...@@ -32,6 +32,11 @@
#endif #endif
#if defined(_MSC_VER) && (defined(__arm__) || defined(__aarch64__))
#include <intrin.h>
#endif
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif #endif
...@@ -7035,10 +7040,6 @@ static FORCEINLINE void MemoryBarrier(void) ...@@ -7035,10 +7040,6 @@ static FORCEINLINE void MemoryBarrier(void)
#elif defined(__arm__) #elif defined(__arm__)
#pragma intrinsic(__dmb)
void __dmb(void);
static FORCEINLINE void MemoryBarrier(void) static FORCEINLINE void MemoryBarrier(void)
{ {
__dmb(_ARM_BARRIER_SY); __dmb(_ARM_BARRIER_SY);
...@@ -7046,10 +7047,6 @@ static FORCEINLINE void MemoryBarrier(void) ...@@ -7046,10 +7047,6 @@ static FORCEINLINE void MemoryBarrier(void)
#elif defined(__aarch64__) #elif defined(__aarch64__)
#pragma intrinsic(__dmb)
void __dmb(void);
static FORCEINLINE void MemoryBarrier(void) static FORCEINLINE void MemoryBarrier(void)
{ {
__dmb(_ARM64_BARRIER_SY); __dmb(_ARM64_BARRIER_SY);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment