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

Copyright (c) HR650X BIOS Decompilation Project
**/

#ifndef __CAPSULERUNTIMEDXE_H__
#define __CAPSULERUNTIMEDXE_H__

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

//
// Function Prototypes
//

EFI_STATUS
EFIAPI
CapsuleRuntimeDxeDriverEntryPoint(
  VOID
);

EFI_STATUS
EFIAPI
CapsuleUpdateCapsule(
  VOID
);

EFI_STATUS
EFIAPI
CapsuleQueryCapsuleCapabilities(
  VOID
);

EFI_STATUS
EFIAPI
IsCapspaceGuidEqual(
  VOID
);

EFI_STATUS
EFIAPI
ReadUnaligned64(
  VOID
);

EFI_STATUS
EFIAPI
CheckCapsuleType(
  VOID
);

EFI_STATUS
EFIAPI
GetCapsuleRuntimeProtocol(
  VOID
);

EFI_STATUS
EFIAPI
ModuleEntryPoint(
  VOID
);

EFI_STATUS
EFIAPI
DebugAssertInternal(
  VOID
);

EFI_STATUS
EFIAPI
DebugPrint(
  VOID
);

EFI_STATUS
EFIAPI
VirtualAddressChangeEvent(
  VOID
);

EFI_STATUS
EFIAPI
ExitBootServicesEvent(
  VOID
);

EFI_STATUS
EFIAPI
RuntimeCapsuleEvent(
  VOID
);

EFI_STATUS
EFIAPI
CapsuleRuntimeVariableEvent(
  VOID
);

EFI_STATUS
EFIAPI
AsmCpuid(
  VOID
);

EFI_STATUS
EFIAPI
data - boot-time only references(
  VOID
);

EFI_STATUS
EFIAPI
gImageHandle = NULL;(
  VOID
);

EFI_STATUS
EFIAPI
copies for runtime transition(
  VOID
);

EFI_STATUS
EFIAPI
*gBS_Runtime       = NULL;(
  VOID
);

EFI_STATUS
EFIAPI
configuration globals(
  VOID
);

EFI_STATUS
EFIAPI
gCapsuleMaxSize      = 104857600;  // 100 MB(
  VOID
);

EFI_STATUS
EFIAPI
MB(
  VOID
);

EFI_STATUS
EFIAPI
services function table (obtained via gBS->LocateProtocol)(
  VOID
);

EFI_STATUS
EFIAPI
the protocol GUID.(
  VOID
);

EFI_STATUS
EFIAPI
VOID         *mCapsuleRuntimeProtocol = NULL;(
  VOID
);

EFI_STATUS
EFIAPI
{0x...} for the capsule runtime protocol (placeholder)(
  VOID
);

EFI_STATUS
EFIAPI
and unk_3030 are GUID structures used for GUID comparison(
  VOID
);

EFI_STATUS
EFIAPI
is a GUID table used by capsule type detection(
  VOID
);

EFI_STATUS
EFIAPI
prototypes (forward declarations for local functions)(
  VOID
);

EFI_STATUS
EFIAPI
EFIAPI(
  VOID
);

EFI_STATUS
EFIAPI
UEFI Boot/Runtime Services Library state(
  VOID
);

EFI_STATUS
EFIAPI
register the capsule runtime protocol.(
  VOID
);

EFI_STATUS
EFIAPI
(ImageHandle, SystemTable);(
  VOID
);

EFI_STATUS
EFIAPI
the capsule runtime protocol.(
  VOID
);

EFI_STATUS
EFIAPI
gBS->InstallMultipleProtocolInterfaces. Here we approximate the(
  VOID
);

EFI_STATUS
EFIAPI
that sets up gRT->UpdateCapsule / gRT->QueryCapsuleCapabilities.(
  VOID
);

EFI_STATUS
EFIAPI
decompiled code writes:(
  VOID
);

EFI_STATUS
EFIAPI
14(
  VOID
);

EFI_STATUS
EFIAPI
15(
  VOID
);

EFI_STATUS
EFIAPI
and install the capsule runtime protocol(
  VOID
);

