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

Copyright (c) HR650X BIOS Decompilation Project
**/

#ifndef __UBACONFIGDATABASEDXE_H__
#define __UBACONFIGDATABASEDXE_H__

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

//
// Function Prototypes
//

EFI_STATUS
EFIAPI
UbaConfigDatabaseGetInfo(
  VOID
);

EFI_STATUS
EFIAPI
UbaConfigDatabaseSetData(
  VOID
);

EFI_STATUS
EFIAPI
UbaConfigDatabaseGetData(
  VOID
);

EFI_STATUS
EFIAPI
ReadUnaligned64(
  VOID
);

EFI_STATUS
EFIAPI
AssertPrint(
  VOID
);

EFI_STATUS
EFIAPI
DebugPrint(
  VOID
);

EFI_STATUS
EFIAPI
InternalBaseLibIsListValid(
  VOID
);

EFI_STATUS
EFIAPI
AsciiStrLen(
  VOID
);

EFI_STATUS
EFIAPI
AsciiStrnLenS(
  VOID
);

EFI_STATUS
EFIAPI
UbaConfigDatabaseGetListNode(
  VOID
);

EFI_STATUS
EFIAPI
UbaConfigDatabaseNodeInit(
  VOID
);

EFI_STATUS
EFIAPI
CompareGuid(
  VOID
);

EFI_STATUS
EFIAPI
AsciiStrCpyS(
  VOID
);

EFI_STATUS
EFIAPI
AsciiStrnCpyS(
  VOID
);

EFI_STATUS
EFIAPI
UbaConfigDatabaseDxeEntry(
  VOID
);

EFI_STATUS
EFIAPI
UbaConfigDatabaseInstallDriver(
  VOID
);

EFI_STATUS
EFIAPI
UbaConfigDatabaseLoadFromHob(
  VOID
);

EFI_STATUS
EFIAPI
UbaConfigDatabaseSetDataDispatch(
  VOID
);

EFI_STATUS
EFIAPI
UbaConfigDatabaseGetDataDispatch(
  VOID
);

EFI_STATUS
EFIAPI
UbaConfigDatabaseFindData(
  VOID
);

EFI_STATUS
EFIAPI
ModuleEntryPoint(
  VOID
);

EFI_STATUS
EFIAPI
UEFI types(
  VOID
);

EFI_STATUS
EFIAPI
unsigned long long  UINT64;(
  VOID
);

EFI_STATUS
EFIAPI
codes(
  VOID
);

EFI_STATUS
EFIAPI
structure (16 bytes)(
  VOID
);

EFI_STATUS
EFIAPI
struct {(
  VOID
);

EFI_STATUS
EFIAPI
(abbreviated for this module)(
  VOID
);

EFI_STATUS
EFIAPI
- 0x5F: header, firmware vendor, etc.(
  VOID
);

EFI_STATUS
EFIAPI
VOID             *RuntimeServices; // 0x68(
  VOID
);

EFI_STATUS
EFIAPI
(function table at offset 0x60 from SystemTable)(
  VOID
);

EFI_STATUS
EFIAPI
the entries used by this module are defined.(
  VOID
);

EFI_STATUS
EFIAPI
- 0x17: RaiseTPL, RestoreTPL, AllocatePages, FreePages(
  VOID
);

EFI_STATUS
EFIAPI
UINT64   (*AllocatePool)(UINTN PoolType, UINTN Size, VOID **Buffer); // 0x20 (index 4)(
  VOID
);

EFI_STATUS
EFIAPI
char     _pad1[0x18];          // 0x30 - 0x47(
  VOID
);

EFI_STATUS
EFIAPI
(index 9)(
  VOID
);

EFI_STATUS
EFIAPI
- 0x87(
  VOID
);

EFI_STATUS
EFIAPI
(index 17)(
  VOID
);

EFI_STATUS
EFIAPI
- 0xD7(
  VOID
);

