Newer
Older
AMI-Aptio-BIOS-Reversed / AmiModulePkg / RuntimeSmm / RuntimeSmm / RuntimeSmm.h
@Ajax Dong Ajax Dong 7 days ago 4 KB Recovering names
/** @file
  RuntimeSmm.h -- Header for RuntimeSmm

Copyright (c) HR650X BIOS Decompilation Project
**/

#ifndef __RUNTIMESMM_H__
#define __RUNTIMESMM_H__

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

//
// Recovered high-level symbols.
//

EFI_STATUS
EFIAPI
_ModuleEntryPoint(
  EFI_HANDLE        ImageHandle,
  EFI_SYSTEM_TABLE  *SystemTable
  );

EFI_STATUS
EFIAPI
ModuleEntryPoint(
  EFI_HANDLE        ImageHandle,
  EFI_SYSTEM_TABLE  *SystemTable
  );

EFI_STATUS
EFIAPI
RuntimeSmmCacheSystemServices(
  VOID
  );

EFI_STATUS
EFIAPI
RuntimeSmmDispatch(
  EFI_HANDLE        ImageHandle,
  EFI_SYSTEM_TABLE  *SystemTable
  );

EFI_STATUS
EFIAPI
RuntimeSmmInitJumpState(
  EFI_HANDLE        ImageHandle,
  EFI_SYSTEM_TABLE  *SystemTable
  );

VOID
EFIAPI
RuntimeSmmSetJump(
  VOID
  );

VOID
EFIAPI
RuntimeSmmLongJump(
  VOID
  );

EFI_STATUS
EFIAPI
RuntimeSmmDefaultProtocolNotifyHandler(
  VOID
  );

EFI_STATUS
EFIAPI
RuntimeSmmRegisterProtocolNotifyTable(
  VOID
  );

EFI_STATUS
EFIAPI
RuntimeSmmInitialize(
  VOID
  );

EFI_STATUS
EFIAPI
RuntimeSmmLocateDebugProtocol(
  VOID
  );

EFI_STATUS
EFIAPI
RuntimeSmmReportStatusCodeHandler(
  VOID
  );

EFI_STATUS
EFIAPI
RuntimeSmmReportStatusCodeExHandler(
  VOID
  );

EFI_STATUS
EFIAPI
RuntimeSmmReadRuntimeModeFromCmos(
  VOID
  );

EFI_STATUS
EFIAPI
RuntimeSmmValidateJumpBuffer(
  VOID
  );

EFI_STATUS
EFIAPI
RuntimeSmmRegisterRuntimeServices(
  VOID
  );

EFI_STATUS
EFIAPI
RuntimeSmmRegisterStatusCodeProtocol(
  VOID
  );

EFI_STATUS
EFIAPI
RuntimeSmmFindCallbackProtocol(
  VOID
  );

EFI_STATUS
EFIAPI
RuntimeSmmCompareGuid(
  VOID
  );

//
// Recovered globals.
//
extern EFI_HANDLE              gImageHandle;                // 0x1300
extern EFI_SYSTEM_TABLE        *gST;                        // 0x12F0
extern EFI_RUNTIME_SERVICES    *gRT;                        // 0x1308
extern EFI_BOOT_SERVICES       *gBS;                        // 0x1320
extern EFI_STATUS_CODE_PROTOCOL *mDebugProtocol;             // 0x1318
extern EFI_RUNTIME_SERVICES    *RuntimeServices;             // 0x1328
extern VOID                   *gSmst;                      // 0x1330 / 0x1310
extern UINT8                   mSmmMode;                   // 0x1338
extern VOID                   *mRuntimeServicesProtocolSmm; // 0x1340
extern UINT8                   mInSmmMode;                 // 0x1348
extern VOID                   *mStatusCodeProtocolSmm;     // 0x1350
extern VOID                   *mRuntimeServicesProtocolBoot; // 0x1358
extern VOID                   *mSmmRuntimeServicesTable;   // 0x1360
extern VOID                   *mStatusCodeProtocolBoot;    // 0x1368
extern UINT8                   mCmosByte;                  // 0x1378
extern UINT8                   gSetJumpBuffer[248];        // 0x1380

extern EFI_GUID                gEfiSmmStatusCodeProtocolGuid;      // 0x1280
extern EFI_GUID                gEfiStatusCodeRuntimeProtocolGuid;    // 0x1290
extern EFI_GUID                gEfiSmmBaseProtocolGuid;             // 0x12A0
extern EFI_GUID                gRuntimeSmmCallbackProtocolGuid;       // 0x12B0
extern EFI_GUID                gRuntimeServicesProtocolGuid;          // 0x12C0
extern EFI_GUID                gSmmRuntimeServicesProtocolGuid;      // 0x12D0
extern EFI_GUID                gSmmRuntimeServicesTableGuid;         // 0x12E0

// Compatibility aliases for map-style names still referenced in in-repo docs.
#define qword_12F0   gST
#define qword_1308   gRT
#define qword_1300   gImageHandle
#define qword_1310   gSmst
#define qword_1320   gBS
#define qword_1318   mDebugProtocol
#define qword_1330   gSmst
#define byte_1338    mSmmMode
#define byte_1348    mInSmmMode
#define n3          mCmosByte
#define unk_1380    gSetJumpBuffer
#define qword_1280  gEfiSmmStatusCodeProtocolGuid
#define qword_1290  gEfiStatusCodeRuntimeProtocolGuid
#define qword_12A0  gEfiSmmBaseProtocolGuid
#define qword_12B0  gRuntimeSmmCallbackProtocolGuid
#define qword_12C0  gRuntimeServicesProtocolGuid
#define qword_12D0  gSmmRuntimeServicesProtocolGuid
#define qword_12E0  gSmmRuntimeServicesTableGuid

// Compatibility aliases for decompilation symbol mapping.
#define sub_44C RuntimeSmmCacheSystemServices
#define sub_58C RuntimeSmmInitJumpState
#define sub_300 RuntimeSmmSetJump
#define sub_3A0 RuntimeSmmLongJump
#define sub_640 RuntimeSmmDefaultProtocolNotifyHandler
#define sub_64C RuntimeSmmRegisterProtocolNotifyTable
#define sub_768 RuntimeSmmInitialize
#define sub_888 RuntimeSmmLocateDebugProtocol
#define sub_8D8 RuntimeSmmReportStatusCodeHandler
#define sub_920 RuntimeSmmReportStatusCodeExHandler
#define sub_960 RuntimeSmmReadRuntimeModeFromCmos
#define sub_9B0 RuntimeSmmValidateJumpBuffer
#define sub_9F8 RuntimeSmmRegisterRuntimeServices
#define sub_A80 RuntimeSmmRegisterStatusCodeProtocol
#define sub_B64 RuntimeSmmFindCallbackProtocol
#define sub_BD4 RuntimeSmmCompareGuid

#endif /* __RUNTIMESMM_H__ */