Newer
Older
AMI-Aptio-BIOS-Reversed / AmiIpmiPkg / Ipmi / DxeFrb / DxeFrb.h
@Ajax Dong Ajax Dong 2 days ago 4 KB Full restructure
/** @file
  DxeFrb.h -- Header for DxeFrb

Copyright (c) HR650X BIOS Decompilation Project
**/

#ifndef __DXEFRB_H__
#define __DXEFRB_H__

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

//
// Function Prototypes
//

EFI_STATUS
EFIAPI
DebugPrint(
  VOID
);

EFI_STATUS
EFIAPI
DebugAssert(
  VOID
);

EFI_STATUS
EFIAPI
ReadUnaligned64(
  VOID
);

EFI_STATUS
EFIAPI
CompareGuid(
  VOID
);

EFI_STATUS
EFIAPI
GetHobList(
  VOID
);

EFI_STATUS
EFIAPI
WchgGetState(
  VOID
);

EFI_STATUS
EFIAPI
WchgSetTimerValue(
  VOID
);

EFI_STATUS
EFIAPI
WchgSetEnableFlags(
  VOID
);

EFI_STATUS
EFIAPI
WchgSetActionFlags(
  VOID
);

EFI_STATUS
EFIAPI
WchgProgramAndArm(
  VOID
);

EFI_STATUS
EFIAPI
WchgReadBackVerify(
  VOID
);

EFI_STATUS
EFIAPI
Frb2OpromNotify(
  VOID
);

EFI_STATUS
EFIAPI
Frb2PasswordNotify(
  VOID
);

EFI_STATUS
EFIAPI
Frb2PasswordDoneNotify(
  VOID
);

EFI_STATUS
EFIAPI
Frb2PromptTimeoutNotify(
  VOID
);

EFI_STATUS
EFIAPI
Frb2PromptTimeoutDoneNotify(
  VOID
);

EFI_STATUS
EFIAPI
ShellEntryNotify(
  VOID
);

EFI_STATUS
EFIAPI
ReadyToBootCallback(
  VOID
);

EFI_STATUS
EFIAPI
BootPhaseNotify(
  VOID
);

EFI_STATUS
EFIAPI
RegisterBootEvent(
  VOID
);

EFI_STATUS
EFIAPI
RegisterReadyToBootEvent(
  VOID
);

EFI_STATUS
EFIAPI
InitializeHobList(
  VOID
);

EFI_STATUS
EFIAPI
FreePool(
  VOID
);

EFI_STATUS
EFIAPI
DxeFrbEntryPoint(
  VOID
);

EFI_STATUS
EFIAPI
// ============================================================================(
  VOID
);

EFI_STATUS
EFIAPI
-- EFI_WATCHDOG_TIMER_ARCH_PROTOCOL(
  VOID
);

EFI_STATUS
EFIAPI
-- HOB list pointer(
  VOID
);

EFI_STATUS
EFIAPI
-- Allocated driver instance(
  VOID
);

EFI_STATUS
EFIAPI
-- WCHG debug protocol(
  VOID
);

EFI_STATUS
EFIAPI
BOOLEAN                   gOsWdtEnabled = FALSE;  // byte_1CEB(
  VOID
);

EFI_STATUS
EFIAPI
UINT16                    gOsWdtTimeout = 600;    // n600 (600 * 100ms = 60s)(
  VOID
);

EFI_STATUS
EFIAPI
//(
  VOID
);

/// 3 timers * 6 bytes each (at 0x2120)
EFI_STATUS
EFIAPI
timer state storage(
  VOID
);

EFI_STATUS
EFIAPI
gWchgTimerState[0x30];(
  VOID
);

EFI_STATUS
EFIAPI
used by this module(
  VOID
);

EFI_STATUS
EFIAPI
gEfiWatchdogTimerArchProtocolGuid  = EFI_WATCHDOG_TIMER_ARCH_PROTOCOL_GUID;(
  VOID
);

EFI_STATUS
EFIAPI
Helpers(
  VOID
);

EFI_STATUS
EFIAPI
CMOS index 0x4B to get current debug level(
  VOID
);

EFI_STATUS
EFIAPI
= IoRead8 (0x70);(
  VOID
);

EFI_STATUS
EFIAPI
debug level(
  VOID
);

EFI_STATUS
EFIAPI
(DebugLevel > 3) {(
  VOID
);

EFI_STATUS
EFIAPI
or 3 => ERROR | WARN(
  VOID
);

EFI_STATUS
EFIAPI
Hardware Access Layer(
  VOID
);

EFI_STATUS
EFIAPI
index (timer state)(
  VOID
);

EFI_STATUS
EFIAPI
type: read(
  VOID
);

EFI_STATUS
EFIAPI
returned data(
  VOID
);

EFI_STATUS
EFIAPI
FRB2 (timer 1), check if this is a cold boot via HOB(
  VOID
);

EFI_STATUS
EFIAPI
(TimerIndex == 1) {(
  VOID
);

/// skip
EFI_STATUS
EFIAPI
resume(
  VOID
);

EFI_STATUS
EFIAPI
WCHG register data(
  VOID
);

EFI_STATUS
EFIAPI
= *(UINT16 *)&gWchgTimerState[6 * TimerIndex];(
  VOID
);

EFI_STATUS
EFIAPI
of 0 means timer is disabled(
  VOID
);

EFI_STATUS
EFIAPI
action mask based on whether this is a full system reset(
  VOID
);

EFI_STATUS
EFIAPI
(!ResetSystem) {(
  VOID
);

EFI_STATUS
EFIAPI
action(
  VOID
);

EFI_STATUS
EFIAPI
WDT action(
  VOID
);

EFI_STATUS
EFIAPI
system reset action(
  VOID
);

EFI_STATUS
EFIAPI
register data(
  VOID
);

EFI_STATUS
EFIAPI
= 6;(
  VOID
);

EFI_STATUS
EFIAPI
type: write(
  VOID
);

EFI_STATUS
EFIAPI
write to commit/arm(
  VOID
);

EFI_STATUS
EFIAPI
= 0;(
  VOID
);

EFI_STATUS
EFIAPI
type: commit/arm(
  VOID
);

EFI_STATUS
EFIAPI
hardware state(
  VOID
);

EFI_STATUS
EFIAPI
= 8;(
  VOID
);

/// verify index, sync state
EFI_STATUS
EFIAPI
is running(
  VOID
);

EFI_STATUS
EFIAPI
((WchgData[0] & 7) != TimerIndex) {(
  VOID
);

/// already disabled
EFI_STATUS
EFIAPI
not running(
  VOID
);

EFI_STATUS
EFIAPI
((DEBUG_ERROR, "%a: EfiFrb2 already disabled\n", __FUNCTION__));(
  VOID
);

EFI_STATUS
EFIAPI
Phase Notification Handlers(
  VOID
);

EFI_STATUS
EFIAPI
Registration Helpers(
  VOID
);

EFI_STATUS
EFIAPI
Entry Point(
  VOID
);

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

EFI_STATUS
EFIAPI
= AllocateZeroPool (sizeof (FRB2_DRIVER));(
  VOID
);

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

EFI_STATUS
EFIAPI
= sizeof (ServerSetup);(
  VOID
);

EFI_STATUS
EFIAPI
when variable not found(
  VOID
);

EFI_STATUS
EFIAPI
= TRUE;(
  VOID
);

EFI_STATUS
EFIAPI
seconds (600 * 100ms)(
  VOID
);

EFI_STATUS
EFIAPI
(gFrb2Enabled) {(
  VOID
);

#endif /* __DXEFRB_H__ */