Newer
Older
AMI-Aptio-BIOS-Reversed / CapsulePei / CapsulePei.h
@Ajax Dong Ajax Dong 2 days ago 6 KB Init
/** @file
  CapsulePei.h -- Header for CapsulePei

Copyright (c) HR650X BIOS Decompilation Project
**/

#ifndef __CAPSULEPEI_H__
#define __CAPSULEPEI_H__

#include "../uefi_headers/Uefi.h"

//
// Function Prototypes
//

EFI_STATUS
EFIAPI
_ModuleEntryPoint(
  VOID
);

EFI_STATUS
EFIAPI
ReadIdtr(
  VOID
);

EFI_STATUS
EFIAPI
WriteGdtr(
  VOID
);

EFI_STATUS
EFIAPI
Cpuid(
  VOID
);

EFI_STATUS
EFIAPI
LShiftU64(
  VOID
);

EFI_STATUS
EFIAPI
ReadUnaligned64(
  VOID
);

EFI_STATUS
EFIAPI
SetJump(
  VOID
);

EFI_STATUS
EFIAPI
LongJump(
  VOID
);

EFI_STATUS
EFIAPI
SetJumpValidateBuffer(
  VOID
);

EFI_STATUS
EFIAPI
AsmEnablePaging64(
  VOID
);

EFI_STATUS
EFIAPI
AsmEnablePaging64Wrapper(
  VOID
);

EFI_STATUS
EFIAPI
PageTableInitialization(
  VOID
);

EFI_STATUS
EFIAPI
CapsuleLongModeSwitch(
  VOID
);

EFI_STATUS
EFIAPI
Thunk32To64Call(
  VOID
);

EFI_STATUS
EFIAPI
LocatePpi(
  VOID
);

EFI_STATUS
EFIAPI
AllocatePages(
  VOID
);

EFI_STATUS
EFIAPI
InstallCapsulePpi(
  VOID
);

EFI_STATUS
EFIAPI
CompareGuid(
  VOID
);

EFI_STATUS
EFIAPI
DebugPrint(
  VOID
);

EFI_STATUS
EFIAPI
AssertPrint(
  VOID
);

EFI_STATUS
EFIAPI
ZeroMem(
  VOID
);

EFI_STATUS
EFIAPI
GetPlatformType(
  VOID
);

EFI_STATUS
EFIAPI
IsOverlap(
  VOID
);

EFI_STATUS
EFIAPI
StrSizeCheck(
  VOID
);

EFI_STATUS
EFIAPI
StrLenCapsuleUpdateData(
  VOID
);

EFI_STATUS
EFIAPI
StrLen(
  VOID
);

EFI_STATUS
EFIAPI
AsciiSPrintUnicodeCheck(
  VOID
);

EFI_STATUS
EFIAPI
InternalPrintLibSPrint(
  VOID
);

EFI_STATUS
EFIAPI
FindCapsuleX64PeImage(
  VOID
);

EFI_STATUS
EFIAPI
GetLongModeBufferVariable(
  VOID
);

EFI_STATUS
EFIAPI
GetPhysicalAddressBits(
  VOID
);

EFI_STATUS
EFIAPI
GetSystemMemoryResources(
  VOID
);

EFI_STATUS
EFIAPI
GetCapsuleVariableList(
  VOID
);

EFI_STATUS
EFIAPI
GetCapsuleVariableCount(
  VOID
);

EFI_STATUS
EFIAPI
CapsuleDataCoalesceEntry(
  VOID
);

EFI_STATUS
EFIAPI
CapsuleCacheAndCoalesce(
  VOID
);

EFI_STATUS
EFIAPI
ValidateMemoryAddress(
  VOID
);

EFI_STATUS
EFIAPI
ValidateCapsuleIntegrity(
  VOID
);

EFI_STATUS
EFIAPI
CapsuleRelocateOverlap(
  VOID
);

EFI_STATUS
EFIAPI
CapsuleRelocateDescriptors(
  VOID
);

EFI_STATUS
EFIAPI
GetCapsuleInfo(
  VOID
);

EFI_STATUS
EFIAPI
CapsuleTestPatternPreCoalesce(
  VOID
);

EFI_STATUS
EFIAPI
BuildCapsuleDescriptors(
  VOID
);

EFI_STATUS
EFIAPI
CapsuleDataCoalesce(
  VOID
);

EFI_STATUS
EFIAPI
CapsuleCoalesce(
  VOID
);

EFI_STATUS
EFIAPI
GetPeCoffEntryPoint(
  VOID
);

EFI_STATUS
EFIAPI
declarations(
  VOID
);

EFI_STATUS
EFIAPI
EFIAPI(
  VOID
);

EFI_STATUS
EFIAPI
Length bytes from Source to Destination.(
  VOID
);

EFI_STATUS
EFIAPI
Source < Destination and ranges overlap, copies backward.(
  VOID
);

EFI_STATUS
EFIAPI
uses dword-aligned copy then residual.(
  VOID
);

EFI_STATUS
EFIAPI
InternalSetMem32-style write in a counted loop(
  VOID
);

EFI_STATUS
EFIAPI
callee-saved registers, stack pointer, and return address(
  VOID
);

EFI_STATUS
EFIAPI
return address(
  VOID
);

EFI_STATUS
EFIAPI
to continuation(
  VOID
);

