/** @file
NetworkStackSetupScreen.h -- Header for NetworkStackSetupScreen
Copyright (c) HR650X BIOS Decompilation Project
**/
#ifndef __NETWORKSTACKSETUPSCREEN_H__
#define __NETWORKSTACKSETUPSCREEN_H__
#include "../uefi_headers/Uefi.h"
//
// Function Prototypes
//
EFI_STATUS
EFIAPI
ReadUnalignedQword(
VOID
);
EFI_STATUS
EFIAPI
CompareGuidQword(
VOID
);
EFI_STATUS
EFIAPI
CmosReadNvStorage(
VOID
);
EFI_STATUS
EFIAPI
AmiBoardInfoAssert(
VOID
);
EFI_STATUS
EFIAPI
AmiBoardInfoConditionalSend(
VOID
);
EFI_STATUS
EFIAPI
AmiBoardInfoInit(
VOID
);
EFI_STATUS
EFIAPI
AmiBoardInfoEntryPoint(
VOID
);
EFI_STATUS
EFIAPI
variable storage (mapped from .data section)(
VOID
);
EFI_STATUS
EFIAPI
gImageHandle_ = NULL; // 0xD00 (.data)(
VOID
);
EFI_STATUS
EFIAPI
(.data)(
VOID
);
EFI_STATUS
EFIAPI
protocol pointer (located by sub_4F8)(
VOID
);
EFI_STATUS
EFIAPI
*gAmiBoardInfoProtocol = NULL; // 0xD10 (.data)(
VOID
);
EFI_STATUS
EFIAPI
HOB list pointer (located by sub_600 -> GetHobList)(
VOID
);
EFI_STATUS
EFIAPI
gHobListRva = 0; // 0xD18 (.data)(
VOID
);
EFI_STATUS
EFIAPI
copies of service pointers (aliased .data at 0xD20/0xD28/0xD30)(
VOID
);
EFI_STATUS
EFIAPI
gBS_1 = 0; // 0xD20(
VOID
);
EFI_STATUS
EFIAPI
UINT64 gST_1 = 0; // 0xD30(
VOID
);
EFI_STATUS
EFIAPI
data buffer (10 bytes at 0xD40)(
VOID
);
EFI_STATUS
EFIAPI
gNvData; // 0xD40..0xD49(
VOID
);
EFI_STATUS
EFIAPI
gNvBootFlag = 0; // byte_D45 (offset 5)(
VOID
);
EFI_STATUS
EFIAPI
(offset 6)(
VOID
);
EFI_STATUS
EFIAPI
definitions(
VOID
);
EFI_STATUS
EFIAPI
for the AMI Board Info Protocol.(
VOID
);
EFI_STATUS
EFIAPI
protocol interface is located via gBS->LocateProtocol.(
VOID
);
EFI_STATUS
EFIAPI
at .data 0xCC0.(
VOID
);
EFI_STATUS
EFIAPI
gAmiBoardInfoProtocolGuid = {(
VOID
);
EFI_STATUS
EFIAPI
GUID (standard UEFI PiHobList GUID).(
VOID
);
EFI_STATUS
EFIAPI
to locate the HOB list from the system table configuration table.(
VOID
);
EFI_STATUS
EFIAPI
as two halves at .data 0xCD0 (first 8 bytes) and 0xCD8 (second 8).(
VOID
);
EFI_STATUS
EFIAPI
gPiHobListGuid = {(
VOID
);
EFI_STATUS
EFIAPI
GUID for the NetworkStackVar variable.(
VOID
);
EFI_STATUS
EFIAPI
at .data 0xCE0.(
VOID
);
EFI_STATUS
EFIAPI
gAmiBoardInfoVarGuid = {(
VOID
);
EFI_STATUS
EFIAPI
declarations(
VOID
);
EFI_STATUS
EFIAPI
EFIAPI(
VOID
);
EFI_STATUS
EFIAPI
current index, select CMOS diagnostic register (0x4B).(
VOID
);
EFI_STATUS
EFIAPI
bit 7 (power good flag) to access the register number.(
VOID
);
EFI_STATUS
EFIAPI
((
VOID
);
EFI_STATUS
EFIAPI
the diagnostic status value.(
VOID
);
EFI_STATUS
EFIAPI
= IoRead8 (CMOS_REG_DATA_PORT);(
VOID
);
EFI_STATUS
EFIAPI
appears accessible.(
VOID
);
EFI_STATUS
EFIAPI
(NvStorage == 0) {(
VOID
);
EFI_STATUS
EFIAPI
use bit 1 combined with bit 0 as override indicator.(
VOID
);
EFI_STATUS
EFIAPI
= (*(volatile UINT8 *)0xFDAF0490 & 2) | 1;(
VOID
);
EFI_STATUS
EFIAPI
((UINT8)(NvStorage - 1) > 0xFD) {(
VOID
);
EFI_STATUS
EFIAPI
is not 1 or 2 (or is 0xFF) -> undetermined.(
VOID
);
EFI_STATUS
EFIAPI
0;(
VOID
);
EFI_STATUS
EFIAPI
}(
VOID
);
EFI_STATUS
EFIAPI
a small pool (EfiBootServicesData) as scratch.(
VOID
);
EFI_STATUS
EFIAPI
= AllocatePool (31); // 31 = EfiBootServicesData(
VOID
);
EFI_STATUS
EFIAPI
(Pool);(
VOID
);
EFI_STATUS
EFIAPI
the protocol.(
VOID
);
EFI_STATUS
EFIAPI
= gBS_->LocateProtocol ((
VOID
);
EFI_STATUS
EFIAPI
(VOID **)&gAmiBoardInfoProtocol(
VOID
);
EFI_STATUS
EFIAPI
0x00: AssertCallback.(
VOID
);
EFI_STATUS
EFIAPI
NV storage status does not match Mask.(
VOID
);
EFI_STATUS
EFIAPI
EFI_UNSUPPORTED;(
VOID
);
EFI_STATUS
EFIAPI
matches; invoke StatusSend callback at offset 0x08.(
VOID
);
EFI_STATUS
EFIAPI
(Args, Arg2);(
VOID
);
EFI_STATUS
EFIAPI
to NULL.(
VOID
);
EFI_STATUS
EFIAPI
= 0;(
VOID
);
EFI_STATUS
EFIAPI
the configuration table array.(
VOID
);
EFI_STATUS
EFIAPI
entry is sizeof(EFI_CONFIGURATION_TABLE) bytes = 24 bytes:(
VOID
);
EFI_STATUS
EFIAPI
bytes VendorGuid + 8 bytes VendorTable pointer.(
VOID
);
EFI_STATUS
EFIAPI
(Index = 0; Index < TableCount; Index++) {(
VOID
);
EFI_STATUS
EFIAPI
the HOB list entry.(
VOID
);
EFI_STATUS
EFIAPI
= (EFI_PHYSICAL_ADDRESS)ConfigEntry->VendorTable;(
VOID
);
EFI_STATUS
EFIAPI
failure on debug builds. The original binary called(
VOID
);
EFI_STATUS
EFIAPI
(conditional send) with:(
VOID
);
EFI_STATUS
EFIAPI
= 0x80000000LL(
VOID
);
EFI_STATUS
EFIAPI
= "\nASSERT_EFI_ERROR (Status = %r)\n" string ref(
VOID
);
EFI_STATUS
EFIAPI
= 0x800000000000000EuLL (EFI_NOT_FOUND)(
VOID
);
EFI_STATUS
EFIAPI
services if not already set (by entry point).(
VOID
);
EFI_STATUS
EFIAPI
(gST_ == NULL) {(
VOID
);
EFI_STATUS
EFIAPI
to read the existing variable.(
VOID
);
EFI_STATUS
EFIAPI
= sizeof (gNvData); // = NETWORK_STACK_VAR_DATA_SIZE = 10(
VOID
);
EFI_STATUS
EFIAPI
(returned)(
VOID
);
EFI_STATUS
EFIAPI
does not exist: zero the buffer and set defaults.(
VOID
);
EFI_STATUS
EFIAPI
gNvBootFlag = 1; // byte_D45(
VOID
);
EFI_STATUS
EFIAPI
flag value(
VOID
);
EFI_STATUS
EFIAPI
the variable as non-volatile + boot + runtime.(
VOID
);
EFI_STATUS
EFIAPI
= gRT_->SetVariable ((
VOID
);
EFI_STATUS
EFIAPI
driver does not check SetVariable status.(
VOID
);
EFI_STATUS
EFIAPI
(0x370) -> AmiBoardInfoEntryPoint(
VOID
);
EFI_STATUS
EFIAPI
global handles (standard UEFI boot services library pattern).(
VOID
);
EFI_STATUS
EFIAPI
= ImageHandle;(
VOID
);
EFI_STATUS
EFIAPI
and cache the HOB list pointer.(
VOID
);
EFI_STATUS
EFIAPI
(SystemTable);(
VOID
);
EFI_STATUS
EFIAPI
the board info variable ("NetworkStackVar").(
VOID
);
EFI_STATUS
EFIAPI
AmiBoardInfoInit (10, SystemTable);(
VOID
);
#endif /* __NETWORKSTACKSETUPSCREEN_H__ */