22#if defined (MDE_CPU_IA32)
34} BASE_LIBRARY_JUMP_BUFFER;
36#define BASE_LIBRARY_JUMP_BUFFER_ALIGNMENT 4
40#if defined (MDE_CPU_X64)
58} BASE_LIBRARY_JUMP_BUFFER;
60#define BASE_LIBRARY_JUMP_BUFFER_ALIGNMENT 8
64#if defined (MDE_CPU_EBC)
74} BASE_LIBRARY_JUMP_BUFFER;
76#define BASE_LIBRARY_JUMP_BUFFER_ALIGNMENT 8
80#if defined (MDE_CPU_ARM)
94} BASE_LIBRARY_JUMP_BUFFER;
96#define BASE_LIBRARY_JUMP_BUFFER_ALIGNMENT 4
100#if defined (MDE_CPU_AARCH64)
126} BASE_LIBRARY_JUMP_BUFFER;
128#define BASE_LIBRARY_JUMP_BUFFER_ALIGNMENT 8
147#define ARM_ID_AA64ISAR0_EL1_AES_SHIFT (4U)
148#define ARM_ID_AA64ISAR0_EL1_SHA1_SHIFT (8U)
149#define ARM_ID_AA64ISAR0_EL1_SHA2_SHIFT (12U)
150#define ARM_ID_AA64ISAR0_EL1_CRC32_SHIFT (16U)
151#define ARM_ID_AA64ISAR0_EL1_ATOMIC_SHIFT (20U)
152#define ARM_ID_AA64ISAR0_EL1_RDM_SHIFT (28U)
153#define ARM_ID_AA64ISAR0_EL1_SHA3_SHIFT (32U)
154#define ARM_ID_AA64ISAR0_EL1_SM3_SHIFT (36U)
155#define ARM_ID_AA64ISAR0_EL1_SM4_SHIFT (40U)
156#define ARM_ID_AA64ISAR0_EL1_DP_SHIFT (44U)
157#define ARM_ID_AA64ISAR0_EL1_FHM_SHIFT (48U)
158#define ARM_ID_AA64ISAR0_EL1_TS_SHIFT (52U)
159#define ARM_ID_AA64ISAR0_EL1_TLB_SHIFT (56U)
160#define ARM_ID_AA64ISAR0_EL1_RNDR_SHIFT (60U)
165#define ARM_ID_AA64ISAR0_EL1_AES_MASK (0xFU)
166#define ARM_ID_AA64ISAR0_EL1_SHA1_MASK (0xFU)
167#define ARM_ID_AA64ISAR0_EL1_SHA2_MASK (0xFU)
168#define ARM_ID_AA64ISAR0_EL1_CRC32_MASK (0xFU)
169#define ARM_ID_AA64ISAR0_EL1_ATOMIC_MASK (0xFU)
170#define ARM_ID_AA64ISAR0_EL1_RDM_MASK (0xFU)
171#define ARM_ID_AA64ISAR0_EL1_SHA3_MASK (0xFU)
172#define ARM_ID_AA64ISAR0_EL1_SM3_MASK (0xFU)
173#define ARM_ID_AA64ISAR0_EL1_SM4_MASK (0xFU)
174#define ARM_ID_AA64ISAR0_EL1_DP_MASK (0xFU)
175#define ARM_ID_AA64ISAR0_EL1_FHM_MASK (0xFU)
176#define ARM_ID_AA64ISAR0_EL1_TS_MASK (0xFU)
177#define ARM_ID_AA64ISAR0_EL1_TLB_MASK (0xFU)
178#define ARM_ID_AA64ISAR0_EL1_RNDR_MASK (0xFU)
183#define ARM_ID_AA64ISAR0_EL1_AES_FEAT_AES_MASK (0x1U)
184#define ARM_ID_AA64ISAR0_EL1_AES_FEAT_PMULL_MASK (0x2U)
185#define ARM_ID_AA64ISAR0_EL1_SHA1_FEAT_SHA1_MASK (0x1U)
186#define ARM_ID_AA64ISAR0_EL1_SHA2_FEAT_SHA256_MASK (0x1U)
187#define ARM_ID_AA64ISAR0_EL1_SHA2_FEAT_SHA512_MASK (0x2U)
188#define ARM_ID_AA64ISAR0_EL1_CRC32_HAVE_CRC32_MASK (0x1U)
189#define ARM_ID_AA64ISAR0_EL1_ATOMIC_FEAT_LSE_MASK (0x2U)
190#define ARM_ID_AA64ISAR0_EL1_RDM_FEAT_RDM_MASK (0x1U)
191#define ARM_ID_AA64ISAR0_EL1_SHA3_FEAT_SHA3_MASK (0x1U)
192#define ARM_ID_AA64ISAR0_EL1_SM3_FEAT_SM3_MASK (0x1U)
193#define ARM_ID_AA64ISAR0_EL1_SM4_FEAT_SM4_MASK (0x1U)
194#define ARM_ID_AA64ISAR0_EL1_DP_FEAT_DOTPROD_MASK (0x1U)
195#define ARM_ID_AA64ISAR0_EL1_FHM_FEAT_FHM_MASK (0x1U)
196#define ARM_ID_AA64ISAR0_EL1_TS_FEAT_FLAGM_MASK (0x1U)
197#define ARM_ID_AA64ISAR0_EL1_TS_FEAT_FLAGM2_MASK (0x2U)
198#define ARM_ID_AA64ISAR0_EL1_TLB_FEAT_TLBIOS_MASK (0x1U)
199#define ARM_ID_AA64ISAR0_EL1_TLB_FEAT_TLBIRANGE_MASK (0x2U)
200#define ARM_ID_AA64ISAR0_EL1_RNDR_FEAT_RNG_MASK (0x1U)
212ArmReadIdAA64Isar0Reg (
218#if defined (MDE_CPU_RISCV64)
237} BASE_LIBRARY_JUMP_BUFFER;
239#define BASE_LIBRARY_JUMP_BUFFER_ALIGNMENT 8
242RiscVSetSupervisorScratch (
247RiscVGetSupervisorScratch (
252RiscVSetSupervisorStvec (
257RiscVGetSupervisorStvec (
262RiscVGetSupervisorTrapCause (
267RiscVSetSupervisorAddressTranslationRegister (
272RiscVGetSupervisorAddressTranslationRegister (
282RiscVSetSupervisorTimeCompareRegister (
287RiscVEnableTimerInterrupt (
292RiscVDisableTimerInterrupt (
297RiscVClearPendingTimerInterrupt (
307RiscVInvalidateInstCacheFenceAsm (
317RiscVInvalidateDataCacheFenceAsm (
328RiscVCpuCacheFlushCmoAsm (
340RiscVCpuCacheCleanCmoAsm (
350RiscVCpuCacheInvalCmoAsm (
356#if defined (MDE_CPU_LOONGARCH64)
373} BASE_LIBRARY_JUMP_BUFFER;
375#define BASE_LIBRARY_JUMP_BUFFER_ALIGNMENT 8
383SetExceptionBaseAddress (
403EnableLocalInterrupts (
413DisableLocalInterrupts (
437AsmReadStableCounter (
684 OUT CHAR16 *Destination,
721 OUT CHAR16 *Destination,
759 IN OUT CHAR16 *Destination,
799 IN OUT CHAR16 *Destination,
852 OUT CHAR16 **EndPointer OPTIONAL,
903 OUT CHAR16 **EndPointer OPTIONAL,
959 OUT CHAR16 **EndPointer OPTIONAL,
1015 OUT CHAR16 **EndPointer OPTIONAL,
1092 OUT CHAR8 *Destination,
1126 OUT CHAR8 *Destination,
1161 IN OUT CHAR8 *Destination,
1198 IN OUT CHAR8 *Destination,
1249 OUT CHAR8 **EndPointer OPTIONAL,
1298 OUT CHAR8 **EndPointer OPTIONAL,
1351 OUT CHAR8 **EndPointer OPTIONAL,
1404 OUT CHAR8 **EndPointer OPTIONAL,
1526 IN CONST CHAR16 *SecondString,
1778 OUT CHAR16 **EndPointer OPTIONAL,
1780 OUT UINT8 *PrefixLength OPTIONAL
1828 OUT CHAR16 **EndPointer OPTIONAL,
1830 OUT UINT8 *PrefixLength OPTIONAL
1833#define GUID_STRING_LENGTH 36
1970 OUT CHAR8 *Destination,
2022 OUT CHAR8 *Destination,
2415 OUT CHAR8 **EndPointer OPTIONAL,
2417 OUT UINT8 *PrefixLength OPTIONAL
2463 OUT CHAR8 **EndPointer OPTIONAL,
2465 OUT UINT8 *PrefixLength OPTIONAL
2595 OUT CHAR16 *Destination,
2646 OUT CHAR16 *Destination,
2715 OUT CHAR8 *Destination OPTIONAL,
2804 IN CONST CHAR8 *Source OPTIONAL,
2806 OUT UINT8 *Destination OPTIONAL,
2904#define INITIALIZE_LIST_HEAD_VARIABLE(ListHead) {&(ListHead), &(ListHead)}
2913#define BASE_LIST_FOR_EACH(Entry, ListHead) \
2914 for(Entry = (ListHead)->ForwardLink; Entry != (ListHead); Entry = Entry->ForwardLink)
2929#define BASE_LIST_FOR_EACH_SAFE(Entry, NextEntry, ListHead) \
2930 for(Entry = (ListHead)->ForwardLink, NextEntry = Entry->ForwardLink;\
2931 Entry != (ListHead); Entry = NextEntry, NextEntry = Entry->ForwardLink)
3316 IN OUT VOID *BufferToSort,
3320 OUT VOID *BufferOneElement
3669 IN UINT64 Multiplicand,
3670 IN UINT32 Multiplier
3690 IN UINT64 Multiplicand,
3691 IN UINT64 Multiplier
3711 IN INT64 Multiplicand,
3785 OUT UINT32 *Remainder OPTIONAL
3812 OUT UINT64 *Remainder OPTIONAL
3843 OUT INT64 *Remainder OPTIONAL
4965 IN UINT16 InitialValue
4971#define CRC16ANSI_INIT 0xffff
4987 IN UINT32 InitialValue
5004 IN UINT16 InitialValue
5062 OUT BASE_LIBRARY_JUMP_BUFFER *JumpBuffer
5084 IN BASE_LIBRARY_JUMP_BUFFER *JumpBuffer,
5166 IN BOOLEAN InterruptState
5215 IN VOID *Context1 OPTIONAL,
5216 IN VOID *Context2 OPTIONAL,
5283 IN OUT VOID *Results
5309 IN OUT VOID *Results
5324#if defined (MDE_CPU_X64)
5329 PvalidatePageSize4K = 0,
5330 PvalidatePageSize2MB,
5331} PVALIDATE_PAGE_SIZE;
5336#define PVALIDATE_RET_SUCCESS 0
5337#define PVALIDATE_RET_FAIL_INPUT 1
5338#define PVALIDATE_RET_SIZE_MISMATCH 6
5343#define PVALIDATE_RET_NO_RMPUPDATE 255
5368 IN PVALIDATE_PAGE_SIZE PageSize,
5369 IN BOOLEAN Validate,
5370 IN PHYSICAL_ADDRESS Address
5376#define RMPADJUST_VMPL_MAX 3
5377#define RMPADJUST_VMPL_MASK 0xFF
5378#define RMPADJUST_VMPL_SHIFT 0
5379#define RMPADJUST_PERMISSION_MASK_MASK 0xFF
5380#define RMPADJUST_PERMISSION_MASK_SHIFT 8
5381#define RMPADJUST_VMSA_PAGE_BIT BIT16
5410#if defined (MDE_CPU_IA32) || defined (MDE_CPU_X64)
5418 UINT32 Reserved_0 : 1;
5420 UINT32 Reserved_1 : 1;
5422 UINT32 Reserved_2 : 1;
5431 UINT32 Reserved_3 : 1;
5444 UINT32 Reserved_0 : 1;
5446 UINT32 Reserved_1 : 1;
5448 UINT32 Reserved_2 : 1;
5457 UINT32 Reserved_3 : 1;
5464 UINT32 Reserved_4 : 10;
5482 UINT32 Reserved_0 : 10;
5484 UINT32 Reserved_1 : 1;
5486 UINT32 Reserved_2 : 10;
5513 UINT32 OSXMMEXCPT : 1;
5520 UINT32 Reserved_3 : 1;
5521 UINT32 FSGSBASE : 1;
5524 UINT32 Reserved_4 : 1;
5528 UINT32 Reserved_5 : 9;
5538 UINT32 LimitLow : 16;
5539 UINT32 BaseLow : 16;
5545 UINT32 LimitHigh : 4;
5550 UINT32 BaseHigh : 8;
5553} IA32_SEGMENT_DESCRIPTOR;
5565#define IA32_IDT_GATE_TYPE_TASK 0x85
5566#define IA32_IDT_GATE_TYPE_INTERRUPT_16 0x86
5567#define IA32_IDT_GATE_TYPE_TRAP_16 0x87
5568#define IA32_IDT_GATE_TYPE_INTERRUPT_32 0x8E
5569#define IA32_IDT_GATE_TYPE_TRAP_32 0x8F
5571#define IA32_GDT_TYPE_TSS 0x9
5572#define IA32_GDT_ALIGNMENT 8
5574 #if defined (MDE_CPU_IA32)
5580 UINT32 OffsetLow : 16;
5581 UINT32 Selector : 16;
5582 UINT32 Reserved_0 : 8;
5583 UINT32 GateType : 8;
5584 UINT32 OffsetHigh : 16;
5587} IA32_IDT_GATE_DESCRIPTOR;
5594 UINT16 PreviousTaskLink;
5628 UINT16 LDTSegmentSelector;
5631 UINT16 IOMapBaseAddress;
5632} IA32_TASK_STATE_SEGMENT;
5636 UINT32 LimitLow : 16;
5637 UINT32 BaseLow : 16;
5640 UINT32 Reserved_43 : 1;
5643 UINT32 LimitHigh : 4;
5645 UINT32 Reserved_52 : 2;
5647 UINT32 BaseHigh : 8;
5650} IA32_TSS_DESCRIPTOR;
5655 #if defined (MDE_CPU_X64)
5661 UINT32 OffsetLow : 16;
5662 UINT32 Selector : 16;
5663 UINT32 Reserved_0 : 8;
5664 UINT32 GateType : 8;
5665 UINT32 OffsetHigh : 16;
5666 UINT32 OffsetUpper : 32;
5667 UINT32 Reserved_1 : 32;
5673} IA32_IDT_GATE_DESCRIPTOR;
5687 UINT16 Reserved_100;
5688 UINT16 IOMapBaseAddress;
5689} IA32_TASK_STATE_SEGMENT;
5693 UINT32 LimitLow : 16;
5694 UINT32 BaseLow : 16;
5695 UINT32 BaseMidl : 8;
5697 UINT32 Reserved_43 : 1;
5700 UINT32 LimitHigh : 4;
5702 UINT32 Reserved_52 : 2;
5704 UINT32 BaseMidh : 8;
5705 UINT32 BaseHigh : 32;
5706 UINT32 Reserved_96 : 32;
5712} IA32_TSS_DESCRIPTOR;
5778 IA32_EFLAGS32 EFLAGS;
5794 IA32_REGISTER_SET *RealModeState;
5795 VOID *RealModeBuffer;
5796 UINT32 RealModeBufferSize;
5797 UINT32 ThunkAttributes;
5800#define THUNK_ATTRIBUTE_BIG_REAL_MODE 0x00000001
5801#define THUNK_ATTRIBUTE_DISABLE_A20_MASK_INT_15 0x00000002
5802#define THUNK_ATTRIBUTE_DISABLE_A20_MASK_KBD_CTRL 0x00000004
5816typedef VOID (X86_ASSEMBLY_PATCH_LABEL) (
5849 OUT UINT32 *Eax OPTIONAL,
5850 OUT UINT32 *Ebx OPTIONAL,
5851 OUT UINT32 *Ecx OPTIONAL,
5852 OUT UINT32 *Edx OPTIONAL
5892 OUT UINT32 *Eax OPTIONAL,
5893 OUT UINT32 *Ebx OPTIONAL,
5894 OUT UINT32 *Ecx OPTIONAL,
5895 OUT UINT32 *Edx OPTIONAL
7056 OUT IA32_DESCRIPTOR *Gdtr
7073 IN CONST IA32_DESCRIPTOR *Gdtr
7090 OUT IA32_DESCRIPTOR *Idtr
7107 IN CONST IA32_DESCRIPTOR *Idtr
7156 OUT IA32_FX_BUFFER *Buffer
7176 IN CONST IA32_FX_BUFFER *Buffer
7540 IN VOID *LinearAddress
7584 IN VOID *Context1 OPTIONAL,
7585 IN VOID *Context2 OPTIONAL,
7627 IN VOID *Context1 OPTIONAL,
7628 IN VOID *Context2 OPTIONAL,
7668 IN UINT64 EntryPoint,
7669 IN UINT64 Context1 OPTIONAL,
7670 IN UINT64 Context2 OPTIONAL,
7708 IN UINT32 EntryPoint,
7709 IN UINT32 Context1 OPTIONAL,
7710 IN UINT32 Context2 OPTIONAL,
7742 OUT UINT32 *RealModeBufferSize,
7743 OUT UINT32 *ExtraStackSize
7763 IN OUT THUNK_CONTEXT *ThunkContext
7822 IN OUT THUNK_CONTEXT *ThunkContext
7848 IN OUT THUNK_CONTEXT *ThunkContext
8015 IN OUT SVSM_CALL_DATA *SvsmCallData
8055 OUT X86_ASSEMBLY_PATCH_LABEL *InstructionEnd,
8056 IN UINT64 PatchValue,
VOID EFIAPI AsmWriteMm3(IN UINT64 Value)
UINT64 EFIAPI AsmReadMm7(VOID)
UINTN EFIAPI AsmReadEflags(VOID)
UINT64 EFIAPI AsmReadTsc(VOID)
VOID EFIAPI AsmWriteMm7(IN UINT64 Value)
UINT64 EFIAPI AsmReadMm2(VOID)
UINT64 EFIAPI AsmReadMm5(VOID)
VOID EFIAPI AsmWriteMm5(IN UINT64 Value)
UINT64 EFIAPI AsmReadMm1(VOID)
VOID EFIAPI AsmWriteMm6(IN UINT64 Value)
VOID EFIAPI AsmWriteMm0(IN UINT64 Value)
UINT64 EFIAPI AsmReadMm3(VOID)
VOID EFIAPI AsmWriteMm2(IN UINT64 Value)
UINT64 EFIAPI AsmReadMm6(VOID)
VOID EFIAPI AsmWriteMm4(IN UINT64 Value)
UINT64 EFIAPI AsmReadMm0(VOID)
UINT64 EFIAPI AsmReadMm4(VOID)
VOID EFIAPI AsmWriteMm1(IN UINT64 Value)
UINT32 EFIAPI BitFieldAnd32(IN UINT32 Operand, IN UINTN StartBit, IN UINTN EndBit, IN UINT32 AndData)
UINTN EFIAPI AsciiStrnLenS(IN CONST CHAR8 *String, IN UINTN MaxSize)
UINT64 EFIAPI BitFieldOr64(IN UINT64 Operand, IN UINTN StartBit, IN UINTN EndBit, IN UINT64 OrData)
UINT8 EFIAPI BitFieldCountOnes64(IN UINT64 Operand, IN UINTN StartBit, IN UINTN EndBit)
UINT16 EFIAPI BitFieldAnd16(IN UINT16 Operand, IN UINTN StartBit, IN UINTN EndBit, IN UINT16 AndData)
UINT64 EFIAPI CalculateCheckSum64(IN CONST UINT64 *Buffer, IN UINTN Length)
INTN EFIAPI AsciiStriCmp(IN CONST CHAR8 *FirstString, IN CONST CHAR8 *SecondString)
UINT32 EFIAPI RRotU32(IN UINT32 Operand, IN UINTN Count)
UINT64 EFIAPI StrHexToUint64(IN CONST CHAR16 *String)
BOOLEAN EFIAPI IsNull(IN CONST LIST_ENTRY *List, IN CONST LIST_ENTRY *Node)
UINT8 EFIAPI BcdToDecimal8(IN UINT8 Value)
LIST_ENTRY *EFIAPI GetPreviousNode(IN CONST LIST_ENTRY *List, IN CONST LIST_ENTRY *Node)
BOOLEAN EFIAPI SetInterruptState(IN BOOLEAN InterruptState)
UINT64 EFIAPI BitFieldAndThenOr64(IN UINT64 Operand, IN UINTN StartBit, IN UINTN EndBit, IN UINT64 AndData, IN UINT64 OrData)
UINTN EFIAPI StrSize(IN CONST CHAR16 *String)
UINT8 EFIAPI BitFieldAndThenOr8(IN UINT8 Operand, IN UINTN StartBit, IN UINTN EndBit, IN UINT8 AndData, IN UINT8 OrData)
BOOLEAN EFIAPI IsListEmpty(IN CONST LIST_ENTRY *ListHead)
RETURN_STATUS EFIAPI AsciiStrnCpyS(OUT CHAR8 *Destination, IN UINTN DestMax, IN CONST CHAR8 *Source, IN UINTN Length)
UINT32 EFIAPI BitFieldAndThenOr32(IN UINT32 Operand, IN UINTN StartBit, IN UINTN EndBit, IN UINT32 AndData, IN UINT32 OrData)
INTN EFIAPI LowBitSet32(IN UINT32 Operand)
RETURN_STATUS EFIAPI StrCpyS(OUT CHAR16 *Destination, IN UINTN DestMax, IN CONST CHAR16 *Source)
CHAR16 EFIAPI CharToUpper(IN CHAR16 Char)
LIST_ENTRY *EFIAPI GetNextNode(IN CONST LIST_ENTRY *List, IN CONST LIST_ENTRY *Node)
BOOLEAN EFIAPI GetInterruptState(VOID)
UINT64 EFIAPI DivU64x32(IN UINT64 Dividend, IN UINT32 Divisor)
UINTN EFIAPI StrDecimalToUintn(IN CONST CHAR16 *String)
UINT32 EFIAPI WriteUnaligned24(OUT UINT32 *Buffer, IN UINT32 Value)
INTN EFIAPI StrCmp(IN CONST CHAR16 *FirstString, IN CONST CHAR16 *SecondString)
RETURNS_TWICE UINTN EFIAPI SetJump(OUT BASE_LIBRARY_JUMP_BUFFER *JumpBuffer)
UINT64 EFIAPI MultU64x64(IN UINT64 Multiplicand, IN UINT64 Multiplier)
UINT32 EFIAPI CalculateSum32(IN CONST UINT32 *Buffer, IN UINTN Length)
INTN(EFIAPI * BASE_SORT_COMPARE)(IN CONST VOID *Buffer1, IN CONST VOID *Buffer2)
BOOLEAN EFIAPI SaveAndDisableInterrupts(VOID)
UINT16 EFIAPI SwapBytes16(IN UINT16 Value)
BOOLEAN EFIAPI IsNodeAtEnd(IN CONST LIST_ENTRY *List, IN CONST LIST_ENTRY *Node)
UINTN EFIAPI TdCall(IN UINT64 Leaf, IN UINT64 Arg1, IN UINT64 Arg2, IN UINT64 Arg3, IN OUT VOID *Results)
RETURN_STATUS EFIAPI AsciiStrHexToUint64S(IN CONST CHAR8 *String, OUT CHAR8 **EndPointer OPTIONAL, OUT UINT64 *Data)
UINT64 EFIAPI ReadUnaligned64(IN CONST UINT64 *Buffer)
VOID EFIAPI SwitchStack(IN SWITCH_STACK_ENTRY_POINT EntryPoint, IN VOID *Context1 OPTIONAL, IN VOID *Context2 OPTIONAL, IN VOID *NewStack,...)
UINT32 EFIAPI CalculateCrc32(IN VOID *Buffer, IN UINTN Length)
INT64 EFIAPI DivS64x64Remainder(IN INT64 Dividend, IN INT64 Divisor, OUT INT64 *Remainder OPTIONAL)
UINT64 EFIAPI AsciiStrDecimalToUint64(IN CONST CHAR8 *String)
UINTN EFIAPI AsciiStrLen(IN CONST CHAR8 *String)
UINT64 EFIAPI StrDecimalToUint64(IN CONST CHAR16 *String)
LIST_ENTRY *EFIAPI InsertHeadList(IN OUT LIST_ENTRY *ListHead, IN OUT LIST_ENTRY *Entry)
RETURN_STATUS EFIAPI AsciiStrCatS(IN OUT CHAR8 *Destination, IN UINTN DestMax, IN CONST CHAR8 *Source)
RETURN_STATUS EFIAPI StrDecimalToUint64S(IN CONST CHAR16 *String, OUT CHAR16 **EndPointer OPTIONAL, OUT UINT64 *Data)
UINT32 EFIAPI GetPowerOfTwo32(IN UINT32 Operand)
UINT32 EFIAPI BitFieldWrite32(IN UINT32 Operand, IN UINTN StartBit, IN UINTN EndBit, IN UINT32 Value)
LIST_ENTRY *EFIAPI GetFirstNode(IN CONST LIST_ENTRY *List)
UINT16 EFIAPI BitFieldAndThenOr16(IN UINT16 Operand, IN UINTN StartBit, IN UINTN EndBit, IN UINT16 AndData, IN UINT16 OrData)
UINT16 EFIAPI CalculateSum16(IN CONST UINT16 *Buffer, IN UINTN Length)
UINT32 EFIAPI BitFieldOr32(IN UINT32 Operand, IN UINTN StartBit, IN UINTN EndBit, IN UINT32 OrData)
UINT16 EFIAPI ReadUnaligned16(IN CONST UINT16 *Buffer)
UINT64 EFIAPI BitFieldWrite64(IN UINT64 Operand, IN UINTN StartBit, IN UINTN EndBit, IN UINT64 Value)
INTN EFIAPI AsciiStrCmp(IN CONST CHAR8 *FirstString, IN CONST CHAR8 *SecondString)
UINTN EFIAPI StrnSizeS(IN CONST CHAR16 *String, IN UINTN MaxSize)
VOID EFIAPI CpuDeadLoop(VOID)
VOID EFIAPI QuickSort(IN OUT VOID *BufferToSort, IN CONST UINTN Count, IN CONST UINTN ElementSize, IN BASE_SORT_COMPARE CompareFunction, OUT VOID *BufferOneElement)
UINT8 EFIAPI CalculateSum8(IN CONST UINT8 *Buffer, IN UINTN Length)
INTN EFIAPI AsciiStrnCmp(IN CONST CHAR8 *FirstString, IN CONST CHAR8 *SecondString, IN UINTN Length)
RETURN_STATUS EFIAPI UnicodeStrToAsciiStrS(IN CONST CHAR16 *Source, OUT CHAR8 *Destination, IN UINTN DestMax)
VOID EFIAPI MemoryFence(VOID)
VOID EFIAPI CpuPause(VOID)
UINT8 EFIAPI CalculateCheckSum8(IN CONST UINT8 *Buffer, IN UINTN Length)
RETURN_STATUS EFIAPI Base64Decode(IN CONST CHAR8 *Source OPTIONAL, IN UINTN SourceSize, OUT UINT8 *Destination OPTIONAL, IN OUT UINTN *DestinationSize)
VOID EFIAPI EnableInterrupts(VOID)
UINTN EFIAPI AsciiStrDecimalToUintn(IN CONST CHAR8 *String)
LIST_ENTRY *EFIAPI SwapListEntries(IN OUT LIST_ENTRY *FirstEntry, IN OUT LIST_ENTRY *SecondEntry)
RETURN_STATUS EFIAPI StrCatS(IN OUT CHAR16 *Destination, IN UINTN DestMax, IN CONST CHAR16 *Source)
UINT32 EFIAPI SwapBytes32(IN UINT32 Value)
UINT32 EFIAPI ModU64x32(IN UINT64 Dividend, IN UINT32 Divisor)
VOID EFIAPI DisableInterrupts(VOID)
RETURN_STATUS EFIAPI AsciiStrDecimalToUintnS(IN CONST CHAR8 *String, OUT CHAR8 **EndPointer OPTIONAL, OUT UINTN *Data)
UINT8 EFIAPI BitFieldWrite8(IN UINT8 Operand, IN UINTN StartBit, IN UINTN EndBit, IN UINT8 Value)
UINTN EFIAPI StrHexToUintn(IN CONST CHAR16 *String)
RETURN_STATUS EFIAPI AsciiStrHexToUintnS(IN CONST CHAR8 *String, OUT CHAR8 **EndPointer OPTIONAL, OUT UINTN *Data)
UINTN EFIAPI StrnLenS(IN CONST CHAR16 *String, IN UINTN MaxSize)
RETURN_STATUS EFIAPI StrToIpv6Address(IN CONST CHAR16 *String, OUT CHAR16 **EndPointer OPTIONAL, OUT IPv6_ADDRESS *Address, OUT UINT8 *PrefixLength OPTIONAL)
RETURN_STATUS EFIAPI StrToIpv4Address(IN CONST CHAR16 *String, OUT CHAR16 **EndPointer OPTIONAL, OUT IPv4_ADDRESS *Address, OUT UINT8 *PrefixLength OPTIONAL)
INTN EFIAPI StrnCmp(IN CONST CHAR16 *FirstString, IN CONST CHAR16 *SecondString, IN UINTN Length)
RETURN_STATUS EFIAPI AsciiStrDecimalToUint64S(IN CONST CHAR8 *String, OUT CHAR8 **EndPointer OPTIONAL, OUT UINT64 *Data)
UINT8 EFIAPI BitFieldRead8(IN UINT8 Operand, IN UINTN StartBit, IN UINTN EndBit)
LIST_ENTRY *EFIAPI RemoveEntryList(IN CONST LIST_ENTRY *Entry)
UINT64 EFIAPI RShiftU64(IN UINT64 Operand, IN UINTN Count)
UINT64 EFIAPI ARShiftU64(IN UINT64 Operand, IN UINTN Count)
RETURN_STATUS EFIAPI AsciiStrToGuid(IN CONST CHAR8 *String, OUT GUID *Guid)
UINT64 EFIAPI MultU64x32(IN UINT64 Multiplicand, IN UINT32 Multiplier)
RETURN_STATUS EFIAPI StrToGuid(IN CONST CHAR16 *String, OUT GUID *Guid)
RETURN_STATUS EFIAPI AsciiStrToIpv4Address(IN CONST CHAR8 *String, OUT CHAR8 **EndPointer OPTIONAL, OUT IPv4_ADDRESS *Address, OUT UINT8 *PrefixLength OPTIONAL)
CHAR16 *EFIAPI PathCleanUpDirectories(IN CHAR16 *Path)
UINT16 EFIAPI CalculateCheckSum16(IN CONST UINT16 *Buffer, IN UINTN Length)
UINT64 EFIAPI DivU64x32Remainder(IN UINT64 Dividend, IN UINT32 Divisor, OUT UINT32 *Remainder OPTIONAL)
RETURN_STATUS EFIAPI StrHexToUintnS(IN CONST CHAR16 *String, OUT CHAR16 **EndPointer OPTIONAL, OUT UINTN *Data)
UINT8 EFIAPI BitFieldAnd8(IN UINT8 Operand, IN UINTN StartBit, IN UINTN EndBit, IN UINT8 AndData)
UINTN EFIAPI AsciiStrnSizeS(IN CONST CHAR8 *String, IN UINTN MaxSize)
UINT64 EFIAPI DivU64x64Remainder(IN UINT64 Dividend, IN UINT64 Divisor, OUT UINT64 *Remainder OPTIONAL)
UINT64 EFIAPI GetPowerOfTwo64(IN UINT64 Operand)
UINT32 EFIAPI WriteUnaligned32(OUT UINT32 *Buffer, IN UINT32 Value)
BOOLEAN EFIAPI PathRemoveLastItem(IN OUT CHAR16 *Path)
LIST_ENTRY *EFIAPI InitializeListHead(IN OUT LIST_ENTRY *ListHead)
UINT16 EFIAPI BitFieldWrite16(IN UINT16 Operand, IN UINTN StartBit, IN UINTN EndBit, IN UINT16 Value)
RETURN_STATUS EFIAPI StrHexToBytes(IN CONST CHAR16 *String, IN UINTN Length, OUT UINT8 *Buffer, IN UINTN MaxBufferSize)
UINT64 EFIAPI RRotU64(IN UINT64 Operand, IN UINTN Count)
UINTN EFIAPI AsciiStrHexToUintn(IN CONST CHAR8 *String)
INT64 EFIAPI MultS64x64(IN INT64 Multiplicand, IN INT64 Multiplier)
RETURN_STATUS EFIAPI AsciiStrToIpv6Address(IN CONST CHAR8 *String, OUT CHAR8 **EndPointer OPTIONAL, OUT IPv6_ADDRESS *Address, OUT UINT8 *PrefixLength OPTIONAL)
INTN EFIAPI LowBitSet64(IN UINT64 Operand)
RETURN_STATUS EFIAPI StrnCatS(IN OUT CHAR16 *Destination, IN UINTN DestMax, IN CONST CHAR16 *Source, IN UINTN Length)
VOID EFIAPI CpuBreakpoint(VOID)
UINT8 EFIAPI DecimalToBcd8(IN UINT8 Value)
UINT16 EFIAPI WriteUnaligned16(OUT UINT16 *Buffer, IN UINT16 Value)
RETURN_STATUS EFIAPI StrDecimalToUintnS(IN CONST CHAR16 *String, OUT CHAR16 **EndPointer OPTIONAL, OUT UINTN *Data)
UINT64 EFIAPI BitFieldRead64(IN UINT64 Operand, IN UINTN StartBit, IN UINTN EndBit)
UINT64 EFIAPI LShiftU64(IN UINT64 Operand, IN UINTN Count)
UINT64 EFIAPI BitFieldAnd64(IN UINT64 Operand, IN UINTN StartBit, IN UINTN EndBit, IN UINT64 AndData)
RETURN_STATUS EFIAPI AsciiStrToUnicodeStrS(IN CONST CHAR8 *Source, OUT CHAR16 *Destination, IN UINTN DestMax)
UINT32 EFIAPI ReadUnaligned24(IN CONST UINT32 *Buffer)
UINT64 EFIAPI SwapBytes64(IN UINT64 Value)
UINT16 EFIAPI CalculateCrc16CcittF(IN CONST VOID *Buffer, IN UINTN Length, IN UINT16 InitialValue)
UINT16 EFIAPI BitFieldOr16(IN UINT16 Operand, IN UINTN StartBit, IN UINTN EndBit, IN UINT16 OrData)
UINT64 EFIAPI CalculateSum64(IN CONST UINT64 *Buffer, IN UINTN Length)
UINT8 EFIAPI BitFieldCountOnes32(IN UINT32 Operand, IN UINTN StartBit, IN UINTN EndBit)
VOID(EFIAPI * SWITCH_STACK_ENTRY_POINT)(IN VOID *Context1 OPTIONAL, IN VOID *Context2 OPTIONAL)
RETURN_STATUS EFIAPI StrHexToUint64S(IN CONST CHAR16 *String, OUT CHAR16 **EndPointer OPTIONAL, OUT UINT64 *Data)
UINT16 EFIAPI BitFieldRead16(IN UINT16 Operand, IN UINTN StartBit, IN UINTN EndBit)
UINTN EFIAPI AsciiStrSize(IN CONST CHAR8 *String)
UINT32 EFIAPI LRotU32(IN UINT32 Operand, IN UINTN Count)
UINT32 EFIAPI CalculateCrc32c(IN CONST VOID *Buffer, IN UINTN Length, IN UINT32 InitialValue)
UINT16 EFIAPI CalculateCrc16Ansi(IN CONST VOID *Buffer, IN UINTN Length, IN UINT16 InitialValue)
VOID EFIAPI LongJump(IN BASE_LIBRARY_JUMP_BUFFER *JumpBuffer, IN UINTN Value)
RETURN_STATUS EFIAPI StrnCpyS(OUT CHAR16 *Destination, IN UINTN DestMax, IN CONST CHAR16 *Source, IN UINTN Length)
INTN EFIAPI HighBitSet64(IN UINT64 Operand)
RETURN_STATUS EFIAPI AsciiStrHexToBytes(IN CONST CHAR8 *String, IN UINTN Length, OUT UINT8 *Buffer, IN UINTN MaxBufferSize)
UINT8 EFIAPI BitFieldOr8(IN UINT8 Operand, IN UINTN StartBit, IN UINTN EndBit, IN UINT8 OrData)
UINT32 EFIAPI CalculateCheckSum32(IN CONST UINT32 *Buffer, IN UINTN Length)
RETURN_STATUS EFIAPI AsciiStrnCatS(IN OUT CHAR8 *Destination, IN UINTN DestMax, IN CONST CHAR8 *Source, IN UINTN Length)
UINT64 EFIAPI WriteUnaligned64(OUT UINT64 *Buffer, IN UINT64 Value)
UINT64 EFIAPI LRotU64(IN UINT64 Operand, IN UINTN Count)
RETURN_STATUS EFIAPI AsciiStrnToUnicodeStrS(IN CONST CHAR8 *Source, IN UINTN Length, OUT CHAR16 *Destination, IN UINTN DestMax, OUT UINTN *DestinationLength)
UINTN EFIAPI StrLen(IN CONST CHAR16 *String)
CHAR8 *EFIAPI AsciiStrStr(IN CONST CHAR8 *String, IN CONST CHAR8 *SearchString)
BOOLEAN EFIAPI IsNodeInList(IN CONST LIST_ENTRY *FirstEntry, IN CONST LIST_ENTRY *SecondEntry)
CHAR8 EFIAPI AsciiCharToUpper(IN CHAR8 Chr)
UINT64 EFIAPI AsciiStrHexToUint64(IN CONST CHAR8 *String)
RETURN_STATUS EFIAPI UnicodeStrnToAsciiStrS(IN CONST CHAR16 *Source, IN UINTN Length, OUT CHAR8 *Destination, IN UINTN DestMax, OUT UINTN *DestinationLength)
RETURN_STATUS EFIAPI AsciiStrCpyS(OUT CHAR8 *Destination, IN UINTN DestMax, IN CONST CHAR8 *Source)
VOID EFIAPI EnableDisableInterrupts(VOID)
CHAR16 *EFIAPI StrStr(IN CONST CHAR16 *String, IN CONST CHAR16 *SearchString)
INTN EFIAPI HighBitSet32(IN UINT32 Operand)
LIST_ENTRY *EFIAPI InsertTailList(IN OUT LIST_ENTRY *ListHead, IN OUT LIST_ENTRY *Entry)
RETURN_STATUS EFIAPI Base64Encode(IN CONST UINT8 *Source, IN UINTN SourceLength, OUT CHAR8 *Destination OPTIONAL, IN OUT UINTN *DestinationSize)
UINTN EFIAPI TdVmCall(IN UINT64 Leaf, IN UINT64 Arg1, IN UINT64 Arg2, IN UINT64 Arg3, IN UINT64 Arg4, IN OUT VOID *Results)
UINT32 EFIAPI BitFieldRead32(IN UINT32 Operand, IN UINTN StartBit, IN UINTN EndBit)
UINT32 EFIAPI ReadUnaligned32(IN CONST UINT32 *Buffer)
VOID EFIAPI SpeculationBarrier(VOID)
UINT32 EFIAPI AsmCpuidEx(IN UINT32 Index, IN UINT32 SubIndex, OUT UINT32 *RegisterEax OPTIONAL, OUT UINT32 *RegisterEbx OPTIONAL, OUT UINT32 *RegisterEcx OPTIONAL, OUT UINT32 *RegisterEdx OPTIONAL)
UINTN EFIAPI CsrRead(IN UINT16 Select)
UINTN EFIAPI CsrXChg(IN UINT16 Select, IN OUT UINTN Value, IN UINTN Mask)
UINTN EFIAPI CsrWrite(IN UINT16 Select, IN OUT UINTN Value)
VOID EFIAPI AsmDisableCache(VOID)
VOID EFIAPI AsmEnableCache(VOID)
VOID *EFIAPI AsmFlushCacheLine(IN VOID *LinearAddress)
UINTN EFIAPI AsmWriteDr1(UINTN Dr1)
UINT16 EFIAPI AsmReadTr(VOID)
UINT16 EFIAPI AsmReadLdtr(VOID)
UINTN EFIAPI AsmWriteDr4(UINTN Dr4)
UINTN EFIAPI AsmReadDr1(VOID)
VOID EFIAPI AsmInvd(VOID)
UINTN EFIAPI AsmReadDr0(VOID)
UINT16 EFIAPI AsmReadFs(VOID)
UINTN EFIAPI AsmWriteDr7(UINTN Dr7)
UINTN EFIAPI AsmWriteDr3(UINTN Dr3)
UINT16 EFIAPI AsmReadEs(VOID)
UINTN EFIAPI AsmReadCr3(VOID)
UINTN EFIAPI AsmReadDr2(VOID)
UINTN EFIAPI AsmWriteCr2(UINTN Cr2)
UINT64 EFIAPI AsmReadMsr64(IN UINT32 Index)
UINTN EFIAPI AsmWriteCr3(UINTN Cr3)
UINTN EFIAPI AsmWriteCr4(UINTN Cr4)
VOID EFIAPI AsmWbinvd(VOID)
UINTN EFIAPI AsmReadCr0(VOID)
UINTN EFIAPI AsmWriteDr2(UINTN Dr2)
UINTN EFIAPI AsmWriteDr0(UINTN Dr0)
UINT16 EFIAPI AsmReadGs(VOID)
UINTN EFIAPI AsmWriteCr0(UINTN Cr0)
UINTN EFIAPI AsmWriteDr5(UINTN Dr5)
UINTN EFIAPI AsmReadCr2(VOID)
UINT16 EFIAPI AsmReadSs(VOID)
UINT16 EFIAPI AsmReadCs(VOID)
UINT64 EFIAPI AsmWriteMsr64(IN UINT32 Index, IN UINT64 Value)
UINTN EFIAPI AsmReadDr3(VOID)
VOID EFIAPI AsmWriteLdtr(IN UINT16 Ldtr)
UINTN EFIAPI AsmReadCr4(VOID)
UINTN EFIAPI AsmReadDr6(VOID)
UINTN EFIAPI AsmWriteDr6(UINTN Dr6)
UINT64 EFIAPI AsmReadPmc(IN UINT32 Index)
UINT16 EFIAPI AsmReadDs(VOID)
UINTN EFIAPI AsmReadDr4(VOID)
UINTN EFIAPI AsmReadDr7(VOID)
UINTN EFIAPI AsmReadDr5(VOID)
UINT32 EFIAPI AsmCpuid(IN UINT32 Index, OUT UINT32 *RegisterEax OPTIONAL, OUT UINT32 *RegisterEbx OPTIONAL, OUT UINT32 *RegisterEcx OPTIONAL, OUT UINT32 *RegisterEdx OPTIONAL)
BOOLEAN EFIAPI TdIsEnabled()
UINTN EFIAPI AsmMonitor(IN UINTN RegisterEax, IN UINTN RegisterEcx, IN UINTN RegisterEdx)
UINTN EFIAPI AsmMwait(IN UINTN RegisterEax, IN UINTN RegisterEcx)
VOID EFIAPI AsmDisablePaging32(IN SWITCH_STACK_ENTRY_POINT EntryPoint, IN VOID *Context1 OPTIONAL, IN VOID *Context2 OPTIONAL, IN VOID *NewStack)
VOID EFIAPI AsmDisablePaging64(IN UINT16 Cs, IN UINT32 EntryPoint, IN UINT32 Context1 OPTIONAL, IN UINT32 Context2 OPTIONAL, IN UINT32 NewStack)
VOID EFIAPI AsmEnablePaging32(IN SWITCH_STACK_ENTRY_POINT EntryPoint, IN VOID *Context1 OPTIONAL, IN VOID *Context2 OPTIONAL, IN VOID *NewStack)
VOID EFIAPI AsmEnablePaging64(IN UINT16 Cs, IN UINT64 EntryPoint, IN UINT64 Context1 OPTIONAL, IN UINT64 Context2 OPTIONAL, IN UINT64 NewStack)
VOID EFIAPI AsmFxRestore(IN CONST IA32_FX_BUFFER *Buffer)
VOID EFIAPI AsmFxSave(OUT IA32_FX_BUFFER *Buffer)
UINT32 EFIAPI AsmWriteMsr32(IN UINT32 Index, IN UINT32 Value)
UINT64 EFIAPI AsmMsrAnd64(IN UINT32 Index, IN UINT64 AndData)
UINT64 EFIAPI AsmMsrBitFieldOr64(IN UINT32 Index, IN UINTN StartBit, IN UINTN EndBit, IN UINT64 OrData)
UINT32 EFIAPI AsmMsrBitFieldAndThenOr32(IN UINT32 Index, IN UINTN StartBit, IN UINTN EndBit, IN UINT32 AndData, IN UINT32 OrData)
UINT64 EFIAPI AsmMsrOr64(IN UINT32 Index, IN UINT64 OrData)
UINT32 EFIAPI AsmMsrAnd32(IN UINT32 Index, IN UINT32 AndData)
UINT32 EFIAPI AsmMsrAndThenOr32(IN UINT32 Index, IN UINT32 AndData, IN UINT32 OrData)
UINT64 EFIAPI AsmMsrBitFieldWrite64(IN UINT32 Index, IN UINTN StartBit, IN UINTN EndBit, IN UINT64 Value)
UINT64 EFIAPI AsmMsrBitFieldAnd64(IN UINT32 Index, IN UINTN StartBit, IN UINTN EndBit, IN UINT64 AndData)
UINT32 EFIAPI AsmMsrBitFieldOr32(IN UINT32 Index, IN UINTN StartBit, IN UINTN EndBit, IN UINT32 OrData)
UINT32 EFIAPI AsmMsrOr32(IN UINT32 Index, IN UINT32 OrData)
UINT32 EFIAPI AsmReadMsr32(IN UINT32 Index)
UINT64 EFIAPI AsmMsrBitFieldRead64(IN UINT32 Index, IN UINTN StartBit, IN UINTN EndBit)
UINT64 EFIAPI AsmMsrBitFieldAndThenOr64(IN UINT32 Index, IN UINTN StartBit, IN UINTN EndBit, IN UINT64 AndData, IN UINT64 OrData)
UINT64 EFIAPI AsmMsrAndThenOr64(IN UINT32 Index, IN UINT64 AndData, IN UINT64 OrData)
UINT32 EFIAPI AsmMsrBitFieldRead32(IN UINT32 Index, IN UINTN StartBit, IN UINTN EndBit)
UINT32 EFIAPI AsmMsrBitFieldWrite32(IN UINT32 Index, IN UINTN StartBit, IN UINTN EndBit, IN UINT32 Value)
UINT32 EFIAPI AsmMsrBitFieldAnd32(IN UINT32 Index, IN UINTN StartBit, IN UINTN EndBit, IN UINT32 AndData)
VOID EFIAPI PatchInstructionX86(OUT X86_ASSEMBLY_PATCH_LABEL *InstructionEnd, IN UINT64 PatchValue, IN UINTN ValueSize)
BOOLEAN EFIAPI AsmRdRand32(OUT UINT32 *Rand)
BOOLEAN EFIAPI AsmRdRand64(OUT UINT64 *Rand)
BOOLEAN EFIAPI AsmRdRand16(OUT UINT16 *Rand)
VOID EFIAPI AsmReadGdtr(OUT IA32_DESCRIPTOR *Gdtr)
VOID EFIAPI AsmReadIdtr(OUT IA32_DESCRIPTOR *Idtr)
VOID EFIAPI AsmGetThunk16Properties(OUT UINT32 *RealModeBufferSize, OUT UINT32 *ExtraStackSize)
VOID EFIAPI AsmPrepareThunk16(IN OUT THUNK_CONTEXT *ThunkContext)
VOID EFIAPI AsmPrepareAndThunk16(IN OUT THUNK_CONTEXT *ThunkContext)
VOID EFIAPI AsmThunk16(IN OUT THUNK_CONTEXT *ThunkContext)
VOID EFIAPI AsmWriteTr(IN UINT16 Selector)
VOID EFIAPI AsmWriteGdtr(IN CONST IA32_DESCRIPTOR *Gdtr)
VOID EFIAPI AsmWriteIdtr(IN CONST IA32_DESCRIPTOR *Idtr)
VOID EFIAPI AsmLfence(VOID)