MdeModulePkg/PiSmmCore: Install Protocol when S3 resume finished.
Install EdkiiSmmEndOfS3ResumeProtocol when S3 resume finished. S3ResumePei will send S3 resume finished event to SmmCore through communication buffer. V2 change: None. V3 change: 1. Uninstall the protocol right after install it to avoid run out of memory. Cc: Ruiyu Ni <ruiyu.ni@intel.com> Cc: Jiewen Yao <jiewen.yao@intel.com> Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Eric Dong <eric.dong@intel.com> Reviewed-by: Ruiyu Ni <ruiyu.ni@intel.com> Reviewed-by: Jiewen Yao <jiewen.yao@intel.com>
This commit is contained in:
@@ -32,6 +32,7 @@
|
||||
#include <Protocol/SmmExitBootServices.h>
|
||||
#include <Protocol/SmmLegacyBoot.h>
|
||||
#include <Protocol/SmmReadyToBoot.h>
|
||||
#include <Protocol/SmmEndOfS3Resume.h>
|
||||
|
||||
#include <Guid/Apriori.h>
|
||||
#include <Guid/EventGroup.h>
|
||||
@@ -801,6 +802,29 @@ SmmReadyToBootHandler (
|
||||
IN OUT UINTN *CommBufferSize OPTIONAL
|
||||
);
|
||||
|
||||
/**
|
||||
Software SMI handler that is called when the EndOfS3Resume event is trigged.
|
||||
This function installs the SMM EndOfS3Resume Protocol so SMM Drivers are informed that
|
||||
S3 resume has finished.
|
||||
|
||||
@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
|
||||
SmmEndOfS3ResumeHandler (
|
||||
IN EFI_HANDLE DispatchHandle,
|
||||
IN CONST VOID *Context, OPTIONAL
|
||||
IN OUT VOID *CommBuffer, OPTIONAL
|
||||
IN OUT UINTN *CommBufferSize OPTIONAL
|
||||
);
|
||||
|
||||
/**
|
||||
Place holder function until all the SMM System Table Service are available.
|
||||
|
||||
|
Reference in New Issue
Block a user