/** @file
SmiFlashDxe.h -- Header for SmiFlashDxe
Copyright (c) HR650X BIOS Decompilation Project
**/
#ifndef __SMIFLASHDXE_H__
#define __SMIFLASHDXE_H__
#include "../uefi_headers/Uefi.h"
//
// Function Prototypes
//
EFI_STATUS
EFIAPI
ReadUnaligned64(
VOID
);
EFI_STATUS
EFIAPI
IsHobGuidMatch(
VOID
);
EFI_STATUS
EFIAPI
DebugPrintWithLevel(
VOID
);
EFI_STATUS
EFIAPI
DebugAssert(
VOID
);
EFI_STATUS
EFIAPI
UefiBootServicesTableLibConstructor(
VOID
);
EFI_STATUS
EFIAPI
SmiFlashEntryPoint(
VOID
);
EFI_STATUS
EFIAPI
ModuleEntryPoint(
VOID
);
EFI_STATUS
EFIAPI
SmiHandlerFlashUnregister(
VOID
);
EFI_STATUS
EFIAPI
SmiHandlerUnload(
VOID
);
EFI_STATUS
EFIAPI
Variables (.data section, zero-initialized)(
VOID
);
EFI_STATUS
EFIAPI
0x3030. Called in sequence from SmiFlashEntryPoint.(
VOID
);
EFI_STATUS
EFIAPI
Support Functions (linked from BaseLib / BaseMemoryLib)(
VOID
);
EFI_STATUS
EFIAPI
to 4-byte boundary(
VOID
);
EFI_STATUS
EFIAPI
4-byte chunks(
VOID
);
EFI_STATUS
EFIAPI
bytes(
VOID
);
EFI_STATUS
EFIAPI
for overlap: if Source < Destination and overlap exists(
VOID
);
EFI_STATUS
EFIAPI
from end to avoid corruption.(
VOID
);
EFI_STATUS
EFIAPI
small copies or overlapping alignment, go byte-by-byte(
VOID
);
EFI_STATUS
EFIAPI
both pointers to 8-byte boundary(
VOID
);
EFI_STATUS
EFIAPI
8-byte aligned chunks(
VOID
);
EFI_STATUS
EFIAPI
Support: HobLib(
VOID
);
EFI_STATUS
EFIAPI
unaligned head(
VOID
);
EFI_STATUS
EFIAPI
in 8-byte words(
VOID
);
EFI_STATUS
EFIAPI
byte comparison(
VOID
);
EFI_STATUS
EFIAPI
GUID low half(
VOID
);
EFI_STATUS
EFIAPI
GUID high half(
VOID
);
EFI_STATUS
EFIAPI
low half(
VOID
);
EFI_STATUS
EFIAPI
high half (duplicate)(
VOID
);
EFI_STATUS
EFIAPI
Debug Protocol (library-level support)(
VOID
);
EFI_STATUS
EFIAPI
debug level from CMOS(
VOID
);
EFI_STATUS
EFIAPI
Services Table Constructor(
VOID
);
EFI_STATUS
EFIAPI
secondary copies for SMI handler management(
VOID
);
EFI_STATUS
EFIAPI
cleanup event(
VOID
);
EFI_STATUS
EFIAPI
protocol notify for SMM base protocol(
VOID
);
EFI_STATUS
EFIAPI
Handler Entry Point(
VOID
);
EFI_STATUS
EFIAPI
SystemTable locally if not already done(
VOID
);
EFI_STATUS
EFIAPI
configuration table for flash descriptor HOB(
VOID
);
EFI_STATUS
EFIAPI
HOB table is stored as a flat array accessible via the(
VOID
);
EFI_STATUS
EFIAPI
System Table configuration table.(
VOID
);
EFI_STATUS
EFIAPI
= 0;(
VOID
);
EFI_STATUS
EFIAPI
HOB entries looking for FLASH_DESCRIPTOR_HOB_GUID(
VOID
);
EFI_STATUS
EFIAPI
proceed if flash region is 1MB (0x12) or 2MB (0x20)(
VOID
);
EFI_STATUS
EFIAPI
(RegionType == FLASH_REGION_SIZE_1MB ||(
VOID
);
EFI_STATUS
EFIAPI
and zero SMM communication buffer(
VOID
);
EFI_STATUS
EFIAPI
= NULL;(
VOID
);
EFI_STATUS
EFIAPI
"SFPFREC" SMI handler(
VOID
);
EFI_STATUS
EFIAPI
+ 0x58 = SmiHandlerRegister(
VOID
);
EFI_STATUS
EFIAPI
varargs call chain.(
VOID
);
EFI_STATUS
EFIAPI
all registered init callbacks(
VOID
);
EFI_STATUS
EFIAPI
Point (ModuleEntryPoint)(
VOID
);
EFI_STATUS
EFIAPI
library constructor to initialize service table pointers(
VOID
);
EFI_STATUS
EFIAPI
(ImageHandle, SystemTable);(
VOID
);
EFI_STATUS
EFIAPI
main SMM flash entry point(
VOID
);
EFI_STATUS
EFIAPI
= SmiFlashEntryPoint (ImageHandle, SystemTable);(
VOID
);
EFI_STATUS
EFIAPI
entry point failed, clean up events(
VOID
);
EFI_STATUS
EFIAPI
(EFI_ERROR (Status)) {(
VOID
);
EFI_STATUS
EFIAPI
Handler Callbacks(
VOID
);
EFI_STATUS
EFIAPI
+ 0x40 = SmiHandlerUnRegister(
VOID
);
EFI_STATUS
EFIAPI
(gRuntimeServicesUnreg != NULL) {(
VOID
);
#endif /* __SMIFLASHDXE_H__ */