iPXE
ProcessorBind.h File Reference

Processor or Compiler specific defines and types for AArch64. More...

Go to the source code of this file.

Macros

#define MDE_CPU_AARCH64
 Define the processor type so other code can make processor based choices.
#define MAX_BIT   0x8000000000000000ULL
 A value of native width with the highest bit set.
#define MAX_2_BITS   0xC000000000000000ULL
 A value of native width with the two highest bits set.
#define MAX_ADDRESS   0xFFFFFFFFFFFFFFFFULL
 Maximum legal AARCH64 address.
#define MAX_ALLOC_ADDRESS   0xFFFFFFFFFFFFULL
 Maximum usable address at boot time (48 bits using 4 KB pages)
#define MAX_INTN   ((INTN)0x7FFFFFFFFFFFFFFFULL)
 Maximum legal AArch64 INTN and UINTN values.
#define MAX_UINTN   ((UINTN)0xFFFFFFFFFFFFFFFFULL)
#define MIN_INTN   (((INTN)-9223372036854775807LL) - 1)
 Minimum legal AArch64 INTN value.
#define CPU_STACK_ALIGNMENT   16
 The stack alignment required for AARCH64.
#define DEFAULT_PAGE_ALLOCATION_GRANULARITY   (0x1000)
 Page allocation granularity for AARCH64.
#define RUNTIME_PAGE_ALLOCATION_GRANULARITY   (0x10000)
#define EFIAPI
#define AARCH64_BTI_NOTE()
#define AARCH64_BTI(__type)
#define FUNCTION_ENTRY_POINT(FunctionPointer)
 Return the pointer to the first instruction of a function given a function pointer.
#define __USER_LABEL_PREFIX__

Typedefs

typedef unsigned long long UINT64
 8-byte unsigned value.
typedef long long INT64
 8-byte signed value.
typedef unsigned int UINT32
 4-byte unsigned value.
typedef int INT32
 4-byte signed value.
typedef unsigned short UINT16
 2-byte unsigned value.
typedef unsigned short CHAR16
 2-byte Character.
typedef short INT16
 2-byte signed value.
typedef unsigned char BOOLEAN
 Logical Boolean.
typedef unsigned char UINT8
 1-byte unsigned value.
typedef char CHAR8
 1-byte Character
typedef signed char INT8
 1-byte signed value
typedef UINT64 UINTN
 Unsigned value of native width.
typedef INT64 INTN
 Signed value of native width.

Functions

 FILE_LICENCE (BSD2_PATENT)
 FILE_SECBOOT (PERMITTED)

Detailed Description

Processor or Compiler specific defines and types for AArch64.

Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.
Portions copyright (c) 2008 - 2009, Apple Inc. All rights reserved.
Portions copyright (c) 2011 - 2013, ARM Ltd. All rights reserved.

SPDX-License-Identifier: BSD-2-Clause-Patent

Definition in file ProcessorBind.h.

Macro Definition Documentation

◆ MDE_CPU_AARCH64

#define MDE_CPU_AARCH64

Define the processor type so other code can make processor based choices.

Definition at line 21 of file ProcessorBind.h.

◆ MAX_BIT

#define MAX_BIT   0x8000000000000000ULL

A value of native width with the highest bit set.

Definition at line 130 of file ProcessorBind.h.

◆ MAX_2_BITS

#define MAX_2_BITS   0xC000000000000000ULL

A value of native width with the two highest bits set.

Definition at line 135 of file ProcessorBind.h.

◆ MAX_ADDRESS

#define MAX_ADDRESS   0xFFFFFFFFFFFFFFFFULL

Maximum legal AARCH64 address.

Definition at line 140 of file ProcessorBind.h.

◆ MAX_ALLOC_ADDRESS

#define MAX_ALLOC_ADDRESS   0xFFFFFFFFFFFFULL

Maximum usable address at boot time (48 bits using 4 KB pages)

Definition at line 145 of file ProcessorBind.h.

◆ MAX_INTN

#define MAX_INTN   ((INTN)0x7FFFFFFFFFFFFFFFULL)

Maximum legal AArch64 INTN and UINTN values.

Definition at line 150 of file ProcessorBind.h.

◆ MAX_UINTN

#define MAX_UINTN   ((UINTN)0xFFFFFFFFFFFFFFFFULL)

Definition at line 151 of file ProcessorBind.h.

◆ MIN_INTN

#define MIN_INTN   (((INTN)-9223372036854775807LL) - 1)

Minimum legal AArch64 INTN value.

Definition at line 156 of file ProcessorBind.h.

◆ CPU_STACK_ALIGNMENT

