/** @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__ */