MdePkg/SmiHandlerProfile: Add Context support in Unregister

The reason is that we observe that a platform may use same Handler
for different context.

In order to support Unregister such handler, we have to input
context information as well.

Cc: Jeff Fan <jeff.fan@intel.com>
Cc: Liming Gao <liming.gao@intel.com>
Cc: Michael D Kinney <michael.d.kinney@intel.com>
Cc: Bret Barkelew <Bret.Barkelew@microsoft.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jiewen Yao <jiewen.yao@intel.com>
Reviewed-by: Jeff Fan <jeff.fan@intel.com>
Reviewed-by: Feng Tian <feng.tian@intel.com>
This commit is contained in:
Jiewen Yao 2017-03-10 11:42:53 +08:00
parent e5735b98c2
commit 091e902bd3
2 changed files with 14 additions and 2 deletions

View File

@ -66,6 +66,10 @@ SmiHandlerProfileRegisterHandler (
For the SmmChildDispatch protocol, the HandlerGuid For the SmmChildDispatch protocol, the HandlerGuid
must be the GUID of SmmChildDispatch protocol. must be the GUID of SmmChildDispatch protocol.
@param Handler The SMI handler. @param Handler The SMI handler.
@param Context The context of the SMI handler.
If it is NOT NULL, it will be used to check what is registered.
@param ContextSize The size of the context in bytes.
If Context is NOT NULL, it will be used to check what is registered.
@retval EFI_SUCCESS The original record is removed. @retval EFI_SUCCESS The original record is removed.
@retval EFI_UNSUPPORTED The feature is unsupported. @retval EFI_UNSUPPORTED The feature is unsupported.
@ -75,7 +79,9 @@ EFI_STATUS
EFIAPI EFIAPI
SmiHandlerProfileUnregisterHandler ( SmiHandlerProfileUnregisterHandler (
IN EFI_GUID *HandlerGuid, IN EFI_GUID *HandlerGuid,
IN EFI_SMM_HANDLER_ENTRY_POINT2 Handler IN EFI_SMM_HANDLER_ENTRY_POINT2 Handler,
IN VOID *Context, OPTIONAL
IN UINTN ContextSize OPTIONAL
); );
#endif #endif

View File

@ -56,6 +56,10 @@ SmiHandlerProfileRegisterHandler (
For the SmmChildDispatch protocol, the HandlerGuid For the SmmChildDispatch protocol, the HandlerGuid
must be the GUID of SmmChildDispatch protocol. must be the GUID of SmmChildDispatch protocol.
@param Handler The SMI handler. @param Handler The SMI handler.
@param Context The context of the SMI handler.
If it is NOT NULL, it will be used to check what is registered.
@param ContextSize The size of the context in bytes.
If Context is NOT NULL, it will be used to check what is registered.
@retval EFI_SUCCESS The original record is removed. @retval EFI_SUCCESS The original record is removed.
@retval EFI_UNSUPPORTED The feature is unsupported. @retval EFI_UNSUPPORTED The feature is unsupported.
@ -65,7 +69,9 @@ EFI_STATUS
EFIAPI EFIAPI
SmiHandlerProfileUnregisterHandler ( SmiHandlerProfileUnregisterHandler (
IN EFI_GUID *HandlerGuid, IN EFI_GUID *HandlerGuid,
IN EFI_SMM_HANDLER_ENTRY_POINT2 Handler IN EFI_SMM_HANDLER_ENTRY_POINT2 Handler,
IN VOID *Context, OPTIONAL
IN UINTN ContextSize OPTIONAL
) )
{ {
return EFI_UNSUPPORTED; return EFI_UNSUPPORTED;