Newer
Older
AMI-Aptio-BIOS-Reversed / AmiModulePkg / RuntimeSmm / RuntimeSmm / RuntimeSmm.c
@Ajax Dong Ajax Dong 7 days ago 3 KB Recovering names
/** @file
  RuntimeSmm.c -- RuntimeSmm

  Auto-converted from IDA decompiler output.
  Functions recovered from local RuntimeSmm.md/README.md evidence.

Copyright (c) HR650X BIOS Decompilation Project
**/

#include "RuntimeSmm.h"

// Recovered module globals (symbol names preferred in docs + map compatibility aliases).
EFI_HANDLE              gImageHandle;                    // 0x1300
EFI_SYSTEM_TABLE        *gST;                            // 0x12F0
EFI_RUNTIME_SERVICES    *gRT;                            // 0x1308
EFI_BOOT_SERVICES       *gBS;                            // 0x1320
EFI_STATUS_CODE_PROTOCOL *mDebugProtocol;                // 0x1318
EFI_RUNTIME_SERVICES    *RuntimeServices;                 // 0x1328
VOID                   *gSmst;                          // 0x1330 / 0x1310
UINT8                   mSmmMode;                       // 0x1338
VOID                   *mRuntimeServicesProtocolSmm;     // 0x1340
UINT8                   mInSmmMode;                     // 0x1348
VOID                   *mStatusCodeProtocolSmm;         // 0x1350
VOID                   *mRuntimeServicesProtocolBoot;    // 0x1358
VOID                   *mSmmRuntimeServicesTable;       // 0x1360
VOID                   *mStatusCodeProtocolBoot;        // 0x1368
UINT8                   mCmosByte;                      // 0x1378
UINT8                   gSetJumpBuffer[248];             // 0x1380

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

//
// Recovered function names
//

EFI_STATUS
EFIAPI
RuntimeSmmCacheSystemServices (
  VOID
  )
{
  gImageHandle = NULL;
  gST = NULL;
  gBS = NULL;
  gRT = NULL;
  gSmst = NULL;
  return EFI_SUCCESS;
}

EFI_STATUS
EFIAPI
RuntimeSmmDispatch (
  EFI_HANDLE        ImageHandle,
  EFI_SYSTEM_TABLE  *SystemTable
  )
{
  (VOID)ImageHandle;
  (VOID)SystemTable;
  return RuntimeSmmInitialize();
}

VOID
EFIAPI
RuntimeSmmSetJump (
  VOID
  )
{
}

VOID
EFIAPI
RuntimeSmmLongJump (
  VOID
  )
{
}

EFI_STATUS
EFIAPI
RuntimeSmmInitJumpState (
  EFI_HANDLE        ImageHandle,
  EFI_SYSTEM_TABLE  *SystemTable
  )
{
  (VOID)ImageHandle;
  (VOID)SystemTable;
  RuntimeSmmCacheSystemServices();
  return RuntimeSmmDispatch(ImageHandle, SystemTable);
}

EFI_STATUS
EFIAPI
RuntimeSmmDefaultProtocolNotifyHandler (
  VOID
  )
{
  return EFI_UNSUPPORTED;
}

EFI_STATUS
EFIAPI
RuntimeSmmRegisterProtocolNotifyTable (
  VOID
  )
{
  return EFI_SUCCESS;
}

EFI_STATUS
EFIAPI
RuntimeSmmInitialize (
  VOID
  )
{
  return EFI_SUCCESS;
}

EFI_STATUS
EFIAPI
RuntimeSmmLocateDebugProtocol (
  VOID
  )
{
  return EFI_SUCCESS;
}

EFI_STATUS
EFIAPI
RuntimeSmmReportStatusCodeHandler (
  VOID
  )
{
  return EFI_SUCCESS;
}

EFI_STATUS
EFIAPI
RuntimeSmmReportStatusCodeExHandler (
  VOID
  )
{
  return EFI_SUCCESS;
}

EFI_STATUS
EFIAPI
RuntimeSmmReadRuntimeModeFromCmos (
  VOID
  )
{
  return EFI_SUCCESS;
}

EFI_STATUS
EFIAPI
RuntimeSmmValidateJumpBuffer (
  VOID
  )
{
  return EFI_SUCCESS;
}

EFI_STATUS
EFIAPI
RuntimeSmmRegisterRuntimeServices (
  VOID
  )
{
  return EFI_SUCCESS;
}

EFI_STATUS
EFIAPI
RuntimeSmmRegisterStatusCodeProtocol (
  VOID
  )
{
  return EFI_SUCCESS;
}

EFI_STATUS
EFIAPI
RuntimeSmmFindCallbackProtocol (
  VOID
  )
{
  return EFI_SUCCESS;
}

EFI_STATUS
EFIAPI
RuntimeSmmCompareGuid (
  VOID
  )
{
  return EFI_SUCCESS;
}

EFI_STATUS
EFIAPI
_ModuleEntryPoint (
  EFI_HANDLE        ImageHandle,
  EFI_SYSTEM_TABLE  *SystemTable
  )
{
  return RuntimeSmmInitJumpState(ImageHandle, SystemTable);
}

EFI_STATUS
EFIAPI
ModuleEntryPoint (
  EFI_HANDLE        ImageHandle,
  EFI_SYSTEM_TABLE  *SystemTable
  )
{
  return _ModuleEntryPoint(ImageHandle, SystemTable);
}