EFI_STATUS
EFIAPI
(index 27)(
  VOID
);

EFI_STATUS
EFIAPI
- 0xFF(
  VOID
);

EFI_STATUS
EFIAPI
(function table at offset 0x68 from SystemTable)(
  VOID
);

EFI_STATUS
EFIAPI
- standard UEFI doubly-linked list(
  VOID
);

EFI_STATUS
EFIAPI
struct _LIST_ENTRY {(
  VOID
);

EFI_STATUS
EFIAPI
- a single configuration data node in the linked list(
  VOID
);

EFI_STATUS
EFIAPI
layout:(
  VOID
);

EFI_STATUS
EFIAPI
LIST_ENTRY Link;             // 0x08(
  VOID
);

EFI_STATUS
EFIAPI
EFI_GUID   ConfigGuid;       // 0x1C(
  VOID
);

EFI_STATUS
EFIAPI
UINT32     ConfigDataSize;   // 0x3C(
  VOID
);

EFI_STATUS
EFIAPI
UINT32     NodeCount;        // 0x48(
  VOID
);

EFI_STATUS
EFIAPI
- private structure for the config database(
  VOID
);

EFI_STATUS
EFIAPI
UINT64   ConfigCount;         // 0x10(
  VOID
);

EFI_STATUS
EFIAPI
EFI_GUID ConfigGuid;          // 0x1C(
  VOID
);

EFI_STATUS
EFIAPI
interface starts here(
  VOID
);

EFI_STATUS
EFIAPI
EFI_STATUS (*SetData)(VOID *This, EFI_GUID *ConfigGuid, VOID *ConfigData, UINTN ConfigDataSize);   // 0x34(
  VOID
);

EFI_STATUS
EFIAPI
} UBA_CONFIG_DATABASE_PRIVATE;(
  VOID
);

EFI_STATUS
EFIAPI
(Hand-Off Block) structures(
  VOID
);

EFI_STATUS
EFIAPI
UINT16  HobLength;    // 0x02(
  VOID
);

EFI_STATUS
EFIAPI
} EFI_HOB_HEADER;       // Total: 8 bytes(
  VOID
);

EFI_STATUS
EFIAPI
UINT32             DataCount;   // 0x10: number of config entries(
  VOID
);

EFI_STATUS
EFIAPI
by per-entry data starting at offset 0x14 (0x14 + 4 = 0x18 if 1st entry)(
  VOID
);

EFI_STATUS
EFIAPI
config HOB per-entry structure (36 bytes each)(
  VOID
);

EFI_STATUS
EFIAPI
entry has a relative offset to data + data size(
  VOID
);

EFI_STATUS
EFIAPI
SYSTEM TABLE globals (assigned by _ModuleEntryPoint)(
  VOID
);

EFI_STATUS
EFIAPI
UINTN     ImageHandle;(
  VOID
);

EFI_STATUS
EFIAPI
globals(
  VOID
);

EFI_STATUS
EFIAPI
mImageHandle;(
  VOID
);

EFI_STATUS
EFIAPI
for this module(
  VOID
);

EFI_STATUS
EFIAPI
*mDebugProtocol;        // 0x1F50: cached debug logging protocol(
  VOID
);

EFI_STATUS
EFIAPI
EFI_GUID      gUbaConfigHobGuid = {0xCC4CC9E4, 0x4E5EF25B, 0x252CFB26, 0x8D8D8D8D}; // 0x1F20 (example - not exact)(
  VOID
);

EFI_STATUS
EFIAPI
declarations(
  VOID
);

EFI_STATUS
EFIAPI
case: source is before destination and overlaps(
  VOID
);

EFI_STATUS
EFIAPI
from end to start (backward copy not shown, IDA optimizes to same)(
  VOID
);

EFI_STATUS
EFIAPI
InternalCopyMemBackward(Dst, Src, Count);(
  VOID
);

EFI_STATUS
EFIAPI
Count8 = Count >> 3;(
  VOID
);

