/** @file
OemSaveSmbiosDxe.h -- Header for OemSaveSmbiosDxe
Copyright (c) HR650X BIOS Decompilation Project
**/
#ifndef __OEMSAVESMBIOSDXE_H__
#define __OEMSAVESMBIOSDXE_H__
#include "../uefi_headers/Uefi.h"
//
// Function Prototypes
//
EFI_STATUS
EFIAPI
DebugAssert(
VOID
);
EFI_STATUS
EFIAPI
DebugPrint(
VOID
);
EFI_STATUS
EFIAPI
StrLen(
VOID
);
EFI_STATUS
EFIAPI
AsciiStrLen(
VOID
);
EFI_STATUS
EFIAPI
ReadUnaligned64(
VOID
);
EFI_STATUS
EFIAPI
CompareGuid(
VOID
);
EFI_STATUS
EFIAPI
OemSaveSmbiosPcdvalue(
VOID
);
EFI_STATUS
EFIAPI
OemRestoreSmbiosPcdvalue(
VOID
);
EFI_STATUS
EFIAPI
OemRestoreSmbiosString(
VOID
);
EFI_STATUS
EFIAPI
OemSaveSmbiosDxeEntryPoint(
VOID
);
EFI_STATUS
EFIAPI
OemSaveSmbiosDxeEntry(
VOID
);
EFI_STATUS
EFIAPI
global variable storage(
VOID
);
EFI_STATUS
EFIAPI
gImageHandle;(
VOID
);
EFI_STATUS
EFIAPI
*gSmbiosProtocol = NULL; // qword_2F68(
VOID
);
EFI_STATUS
EFIAPI
VOID *mHobList = NULL; // qword_2F78(
VOID
);
/// set by OemRestoreSmbiosPcdvalue, consumed by OemRestoreSmbiosString
EFI_STATUS
EFIAPI
flags(
VOID
);
EFI_STATUS
EFIAPI
gSystemManufacturerRestored = FALSE; // byte_2F18 Token 118(
VOID
);
EFI_STATUS
EFIAPI
Token 117(
VOID
);
EFI_STATUS
EFIAPI
Token 119(
VOID
);
EFI_STATUS
EFIAPI
Token 120(
VOID
);
EFI_STATUS
EFIAPI
Token 187(
VOID
);
EFI_STATUS
EFIAPI
Token 121(
VOID
);
EFI_STATUS
EFIAPI
Token 122(
VOID
);
EFI_STATUS
EFIAPI
Token 123(
VOID
);
EFI_STATUS
EFIAPI
Token 124(
VOID
);
EFI_STATUS
EFIAPI
Token 125(
VOID
);
EFI_STATUS
EFIAPI
Token 126(
VOID
);
EFI_STATUS
EFIAPI
Token 127(
VOID
);
EFI_STATUS
EFIAPI
Token 128(
VOID
);
EFI_STATUS
EFIAPI
Token 129(
VOID
);
EFI_STATUS
EFIAPI
Token 188(
VOID
);
EFI_STATUS
EFIAPI
definitions(
VOID
);
EFI_STATUS
EFIAPI
-- from unk_2EC0(
VOID
);
EFI_STATUS
EFIAPI
-- from unk_2EF0(
VOID
);
EFI_STATUS
EFIAPI
-- from unk_2ED0(
VOID
);
EFI_STATUS
EFIAPI
/ library wrapper functions(
VOID
);
EFI_STATUS
EFIAPI
overlap: copy forwards in 8-byte chunks(
VOID
);
EFI_STATUS
EFIAPI
remaining bytes(
VOID
);
EFI_STATUS
EFIAPI
CMOS index 0x4B to get debug level(
VOID
);
EFI_STATUS
EFIAPI
= IoRead8 (0x70);(
VOID
);
EFI_STATUS
EFIAPI
-- sub_41C(
VOID
);
EFI_STATUS
EFIAPI
all system/board/chassis PCD values and saves them into the(
VOID
);
EFI_STATUS
EFIAPI
UEFI variable.(
VOID
);
EFI_STATUS
EFIAPI
information buffers (280 bytes each for SMBIOS strings)(
VOID
);
EFI_STATUS
EFIAPI
SmbiosStrings[13][280];(
VOID
);
EFI_STATUS
EFIAPI
existing variable (may not exist on first boot)(
VOID
);
EFI_STATUS
EFIAPI
= sizeof (Buffer);(
VOID
);
EFI_STATUS
EFIAPI
Token 118 - System Manufacturer(
VOID
);
EFI_STATUS
EFIAPI
= GetPcdProtocol ();(
VOID
);
EFI_STATUS
EFIAPI
Token 117 - System Product Name(
VOID
);
EFI_STATUS
EFIAPI
Token 119 - System Version(
VOID
);
EFI_STATUS
EFIAPI
Token 120 - System Serial Number(
VOID
);
EFI_STATUS
EFIAPI
Token 187 - System UUID(
VOID
);
EFI_STATUS
EFIAPI
Token 121 - Base Board Manufacturer(
VOID
);
EFI_STATUS
EFIAPI
Token 122 - Base Board Product Name(
VOID
);
EFI_STATUS
EFIAPI
Token 123 - Base Board Version(
VOID
);
EFI_STATUS
EFIAPI
Token 124 - Base Board Serial Number(
VOID
);
EFI_STATUS
EFIAPI
Token 125 - Base Board Asset Tag(
VOID
);
EFI_STATUS
EFIAPI
Token 126 - Chassis Manufacturer(
VOID
);
EFI_STATUS
EFIAPI
Token 127 - Chassis Version(
VOID
);
EFI_STATUS
EFIAPI
Token 128 - Chassis Serial Number(
VOID
);
EFI_STATUS
EFIAPI
Token 129 - Chassis Asset Tag(
VOID
);
EFI_STATUS
EFIAPI
Token 188 - Chassis Type: if not 2, save byte from chassis asset tag slot(
VOID
);
EFI_STATUS
EFIAPI
the variable(
VOID
);
EFI_STATUS
EFIAPI
= 3657;(
VOID
);
EFI_STATUS
EFIAPI
-- sub_A70(
VOID
);
EFI_STATUS
EFIAPI
the OemSmbiosPcdValue variable and restores PCD tokens that still(
VOID
);
EFI_STATUS
EFIAPI
default ("To be filled by O.E.M.") values.(
VOID
);
EFI_STATUS
EFIAPI
118 - System Manufacturer(
VOID
);
EFI_STATUS
EFIAPI
117 - System Product Name (offset 0x148 in Buffer = 280 bytes)(
VOID
);
EFI_STATUS
EFIAPI
119 - System Version (offset 0x260)(
VOID
);
EFI_STATUS
EFIAPI
120 - System Serial Number (offset 0x378)(
VOID
);
EFI_STATUS
EFIAPI
187 - System UUID (offset 0x490, 16 bytes)(
VOID
);
EFI_STATUS
EFIAPI
121 - Base Board Manufacturer (offset 0x4A0)(
VOID
);
EFI_STATUS
EFIAPI
122 - Base Board Product Name (offset 0x5B8)(
VOID
);
EFI_STATUS
EFIAPI
123 - Base Board Version (offset 0x6D0)(
VOID
);
EFI_STATUS
EFIAPI
124 - Base Board Serial Number (offset 0x7E8)(
VOID
);
EFI_STATUS
EFIAPI
125 - Base Board Asset Tag (offset 0x900)(
VOID
);
EFI_STATUS
EFIAPI
126 - Chassis Manufacturer (offset 0xA18)(
VOID
);
EFI_STATUS
EFIAPI
127 - Chassis Version (offset 0xB30)(
VOID
);
EFI_STATUS
EFIAPI
128 - Chassis Serial Number (offset 0xC48)(
VOID
);
EFI_STATUS
EFIAPI
129 - Chassis Asset Tag (offset 0xD60)(
VOID
);
EFI_STATUS
EFIAPI
188 - Chassis Type: if already 2, skip; otherwise restore from saved byte(
VOID
);
EFI_STATUS
EFIAPI
-- sub_1138(
VOID
);
EFI_STATUS
EFIAPI
restored PCD values into the SMBIOS table via EFI_SMBIOS_PROTOCOL.(
VOID
);
EFI_STATUS
EFIAPI
each type (1=System, 2=BaseBoard, 3=Chassis), if the corresponding(
VOID
);
EFI_STATUS
EFIAPI
flag is set, writes the string into the SMBIOS record.(
VOID
);
EFI_STATUS
EFIAPI
= gBS->LocateProtocol (&gEfiSmbiosProtocolGuid, NULL, (VOID **)&Smbios);(
VOID
);
EFI_STATUS
EFIAPI
= 1;(
VOID
);
EFI_STATUS
EFIAPI
handle(
VOID
);
EFI_STATUS
EFIAPI
CMOS to check if this is a ThinkSystem platform(
VOID
);
EFI_STATUS
EFIAPI
(0x72, 0x5C);(
VOID
);
EFI_STATUS
EFIAPI
"ThinkSystem " prefix(
VOID
);
EFI_STATUS
EFIAPI
UUID: read from saved 16-byte UUID in buffer (offset 0x490)(
VOID
);
EFI_STATUS
EFIAPI
(gSystemUuidRestored) {(
VOID
);
EFI_STATUS
EFIAPI
= 2;(
VOID
);
EFI_STATUS
EFIAPI
= 3;(
VOID
);
EFI_STATUS
EFIAPI
type byte at buffer+0xD60+280 (= offset 0xE78 from buffer start)(
VOID
);
EFI_STATUS
EFIAPI
(gChassisTypeRestored) {(
VOID
);
EFI_STATUS
EFIAPI
-- _ModuleEntryPoint(
VOID
);
EFI_STATUS
EFIAPI
entry point. Initializes globals, then calls the three main(
VOID
);
EFI_STATUS
EFIAPI
in order: OemRestoreSmbiosPcdvalue, OemSaveSmbiosPcdvalue(
VOID
);
EFI_STATUS
EFIAPI
HOB list(
VOID
);
EFI_STATUS
EFIAPI
();(
VOID
);
EFI_STATUS
EFIAPI
UEFI DXE driver entry.(
VOID
);
#endif /* __OEMSAVESMBIOSDXE_H__ */