EFI_STATUS
EFIAPI
= gBS->InstallMultipleProtocolInterfaces ((
  VOID
);

EFI_STATUS
EFIAPI
on failure (debug builds only)(
  VOID
);

EFI_STATUS
EFIAPI
((EFI_D_ERROR, "\nASSERT_EFI_ERROR (Status = %r)\n", Status));(
  VOID
);

EFI_STATUS
EFIAPI
constructor(
  VOID
);

EFI_STATUS
EFIAPI
= ImageHandle;(
  VOID
);

EFI_STATUS
EFIAPI
= SystemTable->RuntimeServices;(
  VOID
);

EFI_STATUS
EFIAPI
copies for VirtualAddressChange event(
  VOID
);

EFI_STATUS
EFIAPI
= gBS;(
  VOID
);

EFI_STATUS
EFIAPI
VirtualAddressChange event (TPL_NOTIFY, EFI_EVENT_SIGNAL_VIRTUAL_ADDRESS_CHANGE)(
  VOID
);

EFI_STATUS
EFIAPI
= gBS->CreateEvent ((
  VOID
);

EFI_STATUS
EFIAPI
ExitBootServices event (TPL_CALLBACK, EFI_EVENT_SIGNAL_EXIT_BOOT_SERVICES)(
  VOID
);

EFI_STATUS
EFIAPI
= gBS->CreateEventEx ((
  VOID
);

EFI_STATUS
EFIAPI
constructor: initialize HOB list and register runtime capsule event(
  VOID
);

EFI_STATUS
EFIAPI
(gRT == NULL) {(
  VOID
);

EFI_STATUS
EFIAPI
event for runtime capsule update notification(
  VOID
);

EFI_STATUS
EFIAPI
runtime event for capsule variable (EfiRuntimeServicesData)(
  VOID
);

EFI_STATUS
EFIAPI
(sub_14FC)(
  VOID
);

EFI_STATUS
EFIAPI
capsule flags:(
  VOID
);

EFI_STATUS
EFIAPI
bit 17 (0x20000) = POPULATE_SYSTEM_TABLE(
  VOID
);

EFI_STATUS
EFIAPI
bit 18 (0x40000) = INITIATE_RESET(
  VOID
);

EFI_STATUS
EFIAPI
bit 17+18 (0x30000) mask(
  VOID
);

EFI_STATUS
EFIAPI
bit 18+19 (0x50000) mask(
  VOID
);

EFI_STATUS
EFIAPI
both bits 17 and 18 are clear (0x20000 check) or(
  VOID
);

EFI_STATUS
EFIAPI
18 is set and bit 17 is clear (0x40000 check), this(
  VOID
);

EFI_STATUS
EFIAPI
needs runtime protocol validation.(
  VOID
);

EFI_STATUS
EFIAPI
(((ThisCapsule->Flags & 0x30000) == 0x20000) ||(
  VOID
);

EFI_STATUS
EFIAPI
system table capsule - break out and process below(
  VOID
);

EFI_STATUS
EFIAPI
a populate-system-table capsule; capsule type check required(
  VOID
);

EFI_STATUS
EFIAPI
= CheckCapsuleType (ThisCapsule);(
  VOID
);

EFI_STATUS
EFIAPI
capsules processed, check if any need reset populate(
  VOID
);

EFI_STATUS
EFIAPI
(CapsuleCount == 0) {(
  VOID
);

EFI_STATUS
EFIAPI
capsules have bit 16 set - need a reset capsule(
  VOID
);

EFI_STATUS
EFIAPI
= (UINT64)EFI_UNSUPPORTED;(
  VOID
);

EFI_STATUS
EFIAPI
a capsule without bit 16 set(
  VOID
);

EFI_STATUS
EFIAPI
= (UINT64)EFI_INVALID_PARAMETER;(
  VOID
);

EFI_STATUS
EFIAPI
we broke out above (populate system table capsule found)(
  VOID
);

EFI_STATUS
EFIAPI
through to success path(
  VOID
);

EFI_STATUS
EFIAPI
EFI_SUCCESS;(
  VOID
);

EFI_STATUS
EFIAPI
(sub_1608)(
  VOID
);

EFI_STATUS
EFIAPI
capsule flag checks as UpdateCapsule(
  VOID
);

EFI_STATUS
EFIAPI
(sub_1710)(
  VOID
);

EFI_STATUS
EFIAPI
(sub_1778)(
  VOID
);

EFI_STATUS
EFIAPI
(sub_17A8)(
  VOID
);

EFI_STATUS
EFIAPI
if HOB list has room (<= 16 bytes header)(
  VOID
);

EFI_STATUS
EFIAPI
= gBS->GetHobListSize ();(
  VOID
);

EFI_STATUS
EFIAPI
(sub_1830)(
  VOID
);

EFI_STATUS
EFIAPI
debug level from CMOS(
  VOID
);

EFI_STATUS
EFIAPI
= IoRead8 (0x70);(
  VOID
);

EFI_STATUS
EFIAPI
debug level to severity mask(
  VOID
);

EFI_STATUS
EFIAPI
(DebugLevel) {(
  VOID
);

EFI_STATUS
EFIAPI
(sub_18B0)(
  VOID
);

EFI_STATUS
EFIAPI
(sub_18F0)(
  VOID
);

EFI_STATUS
EFIAPI
(sub_18FC)(
  VOID
);

EFI_STATUS
EFIAPI
(sub_1924)(
  VOID
);

EFI_STATUS
EFIAPI
(sub_1A04)(
  VOID
);

EFI_STATUS
EFIAPI
check against 2 known capsule GUIDs in the local table(
  VOID
);

EFI_STATUS
EFIAPI
(TableIndex = 0; TableIndex < 2; TableIndex++) {(
  VOID
);

EFI_STATUS
EFIAPI
check against the extern capsule GUID list(
  VOID
);

EFI_STATUS
EFIAPI
(&gExternCapsuleGuidList == NULL) {(
  VOID
);

EFI_STATUS
EFIAPI
(sub_1A94)(
  VOID
);

EFI_STATUS
EFIAPI
(sub_1A8C)(
  VOID
);

EFI_STATUS
EFIAPI
(sub_1020)(
  VOID
);

#endif /* __CAPSULERUNTIMEDXE_H__ */