From ccb314492f2e67f0ab310a7dd947065790a966cf Mon Sep 17 00:00:00 2001 From: Seolfor Hsieh Date: Mon, 17 Feb 2025 12:02:17 +0800 Subject: [PATCH] Fill all functions in the MockMmServicesTableLib --- .../Library/MockMmServicesTableLib.h | 100 ++++++++++++++++++ .../MockMmServicesTableLib.cpp | 30 ++++-- 2 files changed, 120 insertions(+), 10 deletions(-) diff --git a/MdePkg/Test/Mock/Include/GoogleTest/Library/MockMmServicesTableLib.h b/MdePkg/Test/Mock/Include/GoogleTest/Library/MockMmServicesTableLib.h index d8bf310397..9ebaba35a1 100644 --- a/MdePkg/Test/Mock/Include/GoogleTest/Library/MockMmServicesTableLib.h +++ b/MdePkg/Test/Mock/Include/GoogleTest/Library/MockMmServicesTableLib.h @@ -21,6 +21,55 @@ extern "C" { struct MockMmServicesTableLib { MOCK_INTERFACE_DECLARATION (MockMmServicesTableLib); + MOCK_FUNCTION_DECLARATION ( + EFI_STATUS, + gMmst_MmAllocatePool, + ( + IN EFI_MEMORY_TYPE PoolType, + IN UINTN Size, + OUT VOID **Buffer + ) + ); + + MOCK_FUNCTION_DECLARATION ( + EFI_STATUS, + gMmst_MmFreePool, + ( + IN VOID *Buffer + ) + ); + + MOCK_FUNCTION_DECLARATION ( + EFI_STATUS, + gMmst_MmAllocatePages, + ( + IN EFI_ALLOCATE_TYPE Type, + IN EFI_MEMORY_TYPE MemoryType, + IN UINTN Pages, + OUT EFI_PHYSICAL_ADDRESS *Memory + ) + ); + + MOCK_FUNCTION_DECLARATION ( + EFI_STATUS, + gMmst_MmFreePages, + ( + IN EFI_PHYSICAL_ADDRESS Memory, + IN UINTN Pages + ) + ); + + // MP service + MOCK_FUNCTION_DECLARATION ( + EFI_STATUS, + gMmst_MmStartupThisAp, + ( + IN EFI_AP_PROCEDURE Procedure, + IN UINTN CpuNumber, + IN OUT VOID *ProcArguments OPTIONAL + ) + ); + MOCK_FUNCTION_DECLARATION ( EFI_STATUS, gMmst_MmInstallProtocolInterface, @@ -42,6 +91,16 @@ struct MockMmServicesTableLib { ) ); + MOCK_FUNCTION_DECLARATION ( + EFI_STATUS, + gMmst_MmHandleProtocol, + ( + IN EFI_HANDLE Handle, + IN EFI_GUID *Protocol, + OUT VOID **Interface + ) + ); + MOCK_FUNCTION_DECLARATION ( EFI_STATUS, gMmst_MmRegisterProtocolNotify, @@ -52,6 +111,18 @@ struct MockMmServicesTableLib { ) ); + MOCK_FUNCTION_DECLARATION ( + EFI_STATUS, + gMmst_MmLocateHandle, + ( + IN EFI_LOCATE_SEARCH_TYPE SearchType, + IN EFI_GUID *Protocol, + IN VOID *SearchKey, + IN OUT UINTN *BufferSize, + OUT EFI_HANDLE *Buffer + ) + ); + MOCK_FUNCTION_DECLARATION ( EFI_STATUS, gMmst_MmLocateProtocol, @@ -61,6 +132,35 @@ struct MockMmServicesTableLib { OUT VOID **Interface ) ); + + MOCK_FUNCTION_DECLARATION ( + EFI_STATUS, + gMmst_MmiManage, + ( + IN CONST EFI_GUID *HandlerType, + IN CONST VOID *Context, + IN OUT VOID *CommBuffer, + IN OUT UINTN *CommBufferSize + ) + ); + + MOCK_FUNCTION_DECLARATION ( + EFI_STATUS, + gMmst_MmInterruptRegister, + ( + IN EFI_MM_HANDLER_ENTRY_POINT Handler, + IN CONST EFI_GUID *HandlerType, + OUT EFI_HANDLE *DispatchHandle + ) + ); + + MOCK_FUNCTION_DECLARATION ( + EFI_STATUS, + gMmst_MmInterruptUnRegister, + ( + IN EFI_HANDLE DispatchHandle + ) + ); }; #endif diff --git a/MdePkg/Test/Mock/Library/GoogleTest/MockMmServicesTableLib/MockMmServicesTableLib.cpp b/MdePkg/Test/Mock/Library/GoogleTest/MockMmServicesTableLib/MockMmServicesTableLib.cpp index abf7788f9c..1f5d5ff690 100644 --- a/MdePkg/Test/Mock/Library/GoogleTest/MockMmServicesTableLib/MockMmServicesTableLib.cpp +++ b/MdePkg/Test/Mock/Library/GoogleTest/MockMmServicesTableLib/MockMmServicesTableLib.cpp @@ -7,10 +7,20 @@ #include MOCK_INTERFACE_DEFINITION (MockMmServicesTableLib); +MOCK_FUNCTION_DEFINITION (MockMmServicesTableLib, gMmst_MmAllocatePool, 3, EFIAPI); +MOCK_FUNCTION_DEFINITION (MockMmServicesTableLib, gMmst_MmFreePool, 1, EFIAPI); +MOCK_FUNCTION_DEFINITION (MockMmServicesTableLib, gMmst_MmAllocatePages, 4, EFIAPI); +MOCK_FUNCTION_DEFINITION (MockMmServicesTableLib, gMmst_MmFreePages, 2, EFIAPI); +MOCK_FUNCTION_DEFINITION (MockMmServicesTableLib, gMmst_MmStartupThisAp, 3, EFIAPI); MOCK_FUNCTION_DEFINITION (MockMmServicesTableLib, gMmst_MmInstallProtocolInterface, 4, EFIAPI); MOCK_FUNCTION_DEFINITION (MockMmServicesTableLib, gMmst_MmUninstallProtocolInterface, 3, EFIAPI); +MOCK_FUNCTION_DEFINITION (MockMmServicesTableLib, gMmst_MmHandleProtocol, 3, EFIAPI); MOCK_FUNCTION_DEFINITION (MockMmServicesTableLib, gMmst_MmRegisterProtocolNotify, 3, EFIAPI); +MOCK_FUNCTION_DEFINITION (MockMmServicesTableLib, gMmst_MmLocateHandle, 5, EFIAPI); MOCK_FUNCTION_DEFINITION (MockMmServicesTableLib, gMmst_MmLocateProtocol, 3, EFIAPI); +MOCK_FUNCTION_DEFINITION (MockMmServicesTableLib, gMmst_MmiManage, 4, EFIAPI); +MOCK_FUNCTION_DEFINITION (MockMmServicesTableLib, gMmst_MmInterruptRegister, 3, EFIAPI); +MOCK_FUNCTION_DEFINITION (MockMmServicesTableLib, gMmst_MmInterruptUnRegister, 1, EFIAPI); static EFI_MM_SYSTEM_TABLE LocalMmst = { { 0, 0, 0, 0, 0 }, // EFI_TABLE_HEADER @@ -18,11 +28,11 @@ static EFI_MM_SYSTEM_TABLE LocalMmst = { 0, // MmFirmwareRevision NULL, // EFI_MM_INSTALL_CONFIGURATION_TABLE { NULL }, // EFI_MM_CPU_IO_PROTOCOL - NULL, // EFI_ALLOCATE_POOL - NULL, // EFI_FREE_POOL - NULL, // EFI_ALLOCATE_PAGES - NULL, // EFI_FREE_PAGES - NULL, // EFI_MM_STARTUP_THIS_AP + gMmst_MmAllocatePool, // EFI_ALLOCATE_POOL + gMmst_MmFreePool, // EFI_FREE_POOL + gMmst_MmAllocatePages, // EFI_ALLOCATE_PAGES + gMmst_MmFreePages, // EFI_FREE_PAGES + gMmst_MmStartupThisAp, // EFI_MM_STARTUP_THIS_AP 0, // CurrentlyExecutingCpu 0, // NumberOfCpus NULL, // CpuSaveStateSize @@ -31,13 +41,13 @@ static EFI_MM_SYSTEM_TABLE LocalMmst = { NULL, // EFI_CONFIGURATION_TABLE gMmst_MmInstallProtocolInterface, // EFI_INSTALL_PROTOCOL_INTERFACE gMmst_MmUninstallProtocolInterface, // EFI_UNINSTALL_PROTOCOL_INTERFACE - NULL, // EFI_HANDLE_PROTOCOL + gMmst_MmHandleProtocol, // EFI_HANDLE_PROTOCOL gMmst_MmRegisterProtocolNotify, // EFI_MM_REGISTER_PROTOCOL_NOTIFY - NULL, // EFI_LOCATE_HANDLE + gMmst_MmLocateHandle, // EFI_LOCATE_HANDLE gMmst_MmLocateProtocol, // EFI_LOCATE_PROTOCOL - NULL, // EFI_MM_INTERRUPT_MANAGE - NULL, // EFI_MM_INTERRUPT_REGISTER - NULL // EFI_MM_INTERRUPT_UNREGISTER + gMmst_MmiManage, // EFI_MM_INTERRUPT_MANAGE + gMmst_MmInterruptRegister, // EFI_MM_INTERRUPT_REGISTER + gMmst_MmInterruptUnRegister // EFI_MM_INTERRUPT_UNREGISTER }; extern "C" {