#define CPU_STACK_ALIGNMENT   16

The stack alignment required for AARCH64.

Definition at line 161 of file ProcessorBind.h.

◆ DEFAULT_PAGE_ALLOCATION_GRANULARITY

#define DEFAULT_PAGE_ALLOCATION_GRANULARITY   (0x1000)

Page allocation granularity for AARCH64.

Definition at line 166 of file ProcessorBind.h.

◆ RUNTIME_PAGE_ALLOCATION_GRANULARITY

#define RUNTIME_PAGE_ALLOCATION_GRANULARITY   (0x10000)

Definition at line 167 of file ProcessorBind.h.

◆ EFIAPI

#define EFIAPI

Definition at line 174 of file ProcessorBind.h.

Referenced by _efi_start(), _efidrv_start(), ARShiftU64(), AsciiCharToUpper(), AsciiStrCatS(), AsciiStrCmp(), AsciiStrCpyS(), AsciiStrDecimalToUint64(), AsciiStrDecimalToUint64S(), AsciiStrDecimalToUintn(), AsciiStrDecimalToUintnS(), AsciiStrHexToBytes(), AsciiStrHexToUint64(), AsciiStrHexToUint64S(), AsciiStrHexToUintn(), AsciiStrHexToUintnS(), AsciiStriCmp(), AsciiStrLen(), AsciiStrnCatS(), AsciiStrnCmp(), AsciiStrnCpyS(), AsciiStrnLenS(), AsciiStrnSizeS(), AsciiStrnToUnicodeStrS(), AsciiStrSize(), AsciiStrStr(), AsciiStrToGuid(), AsciiStrToIpv4Address(), AsciiStrToIpv6Address(), AsciiStrToUnicodeStrS(), Base64Decode(), Base64Encode(), BcdToDecimal8(), BitFieldAnd16(), BitFieldAnd32(), BitFieldAnd64(), BitFieldAnd8(), BitFieldAndThenOr16(), BitFieldAndThenOr32(), BitFieldAndThenOr64(), BitFieldAndThenOr8(), BitFieldCountOnes32(), BitFieldCountOnes64(), BitFieldOr16(), BitFieldOr32(), BitFieldOr64(), BitFieldOr8(), BitFieldRead16(), BitFieldRead32(), BitFieldRead64(), BitFieldRead8(), BitFieldWrite16(), BitFieldWrite32(), BitFieldWrite64(), BitFieldWrite8(), CalculateCheckSum16(), CalculateCheckSum32(), CalculateCheckSum64(), CalculateCheckSum8(), CalculateCrc32(), CalculateCrc32c(), CalculateSum16(), CalculateSum32(), CalculateSum64(), CalculateSum8(), CharToUpper(), ConvertGuidToUuid(), ConvertUuidToGuid(), CpuBreakpoint(), CpuDeadLoop(), CpuPause(), DecimalToBcd8(), DisableInterrupts(), DivS64x64Remainder(), DivU64x32(), DivU64x32Remainder(), DivU64x64Remainder(), efi_block_io_reset(), efi_file_close(), efi_file_delete(), efi_file_flush(), efi_file_get_info(), efi_file_get_position(), efi_file_read(), efi_file_set_position(), efi_file_write(), efi_mp_call(), efi_null_undi_issue(), efi_pxe_arp(), efi_pxe_dhcp(), efi_pxe_start(), efi_pxe_stop(), efi_shim_get_memory_map(), efi_shutdown_hook(), efi_snp_wait_for_packet(), EFI_STATUS(), efi_tick(), efi_undi_issue(), efi_unload(), efi_usb_timer(), efi_vlan_find(), efi_vlan_remove(), efi_vlan_set(), EnableDisableInterrupts(), EnableInterrupts(), FILE_SECBOOT(), GetFirstNode(), GetInterruptState(), GetNextNode(), GetPowerOfTwo32(), GetPowerOfTwo64(), GetPreviousNode(), HighBitSet32(), HighBitSet64(), InitializeListHead(), InsertHeadList(), InsertTailList(), IsListEmpty(), IsNodeAtEnd(), IsNodeInList(), IsNull(), LongJump(), LowBitSet32(), LowBitSet64(), LRotU32(), LRotU64(), LShiftU64(), LShiftU64(), MemoryFence(), mnpnet_event(), ModU64x32(), MultS64x64(), MultU64x32(), MultU64x64(), nii_block(), nii_delay(), nii_io(), nii_map(), nii_sync(), nii_unmap(), PathRemoveLastItem(), QuickSort(), ReadUnaligned16(), ReadUnaligned24(), ReadUnaligned32(), ReadUnaligned64(), RRotU32(), RRotU64(), RShiftU64(), SaveAndDisableInterrupts(), SetInterruptState(), SetJump(), SpeculationBarrier(), StrCatS(), StrCmp(), StrCpyS(), StrDecimalToUint64(), StrDecimalToUint64S(), StrDecimalToUintn(), StrDecimalToUintnS(), StrHexToBytes(), StrHexToUint64(), StrHexToUint64S(), StrHexToUintn(), StrHexToUintnS(), StrLen(), StrnCatS(), StrnCmp(), StrnCpyS(), StrnLenS(), StrnSizeS(), StrSize(), StrStr(), StrToGuid(), StrToIpv6Address(), SwapBytes16(), SwapBytes32(), SwapBytes64(), SwapListEntries(), SwitchStack(), TdCall(), TdIsEnabled(), TdVmCall(), UnicodeStrnToAsciiStrS(), UnicodeStrToAsciiStrS(), usbio_interrupt_callback(), WriteUnaligned16(), WriteUnaligned24(), WriteUnaligned32(), and WriteUnaligned64().

