/** @file
LegacySmmSredir.c -- LegacySmmSredir
Recovered naming/alias surface from local module notes:
LegacySmmSredir.md / README.md.
Copyright (c) HR650X BIOS Decompilation Project
**/
#include "LegacySmmSredir.h"
//
// Recovered globals (docs: README.md / LegacySmmSredir.md)
//
EFI_SYSTEM_TABLE *gST = NULL; // 0x1A08
EFI_BOOT_SERVICES *gBS = NULL; // 0x1A10
EFI_HANDLE gImageHandle = NULL; // 0x1A18
EFI_RUNTIME_SERVICES *gRT = NULL; // 0x1A20
VOID *gSmst = NULL; // 0x1A28
VOID *gSmmDebugLib = NULL; // 0x1A30
EFI_BOOT_SERVICES *gBSLocal = NULL; // 0x1A38
VOID *gSmmInternalProtocol = NULL; // 0x1A40
VOID *gSmmBase2Protocol = NULL; // 0x1A48
UINT8 gSmmMode = 0; // 0x1A50
VOID *gSmmIoProtocol = NULL; // 0x1A58
UINT8 gSmmIoPhase = 0; // 0x1A60
VOID *gSmmDebugLibAlt = NULL; // 0x1A68
VOID *gDxeIoProtocol = NULL; // 0x1A70
EFI_RUNTIME_SERVICES *gRTLocal = NULL; // 0x1A78
VOID *gDxeDebugLib = NULL; // 0x1A80
EFI_SYSTEM_TABLE *gSTLocal = NULL; // 0x1A88
VOID *gAmiBufferValidation = NULL; // 0x1A90
UINT8 gCmosValue = 0; // 0x1A98
UINTN gDriverStatus = 0; // 0x1B98
VOID *gSmmCommunication = NULL; // 0x1BA0
VOID *gSmmCommunicationProtocol = NULL; // 0x19F0
UINT8 gDataWidth = 0; // 0x19F8
UINT8 gCommunicateDisabled = 0; // 0x19F9
VOID *gSmmCommunicateBuffer = NULL; // 0x1A00
//
// Raw decompiler symbol names kept as aliases to the recovered names.
//
#define qword_1A08 gST
#define qword_1A10 gBS
#define qword_1A18 gImageHandle
#define qword_1A20 gRT
#define qword_1A28 gSmst
#define qword_1A30 gSmmDebugLib
#define qword_1A38 gBSLocal
#define qword_1A40 gSmmInternalProtocol
#define qword_1A48 gSmmBase2Protocol
#define byte_1A50 gSmmMode
#define qword_1A58 gSmmIoProtocol
#define byte_1A60 gSmmIoPhase
#define qword_1A68 gSmmDebugLibAlt
#define qword_1A70 gDxeIoProtocol
#define qword_1A78 gRTLocal
#define qword_1A80 gDxeDebugLib
#define qword_1A88 gSTLocal
#define qword_1A90 gAmiBufferValidation
#define byte_1A98 gCmosValue
#define qword_1B98 gDriverStatus
#define qword_1BA0 gSmmCommunication
#define qword_19F0 gSmmCommunicationProtocol
#define byte_19F8 gDataWidth
#define byte_19F9 gCommunicateDisabled
#define qword_1A00 gSmmCommunicateBuffer
//
// Recovered function naming map:
// _ModuleEntryPoint -- UEFI SMM entry point
// sub_44C -> LegacySmmSredirAutoGenInit
// sub_618 -> LegacySmmSredirDriverEntry
// sub_C58 -> LegacySmmSredirMainDispatch
// sub_9E8 -> LegacySmmSredirRegisterCommunicationServices
// sub_6CC -> LegacySmmSredirHandleCommunicate
// sub_93C -> LegacySmmSredirDisableCommunicateHandler
// sub_944 -> LegacySmmSredirRegisterProtocolNotification
// sub_9C0 -> LegacySmmSredirNotificationCallback
// sub_2A0 -> LegacySmmSredirSaveJumpContext
// sub_340 -> LegacySmmSredirRestoreJumpContext
// sub_D78 -> LegacySmmSredirValidateJumpContext
// sub_DC0 -> LegacySmmSredirLocateDebugLib
// sub_E10 -> LegacySmmSredirDebugPrint
// sub_E58 -> LegacySmmSredirDebugAssert
// sub_E98 -> LegacySmmSredirGetIoProtocol
// sub_F20 -> LegacySmmSredirGetDebugProtocol
// sub_1004 -> LegacySmmSredirFindRuntimeServices
// sub_1074 -> LegacySmmSredirComparePattern
// sub_10F0 -> LegacySmmSredirValidateBuffer
// sub_115C -> LegacySmmSredirDetectPlatform
//
EFI_STATUS
EFIAPI
LegacySmmSredirAutoGenInit(
VOID
)
{
return EFI_SUCCESS;
}
EFI_STATUS
EFIAPI
sub_44C(
VOID
)
{
return LegacySmmSredirAutoGenInit();
}
EFI_STATUS
EFIAPI
LegacySmmSredirRegisterCommunicationServices(
VOID
)
{
return EFI_SUCCESS;
}
EFI_STATUS
EFIAPI
LegacySmmSredirDriverEntry(
EFI_HANDLE ImageHandle,
EFI_SYSTEM_TABLE *SystemTable
)
{
(VOID)ImageHandle;
(VOID)SystemTable;
return EFI_SUCCESS;
}
EFI_STATUS
EFIAPI
sub_618(
EFI_HANDLE ImageHandle,
EFI_SYSTEM_TABLE *SystemTable
)
{
return LegacySmmSredirDriverEntry(ImageHandle, SystemTable);
}
VOID
sub_93C(
VOID
)
{
gCommunicateDisabled = 1;
}
EFI_STATUS
EFIAPI
_ModuleEntryPoint(
EFI_HANDLE ImageHandle,
EFI_SYSTEM_TABLE *SystemTable
)
{
sub_44C();
return sub_618(ImageHandle, SystemTable);
}
EFI_STATUS
EFIAPI
ModuleEntryPoint(
EFI_HANDLE ImageHandle,
EFI_SYSTEM_TABLE *SystemTable
)
{
return _ModuleEntryPoint(ImageHandle, SystemTable);
}