12#ifndef __PROCESSOR_BIND_H__
13#define __PROCESSOR_BIND_H__
21#define MDE_CPU_AARCH64
26#if !defined (__GNUC__) && !defined (__ASSEMBLER__)
30#if defined (_MSC_EXTENSIONS)
39 #pragma warning ( disable : 4214 )
44 #pragma warning ( disable : 4100 )
50 #pragma warning ( disable : 4057 )
55 #pragma warning ( disable : 4127 )
60 #pragma warning ( disable : 4505 )
65 #pragma warning ( disable : 4206 )
70 #pragma warning ( disable : 4701 )
75 #pragma warning ( disable : 4703 )
80typedef unsigned __int64
UINT64;
82typedef unsigned __int32
UINT32;
84typedef unsigned short UINT16;
85typedef unsigned short CHAR16;
88typedef unsigned char UINT8;
90typedef signed char INT8;
130#define MAX_BIT 0x8000000000000000ULL
135#define MAX_2_BITS 0xC000000000000000ULL
140#define MAX_ADDRESS 0xFFFFFFFFFFFFFFFFULL
145#define MAX_ALLOC_ADDRESS 0xFFFFFFFFFFFFULL
150#define MAX_INTN ((INTN)0x7FFFFFFFFFFFFFFFULL)
151#define MAX_UINTN ((UINTN)0xFFFFFFFFFFFFFFFFULL)
156#define MIN_INTN (((INTN)-9223372036854775807LL) - 1)
161#define CPU_STACK_ALIGNMENT 16
166#define DEFAULT_PAGE_ALLOCATION_GRANULARITY (0x1000)
167#define RUNTIME_PAGE_ALLOCATION_GRANULARITY (0x10000)
178#if defined (__GNUC__) || defined (__clang__)
183#define ASM_GLOBAL .globl
185#define GCC_ASM_EXPORT(func__) \
186 .global _CONCATENATE (__USER_LABEL_PREFIX__, func__) ;\
187 .type ASM_PFX(func__), %function
189#define GCC_ASM_IMPORT(func__) \
190 .extern _CONCATENATE (__USER_LABEL_PREFIX__, func__)
192 #if defined (__ARM_FEATURE_BTI_DEFAULT) && __ARM_FEATURE_BTI_DEFAULT == 1
193#define AARCH64_BTI_NOTE() \
194 .ifndef .Lgnu_bti_notesize ;\
195 .pushsection .note.gnu.property, "a" ;\
196 .set NT_GNU_PROPERTY_TYPE_0, 0x5 ;\
197 .set GNU_PROPERTY_AARCH64_FEATURE_1_AND, 0xc0000000 ;\
198 .set GNU_PROPERTY_AARCH64_FEATURE_1_BTI, 0x1 ;\
201 .long .Lgnu_bti_notesize ;\
202 .long NT_GNU_PROPERTY_TYPE_0 ;\
204 .set .Lnamesize, . - 0b ;\
2061: .long GNU_PROPERTY_AARCH64_FEATURE_1_AND ;\
2082: .long GNU_PROPERTY_AARCH64_FEATURE_1_BTI ;\
209 .set .Lvalsize, . - 2b ;\
211 .set .Lgnu_bti_notesize, . - 1b ;\
215#define AARCH64_BTI(__type) \
216 AARCH64_BTI_NOTE() ;\
224#define AARCH64_BTI_NOTE()
225#define AARCH64_BTI(__type)
238#define FUNCTION_ENTRY_POINT(FunctionPointer) (VOID *)(UINTN)(FunctionPointer)
240#ifndef __USER_LABEL_PREFIX__
241#define __USER_LABEL_PREFIX__
unsigned short UINT16
2-byte unsigned value.
unsigned char BOOLEAN
Logical Boolean.
char CHAR8
1-byte Character
UINT64 UINTN
Unsigned value of native width.
unsigned long long UINT64
8-byte unsigned value.
short INT16
2-byte signed value.
int INT32
4-byte signed value.
long long INT64
8-byte signed value.
unsigned short CHAR16
2-byte Character.
signed char INT8
1-byte signed value
INT64 INTN
Signed value of native width.
unsigned char UINT8
1-byte unsigned value.
unsigned int UINT32
4-byte unsigned value.
#define FILE_LICENCE(_licence)
Declare a particular licence as applying to a file.
#define FILE_SECBOOT(_status)
Declare a file's UEFI Secure Boot permission status.