Newer
Older
AMI-Aptio-BIOS-Reversed / AmiModulePkg / CSM / CsmDxe / CsmDxe.h
@Ajax Dong Ajax Dong 2 days ago 10 KB Full restructure
/** @file
  CsmDxe.h -- Header for CsmDxe

Copyright (c) HR650X BIOS Decompilation Project
**/

#ifndef __CSMDXE_H__
#define __CSMDXE_H__

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

//
// Function Prototypes
//

EFI_STATUS
EFIAPI
CsmDxeConstructor(
  VOID
);

EFI_STATUS
EFIAPI
CsmDxeDriverEntryPoint(
  VOID
);

EFI_STATUS
EFIAPI
CsmDxeUnload(
  VOID
);

EFI_STATUS
EFIAPI
_mm_pause_w(
  VOID
);

EFI_STATUS
EFIAPI
__rdtsc_w(
  VOID
);

EFI_STATUS
EFIAPI
_enable_w(
  VOID
);

EFI_STATUS
EFIAPI
_disable_w(
  VOID
);

EFI_STATUS
EFIAPI
__getcallerseflags_w(
  VOID
);

EFI_STATUS
EFIAPI
CsmThunk16Entry(
  VOID
);

EFI_STATUS
EFIAPI
ModuleEntryPoint(
  VOID
);

EFI_STATUS
EFIAPI
CsmLegacyBiosInstallProtocol(
  VOID
);

EFI_STATUS
EFIAPI
CsmRegisterBootEventCallbacks(
  VOID
);

EFI_STATUS
EFIAPI
CsmLocateAmiBoardInfo2(
  VOID
);

EFI_STATUS
EFIAPI
CsmAllConnectedCallback(
  VOID
);

EFI_STATUS
EFIAPI
CsmInstallProtocolNotifications(
  VOID
);

EFI_STATUS
EFIAPI
CsmShadowAllLegacyOproms(
  VOID
);

EFI_STATUS
EFIAPI
CsmInitializePciPlatform(
  VOID
);

EFI_STATUS
EFIAPI
CsmInitializeLegacyBios(
  VOID
);

EFI_STATUS
EFIAPI
CsmLegacyBiosGetBbsInfo(
  VOID
);

EFI_STATUS
EFIAPI
CsmLegacyBiosSetBdaComPort(
  VOID
);

EFI_STATUS
EFIAPI
CsmLegacyBiosBoot(
  VOID
);

EFI_STATUS
EFIAPI
CsmLegacyBiosBootUnconventionalDevice(
  VOID
);

EFI_STATUS
EFIAPI
CsmLegacyBiosUpdateKeyboardLedStatus(
  VOID
);

EFI_STATUS
EFIAPI
CsmLegacyBiosPrepareToBootEfi(
  VOID
);

EFI_STATUS
EFIAPI
CsmLegacyBiosShadowAllLegacyOproms(
  VOID
);

EFI_STATUS
EFIAPI
CsmLegacyBiosInstall(
  VOID
);

EFI_STATUS
EFIAPI
CsmLegacyBiosUninstall(
  VOID
);

EFI_STATUS
EFIAPI
CsmLegacyBiosSetBdaBase(
  VOID
);

EFI_STATUS
EFIAPI
CsmLegacyBiosGetBbsInfo_GetCount(
  VOID
);

EFI_STATUS
EFIAPI
CsmSaveBootScriptToLockBox(
  VOID
);

EFI_STATUS
EFIAPI
CsmDebugPrint(
  VOID
);

EFI_STATUS
EFIAPI
CsmAssert(
  VOID
);

EFI_STATUS
EFIAPI
nullsub_1(
  VOID
);

EFI_STATUS
EFIAPI
functions are library-internal wrappers linked from:(
  VOID
);

EFI_STATUS
EFIAPI
= DebugPrint (EfiDLevel, Format, ...)(
  VOID
);

EFI_STATUS
EFIAPI
= Assert (FileName, Line, Expression)(
  VOID
);

EFI_STATUS
EFIAPI
= LibPcdGetPtr (or LibPcdGetSize)(
  VOID
);