EFI_STATUS
EFIAPI
CMOS status register to determine debug level(
  VOID
);

EFI_STATUS
EFIAPI
break;(
  VOID
);

EFI_STATUS
EFIAPI
| EFI_D_INFO(
  VOID
);

EFI_STATUS
EFIAPI
helper: CR-based node access(
  VOID
);

EFI_STATUS
EFIAPI
= CONTAINER_RECORD macro: from a member pointer, get the containing struct(
  VOID
);

EFI_STATUS
EFIAPI
linked list entry to point to itself (empty list)(
  VOID
);

EFI_STATUS
EFIAPI
for HOB list(
  VOID
);

EFI_STATUS
EFIAPI
entry = GUID + Address (3 UINT64s)(
  VOID
);

EFI_STATUS
EFIAPI
if debug is available via CMOS diagnostic port(
  VOID
);

EFI_STATUS
EFIAPI
overlap(
  VOID
);

EFI_STATUS
EFIAPI
(Source > Destination && Source < &Destination[DestMax]) {(
  VOID
);

EFI_STATUS
EFIAPI
private structure(
  VOID
);

EFI_STATUS
EFIAPI
protocol GUID (0x504C4342 = "BCLP")(
  VOID
);

EFI_STATUS
EFIAPI
is the UBA protocol GUID data that identifies this interface(
  VOID
);

EFI_STATUS
EFIAPI
initial configuration from HOB(
  VOID
);

EFI_STATUS
EFIAPI
= UbaConfigDatabaseLoadFromHob(&Private->ConfigGuid);(
  VOID
);

EFI_STATUS
EFIAPI
the protocol interface(
  VOID
);

EFI_STATUS
EFIAPI
= NULL;(
  VOID
);

EFI_STATUS
EFIAPI
check - will ASSERT if invalid(
  VOID
);

EFI_STATUS
EFIAPI
to search for in HOB (target config HOB)(
  VOID
);

EFI_STATUS
EFIAPI
the config database with data from HOB(
  VOID
);

EFI_STATUS
EFIAPI
= UbaConfigDatabaseNodeInit((
  VOID
);

EFI_STATUS
EFIAPI
config GUID data(
  VOID
);

EFI_STATUS
EFIAPI
name(
  VOID
);

EFI_STATUS
EFIAPI
each config entry in the HOB(
  VOID
);

EFI_STATUS
EFIAPI
(Hob->DataCount > 0) {(
  VOID
);

EFI_STATUS
EFIAPI
the right pointer from CR macro(
  VOID
);

EFI_STATUS
EFIAPI
and initialize a new config node(
  VOID
);

EFI_STATUS
EFIAPI
= AllocatePool((UINTN)This, 60);(
  VOID
);

EFI_STATUS
EFIAPI
the GUID data(
  VOID
);

EFI_STATUS
EFIAPI
the GUID(
  VOID
);

EFI_STATUS
EFIAPI
GUID from parameter(
  VOID
);

EFI_STATUS
EFIAPI
into linked list(
  VOID
);

EFI_STATUS
EFIAPI
counters(
  VOID
);

EFI_STATUS
EFIAPI
+ 0x24 from CR macro(
  VOID
);

EFI_STATUS
EFIAPI
the linked list looking for a matching GUID(
  VOID
);

EFI_STATUS
EFIAPI
(!InternalBaseLibIsListValid(ListHead)) return EFI_NOT_FOUND;(
  VOID
);

EFI_STATUS
EFIAPI
a matching node, copy data if buffer is large enough(
  VOID
);

EFI_STATUS
EFIAPI
(ConfigDataSize) {(
  VOID
);

EFI_STATUS
EFIAPI
the HOB list (for later config loading)(
  VOID
);

EFI_STATUS
EFIAPI
the UBA config database protocol(
  VOID
);

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

#endif /* __UBACONFIGDATABASEDXE_H__ */