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)
}
#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
......
......@@ -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);
......
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