◆ AARCH64_BTI_NOTE

#define AARCH64_BTI_NOTE ( )

Definition at line 224 of file ProcessorBind.h.

◆ AARCH64_BTI

#define AARCH64_BTI ( __type)

Definition at line 225 of file ProcessorBind.h.

◆ FUNCTION_ENTRY_POINT

#define FUNCTION_ENTRY_POINT ( FunctionPointer)
Value:
(VOID *)(UINTN)(FunctionPointer)
UINT64 UINTN
Unsigned value of native width.
#define VOID
Undeclared type.
Definition Base.h:272

Return the pointer to the first instruction of a function given a function pointer.

On ARM CPU architectures, these two pointer values are the same, so the implementation of this macro is very simple.

Parameters
FunctionPointerA pointer to a function.
Returns
The pointer to the first instruction of a function given a function pointer.

Definition at line 238 of file ProcessorBind.h.

◆ __USER_LABEL_PREFIX__

#define __USER_LABEL_PREFIX__

Definition at line 241 of file ProcessorBind.h.

Typedef Documentation

◆ UINT64

typedef unsigned long long UINT64

8-byte unsigned value.

8-byte unsigned value

Definition at line 97 of file ProcessorBind.h.

◆ INT64

typedef long long INT64

8-byte signed value.

8-byte signed value

Definition at line 98 of file ProcessorBind.h.

◆ UINT32

typedef unsigned int UINT32

4-byte unsigned value.

4-byte unsigned value

Definition at line 99 of file ProcessorBind.h.

◆ INT32

typedef int INT32

4-byte signed value.

4-byte signed value

Definition at line 100 of file ProcessorBind.h.

◆ UINT16

typedef unsigned short UINT16

2-byte unsigned value.

2-byte unsigned value

Definition at line 101 of file ProcessorBind.h.

◆ CHAR16

typedef unsigned short CHAR16

2-byte Character.

Unless otherwise specified all strings are stored in the UTF-16 encoding format as defined by Unicode 2.1 and ISO/IEC 10646 standards.

Definition at line 102 of file ProcessorBind.h.

◆ INT16

typedef short INT16

2-byte signed value.

2-byte signed value

Definition at line 103 of file ProcessorBind.h.

◆ BOOLEAN

typedef unsigned char BOOLEAN

Logical Boolean.

1-byte value containing 0 for FALSE or a 1 for TRUE. Other values are undefined.

Definition at line 104 of file ProcessorBind.h.

◆ UINT8

typedef unsigned char UINT8

1-byte unsigned value.

1-byte unsigned value

Definition at line 105 of file ProcessorBind.h.

◆ CHAR8

typedef char CHAR8

1-byte Character

Definition at line 106 of file ProcessorBind.h.

◆ INT8

typedef signed char INT8

1-byte signed value

Definition at line 107 of file ProcessorBind.h.

◆ UINTN

typedef UINT64 UINTN

Unsigned value of native width.

(4 bytes on supported 32-bit processor instructions, 8 bytes on supported 64-bit processor instructions)

Definition at line 115 of file ProcessorBind.h.

◆ INTN

typedef INT64 INTN

Signed value of native width.

(4 bytes on supported 32-bit processor instructions, 8 bytes on supported 64-bit processor instructions)

Definition at line 121 of file ProcessorBind.h.

Function Documentation

◆ FILE_LICENCE()

FILE_LICENCE ( BSD2_PATENT )

◆ FILE_SECBOOT()

FILE_SECBOOT ( PERMITTED )