EFI_STATUS
EFIAPI
= DxeServicesTableLib constructor(
  VOID
);

EFI_STATUS
EFIAPI
= ReadTimeStampCounter (via __rdtsc)(
  VOID
);

EFI_STATUS
EFIAPI
= MmPciBaseLib constructor(
  VOID
);

EFI_STATUS
EFIAPI
= PcdGetPtr (by token number)(
  VOID
);

EFI_STATUS
EFIAPI
= DebugClearMemory / gBS->SetMem(
  VOID
);

EFI_STATUS
EFIAPI
= MmioWrite32 (or similar)(
  VOID
);

EFI_STATUS
EFIAPI
= PcieSegBusTableInit(
  VOID
);

EFI_STATUS
EFIAPI
= gBS->InstallMultipleProtocolInterfaces(
  VOID
);

EFI_STATUS
EFIAPI
= DriverBinding / handle protocol uninstalls(
  VOID
);

EFI_STATUS
EFIAPI
= gBS->LocateProtocol for AMI_BOARD_INFO2_PROTOCOL(
  VOID
);

EFI_STATUS
EFIAPI
= gBS->LocateHandleBuffer(
  VOID
);

EFI_STATUS
EFIAPI
not shown - thunk to 16-bit code(
  VOID
);

EFI_STATUS
EFIAPI
is the "library constructor" pattern. The original source is(
  VOID
);

EFI_STATUS
EFIAPI
real work of the driver happens in CsmDxeDriverEntryPoint.(
  VOID
);

EFI_STATUS
EFIAPI
UEFI BootServicesTableLib constructor(
  VOID
);

EFI_STATUS
EFIAPI
= (EFI_HANDLE)qword_10BE0;(
  VOID
);

EFI_STATUS
EFIAPI
constructor(
  VOID
);

EFI_STATUS
EFIAPI
= DxeServicesTableLibConstructor (&ProtocolGuid, &gDS);(
  VOID
);

EFI_STATUS
EFIAPI
constructor - initialize PCI USRA protocol(
  VOID
);

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

EFI_STATUS
EFIAPI
the MMIO PCI Base library(
  VOID
);

EFI_STATUS
EFIAPI
();(
  VOID
);

EFI_STATUS
EFIAPI
PCD value and enable VGA legacy decoding if needed(
  VOID
);

EFI_STATUS
EFIAPI
= LibPcdGetPtr (Token5);(
  VOID
);

EFI_STATUS
EFIAPI
caller EFLAGS for interrupt state (IF bit = bit 9)(
  VOID
);

EFI_STATUS
EFIAPI
__getcallerseflags() intrinsic(
  VOID
);

EFI_STATUS
EFIAPI
= (UINT16)__getcallerseflags_w ();(
  VOID
);

EFI_STATUS
EFIAPI
= __rdtsc_w () & 0xFFFFFF;(
  VOID
);

EFI_STATUS
EFIAPI
interrupt state(
  VOID
);