EFI_STATUS
EFIAPI
ModeFlags != 0 (x64): creates PML4[0..511] each pointing to(
  VOID
);

EFI_STATUS
EFIAPI
PDP table with 512 PDEs mapping 0x200000 pages.(
  VOID
);

EFI_STATUS
EFIAPI
ModeFlags == 0: creates 512 PML4 entries with 0x40000000 pages.(
  VOID
);

EFI_STATUS
EFIAPI
entries zeroed.(
  VOID
);

EFI_STATUS
EFIAPI
not return(
  VOID
);

EFI_STATUS
EFIAPI
call: set up page tables and long mode(
  VOID
);

EFI_STATUS
EFIAPI
the Capsule PPI with gEfiPeiCapsulePpiGuid(
  VOID
);

EFI_STATUS
EFIAPI
CMOS index 0x4A(
  VOID
);

EFI_STATUS
EFIAPI
range - small value(
  VOID
);

EFI_STATUS
EFIAPI
return EFI_ACCESS_DENIED;        // Other known(
  VOID
);

EFI_STATUS
EFIAPI
check against L"CapsuleUpdateData" storage(
  VOID
);

EFI_STATUS
EFIAPI
length of L"CapsuleUpdateData" (15 characters)(
  VOID
);

EFI_STATUS
EFIAPI
"CapsuleUpdateData\0" to destination(
  VOID
);

EFI_STATUS
EFIAPI
Value to decimal string, stores in Buffer(
  VOID
);

EFI_STATUS
EFIAPI
format string parser with number conversion(
  VOID
);

EFI_STATUS
EFIAPI
the capsule PE image(
  VOID
);

EFI_STATUS
EFIAPI
PE32 section, get entry point(
  VOID
);

EFI_STATUS
EFIAPI
the HOB list, collect EFI_RESOURCE_MEMORY resources.(
  VOID
);

EFI_STATUS
EFIAPI
the resource with largest descriptor.(
  VOID
);

EFI_STATUS
EFIAPI
all "CapsuleUpdateData" variable instances(
  VOID
);

EFI_STATUS
EFIAPI
is gEfiCapsuleVendorGuid + L"CapsuleUpdateData" Name(
  VOID
);

EFI_STATUS
EFIAPI
storage for capsule variable list(
  VOID
);

EFI_STATUS
EFIAPI
signature = 0x50637343 ("Csc")(
  VOID
);

EFI_STATUS
EFIAPI
capsule sizes and counts(
  VOID
);

EFI_STATUS
EFIAPI
pages for coalesced data(
  VOID
);

EFI_STATUS
EFIAPI
segment by segment(
  VOID
);

EFI_STATUS
EFIAPI
CapsuleDataCoalesce to build final capsule(
  VOID
);

EFI_STATUS
EFIAPI
Address + Size does not overflow(
  VOID
);

EFI_STATUS
EFIAPI
range falls within one of the memory resources(
  VOID
);

EFI_STATUS
EFIAPI
data block(
  VOID
);

EFI_STATUS
EFIAPI
capsule header(
  VOID
);

EFI_STATUS
EFIAPI
flags: must have CAPSULE_FLAGS_PERSIST_ACROSS_RESET(
  VOID
);

EFI_STATUS
EFIAPI
not INITIATE_RESET or some other exclude bit(
  VOID
);

EFI_STATUS
EFIAPI
pointer(
  VOID
);

EFI_STATUS
EFIAPI
a capsule descriptor chain at SourceEnd, walks(
  VOID
);

EFI_STATUS
EFIAPI
entries to compute a safe relocation(
  VOID
);

EFI_STATUS
EFIAPI
that doesn't overlap source data.(
  VOID
);

EFI_STATUS
EFIAPI
all descriptors, copies data blocks(
  VOID
);

EFI_STATUS
EFIAPI
overlap via CapsuleRelocateOverlap(
  VOID
);

EFI_STATUS
EFIAPI
descriptors, sum lengths, find capsule header(
  VOID
);

EFI_STATUS
EFIAPI
the first data block has signature 0x54534554 ("TEST")(
  VOID
);

EFI_STATUS
EFIAPI
by sequence 0,1,2,..., then it passes as test pattern.(
  VOID
);

EFI_STATUS
EFIAPI
all valid capsule descriptors together(
  VOID
);

EFI_STATUS
EFIAPI
platform capabilities(
  VOID
);

EFI_STATUS
EFIAPI
if long mode is available(
  VOID
);

EFI_STATUS
EFIAPI
capsule buffer layout(
  VOID
);

EFI_STATUS
EFIAPI
capsule range against system memory(
  VOID
);

EFI_STATUS
EFIAPI
descriptor context(
  VOID
);

EFI_STATUS
EFIAPI
VariableEntries[3]  = CapsuleBuffer + 3;(
  VOID
);

EFI_STATUS
EFIAPI
param(
  VOID
);

EFI_STATUS
EFIAPI
VariableEntries[10] = MemoryResources;   // Memory descriptors(
  VOID
);

EFI_STATUS
EFIAPI
for GDTR save(
  VOID
);

EFI_STATUS
EFIAPI
image(
  VOID
);

EFI_STATUS
EFIAPI
notified - this is expected on repeat calls(
  VOID
);

EFI_STATUS
EFIAPI
the Capsule PPI(
  VOID
);

#endif /* __CAPSULEPEI_H__ */