ReactOS 0.4.17-dev-1321-g5c122a9
arm64intr.h
Go to the documentation of this file.
1/*
2 * PROJECT: ReactOS SDK
3 * LICENSE: MIT (https://spdx.org/licenses/MIT)
4 * PURPOSE: ARM64 intriniscs
5 * COPYRIGHT: Copyright 2025 Timo Kreuzer (timo.kreuzer@reactos.org)
6 */
7
8#pragma once
9
10#if defined(__cplusplus)
11extern "C" {
12#endif
13
15{
29
30void __dmb(unsigned int _Type);
31void __dsb(unsigned int _Type);
32void __isb(unsigned int _Type);
33
34#pragma intrinsic(__dmb)
35#pragma intrinsic(__dsb)
36#pragma intrinsic(__isb)
37
38#if defined(_MSC_VER)
39
40/* System register number as encoded in mrs and msr, op0 is always 2 or 3 */
41#define ARM64_SYSREG(op0, op1, crn, crm, op2) \
42 ((((op0) & 1) << 14) | (((op1) & 7) << 11) | (((crn) & 15) << 7) | (((crm) & 15) << 3) | ((op2) & 7))
43
44#define ARM64_FPCR ARM64_SYSREG(3, 3, 4, 4, 0)
45#define ARM64_FPSR ARM64_SYSREG(3, 3, 4, 4, 1)
46
47__int64 _ReadStatusReg(int _Register);
48void _WriteStatusReg(int _Register, __int64 _Value);
49
50#pragma intrinsic(_ReadStatusReg)
51#pragma intrinsic(_WriteStatusReg)
52
53#endif /* _MSC_VER */
54
55#if defined(__cplusplus)
56} // extern "C"
57#endif
void __dsb(unsigned int _Type)
Definition: intrin_arm64.h:718
void __isb(unsigned int _Type)
Definition: intrin_arm64.h:739
void __dmb(unsigned int _Type)
Definition: intrin_arm64.h:694
_tag_ARM64INTR_BARRIER_TYPE
Definition: arm64intr.h:15
@ _ARM64_BARRIER_NSH
Definition: arm64intr.h:22
@ _ARM64_BARRIER_SY
Definition: arm64intr.h:16
@ _ARM64_BARRIER_ISHLD
Definition: arm64intr.h:21
@ _ARM64_BARRIER_NSHLD
Definition: arm64intr.h:24
@ _ARM64_BARRIER_LD
Definition: arm64intr.h:18
@ _ARM64_BARRIER_OSHLD
Definition: arm64intr.h:27
@ _ARM64_BARRIER_ISHST
Definition: arm64intr.h:20
@ _ARM64_BARRIER_OSHST
Definition: arm64intr.h:26
@ _ARM64_BARRIER_ST
Definition: arm64intr.h:17
@ _ARM64_BARRIER_NSHST
Definition: arm64intr.h:23
@ _ARM64_BARRIER_ISH
Definition: arm64intr.h:19
@ _ARM64_BARRIER_OSH
Definition: arm64intr.h:25
enum _tag_ARM64INTR_BARRIER_TYPE _ARM64INTR_BARRIER_TYPE
#define __int64
Definition: corecrt.h:72
_In_ _Value