EFI_STATUS
EFIAPI
(InterruptsEnabled) {(
  VOID
);

EFI_STATUS
EFIAPI
PCIe Segment Bus Table(
  VOID
);

EFI_STATUS
EFIAPI
= LibPcdGetSize (Token7);(
  VOID
);

EFI_STATUS
EFIAPI
protocol interfaces via AutoGen(
  VOID
);

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

EFI_STATUS
EFIAPI
to our EFI system table and boot/runtime services(
  VOID
);

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

EFI_STATUS
EFIAPI
protocol notify for EfiLegacyInterruptProtocol(
  VOID
);

EFI_STATUS
EFIAPI
SecureBoot variable(
  VOID
);

EFI_STATUS
EFIAPI
= '\0';(
  VOID
);

EFI_STATUS
EFIAPI
SecureBoot is enabled, clear the CSM "Setup" variable(
  VOID
);

EFI_STATUS
EFIAPI
= CSM16_CONFIG_SIZE;(
  VOID
);

EFI_STATUS
EFIAPI
the CSM "Setup" variable to determine whether CSM should be enabled(
  VOID
);

EFI_STATUS
EFIAPI
derived from byte_11DA2(
  VOID
);

EFI_STATUS
EFIAPI
the Legacy BIOS protocol interface(
  VOID
);

EFI_STATUS
EFIAPI
= CsmLegacyBiosInstallProtocol (ImageHandle);(
  VOID
);

EFI_STATUS
EFIAPI
boot event callbacks(
  VOID
);

EFI_STATUS
EFIAPI
= CsmRegisterBootEventCallbacks ();(
  VOID
);

EFI_STATUS
EFIAPI
AMI_BOARD_INFO2_PROTOCOL(
  VOID
);

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

EFI_STATUS
EFIAPI
the main CSM context (6328 bytes)(
  VOID
);

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

EFI_STATUS
EFIAPI
required protocols for the context(
  VOID
);

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

EFI_STATUS
EFIAPI
the Legacy BIOS function table(
  VOID
);

EFI_STATUS
EFIAPI
MaxOpRomAddress (must be 0xC0000-0xF0000)(
  VOID
);

EFI_STATUS
EFIAPI
= (*CsmCtx->PciIoProtocol->AllocateBuffer) ((
  VOID
);

EFI_STATUS
EFIAPI
PCI platform interface(
  VOID
);

EFI_STATUS
EFIAPI
= CsmInitializePciPlatform ();(
  VOID
);

EFI_STATUS
EFIAPI
current video mode(
  VOID
);

EFI_STATUS
EFIAPI
= (*CsmCtx->SmmLegacyBootProtocol->GetCurrentMode) ((
  VOID
);

EFI_STATUS
EFIAPI
VGA mode to text mode 80x25(
  VOID
);

EFI_STATUS
EFIAPI
= (UINT16)-1;(
  VOID
);

EFI_STATUS
EFIAPI
CSM mode from Setup variable(
  VOID
);

EFI_STATUS
EFIAPI
offset(
  VOID
);

EFI_STATUS
EFIAPI
the Legacy BIOS driver(
  VOID
);

EFI_STATUS
EFIAPI
= CsmInitializeLegacyBios (Csm16Mode, SystemTable);(
  VOID
);

EFI_STATUS
EFIAPI
VGA mode again after CSM16 init(
  VOID
);

EFI_STATUS
EFIAPI
= (*CsmCtx->SmmLegacyBootProtocol->SetMode) ((
  VOID
);

EFI_STATUS
EFIAPI
the PCI enumeration data(
  VOID
);

EFI_STATUS
EFIAPI
= (*CsmCtx->PciIoProtocol->GetLocation) ((
  VOID
);

EFI_STATUS
EFIAPI
the base OpROM address (0xC0000)(
  VOID
);

EFI_STATUS
EFIAPI
= 0xC0000;(
  VOID
);

EFI_STATUS
EFIAPI
PCI data table (1312 bytes)(
  VOID
);

EFI_STATUS
EFIAPI
for internal data structure(
  VOID
);

EFI_STATUS
EFIAPI
BBS table (1728 bytes)(
  VOID
);

EFI_STATUS
EFIAPI
to BBS data start(
  VOID
);

EFI_STATUS
EFIAPI
event notification for Legacy BIOS protocol(
  VOID
);

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

EFI_STATUS
EFIAPI
notification for AllConnected (via EfiBootScriptNotify)(
  VOID
);

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

EFI_STATUS
EFIAPI
protocol notification(
  VOID
);

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

EFI_STATUS
EFIAPI
CSM internal protocol notifications(
  VOID
);

EFI_STATUS
EFIAPI
ShadowAll callback(
  VOID
);

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

EFI_STATUS
EFIAPI
up callback function pointers(
  VOID
);

EFI_STATUS
EFIAPI
BoardInfo2 data(
  VOID
);

EFI_STATUS
EFIAPI
(((AMI_BOARD_INFO2_PROTOCOL *)Interface)->DataValid);(
  VOID
);

EFI_STATUS
EFIAPI
the "AllConnected" event(
  VOID
);

EFI_STATUS
EFIAPI
EFI_SUCCESS;(
  VOID
);

EFI_STATUS
EFIAPI
each legacy Option ROM(
  VOID
);

EFI_STATUS
EFIAPI
Option ROM images to 0xC0000-0xF0000 region](
  VOID
);

EFI_STATUS
EFIAPI
PCI device data and Option ROM shadow region(
  VOID
);

EFI_STATUS
EFIAPI
= NULL;(
  VOID
);

EFI_STATUS
EFIAPI
PCI platform configuration(
  VOID
);

EFI_STATUS
EFIAPI
Status;(
  VOID
);

EFI_STATUS
EFIAPI
and initialize the Legacy BIOS interface(
  VOID
);

EFI_STATUS
EFIAPI
Legacy BIOS protocol(
  VOID
);

EFI_STATUS
EFIAPI
BBS table(
  VOID
);

EFI_STATUS
EFIAPI
legacy boot event handler(
  VOID
);

EFI_STATUS
EFIAPI
the INT19 trap handler (for legacy boot)(
  VOID
);

EFI_STATUS
EFIAPI
entry initialization(
  VOID
);

EFI_STATUS
EFIAPI
= CsmThunk16Entry (Csm16Mode, 0, 0, 0, 0);(
  VOID
);

EFI_STATUS
EFIAPI
from Csm16 BBS table(
  VOID
);

EFI_STATUS
EFIAPI
COM port address to BIOS Data Area (BDA)(
  VOID
);

EFI_STATUS
EFIAPI
at 0x400: COM port table at 0x400+0x00, LPT at 0x400+0x08(
  VOID
);

EFI_STATUS
EFIAPI
BBS table for boot device(
  VOID
);

EFI_STATUS
EFIAPI
INT 19h via CSM16 thunk(
  VOID
);

EFI_STATUS
EFIAPI
= CsmThunk16Entry ((
  VOID
);

EFI_STATUS
EFIAPI
boot from unconventional devices (USB, network, etc.)(
  VOID
);

EFI_STATUS
EFIAPI
each boot device type(
  VOID
);

EFI_STATUS
EFIAPI
keyboard LED status in BDA(
  VOID
);

EFI_STATUS
EFIAPI
offset 0x417 bit 5-3: keyboard LED flags(
  VOID
);

EFI_STATUS
EFIAPI
to boot EFI: save legacy state, restore EFI state(
  VOID
);

EFI_STATUS
EFIAPI
all discovered legacy Option ROMs(
  VOID
);

EFI_STATUS
EFIAPI
algorithm:(
  VOID
);

EFI_STATUS
EFIAPI
CLP (Configuration Load Protocol) support if needed(
  VOID
);

EFI_STATUS
EFIAPI
loop(
  VOID
);

EFI_STATUS
EFIAPI
(OpRomIndex = *NumberOfOpRoms; OpRomIndex < *TotalSize; OpRomIndex++) {(
  VOID
);

EFI_STATUS
EFIAPI
each ROM(
  VOID
);

EFI_STATUS
EFIAPI
Legacy BIOS protocol interfaces(
  VOID
);

EFI_STATUS
EFIAPI
base memory size in BDA at 0x413(
  VOID
);

EFI_STATUS
EFIAPI
BBS count and table from CSM context(
  VOID
);

EFI_STATUS
EFIAPI
memory map data to lockbox(
  VOID
);

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

EFI_STATUS
EFIAPI
code calls a specific DebugPrint implementation(
  VOID
);

EFI_STATUS
EFIAPI
writes to the serial port / console(
  VOID
);

EFI_STATUS
EFIAPI
(Level, Format, VaList);(
  VOID
);

EFI_STATUS
EFIAPI
code calls ASSERT via DebugLib(
  VOID
);

EFI_STATUS
EFIAPI
(Description);(
  VOID
);

EFI_STATUS
EFIAPI
driver registers a ComponentName2 protocol at gCsmComponentName2.(
  VOID
);

EFI_STATUS
EFIAPI
structures are generated by the UEFI driver framework.(
  VOID
);

#endif /* __CSMDXE_H__ */