Add PI1.2.1 EndOfDxe support.

Signed-off-by: jiewen.yao@intel.com
Reviewed-by: michael.d.kinney@intel.com

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@14009 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
jyao1
2012-12-18 05:07:35 +00:00
parent eafd681e28
commit 46ece1ff4f
8 changed files with 121 additions and 2 deletions

View File

@@ -78,6 +78,7 @@ SMM_CORE_SMI_HANDLERS mSmmCoreSmiHandlers[] = {
{ SmmDriverDispatchHandler, &gEfiEventDxeDispatchGuid, NULL, TRUE },
{ SmmReadyToLockHandler, &gEfiDxeSmmReadyToLockProtocolGuid, NULL, TRUE },
{ SmmLegacyBootHandler, &gEfiEventLegacyBootGuid, NULL, FALSE },
{ SmmEndOfDxeHandler, &gEfiEndOfDxeEventGroupGuid, NULL, FALSE },
{ NULL, NULL, NULL, FALSE }
};
@@ -228,6 +229,46 @@ SmmReadyToLockHandler (
return Status;
}
/**
Software SMI handler that is called when the EndOfDxe event is signalled.
This function installs the SMM EndOfDxe Protocol so SMM Drivers are informed that
platform code will invoke 3rd part code.
@param DispatchHandle The unique handle assigned to this handler by SmiHandlerRegister().
@param Context Points to an optional handler context which was specified when the handler was registered.
@param CommBuffer A pointer to a collection of data in memory that will
be conveyed from a non-SMM environment into an SMM environment.
@param CommBufferSize The size of the CommBuffer.
@return Status Code
**/
EFI_STATUS
EFIAPI
SmmEndOfDxeHandler (
IN EFI_HANDLE DispatchHandle,
IN CONST VOID *Context, OPTIONAL
IN OUT VOID *CommBuffer, OPTIONAL
IN OUT UINTN *CommBufferSize OPTIONAL
)
{
EFI_STATUS Status;
EFI_HANDLE SmmHandle;
DEBUG ((EFI_D_INFO, "SmmEndOfDxeHandler\n"));
//
// Install SMM EndOfDxe protocol
//
SmmHandle = NULL;
Status = SmmInstallProtocolInterface (
&SmmHandle,
&gEfiSmmEndOfDxeProtocolGuid,
EFI_NATIVE_INTERFACE,
NULL
);
return EFI_SUCCESS;
}
/**
The main entry point to SMM Foundation.