XenevaOS
Loading...
Searching...
No Matches
Functions
SmiHandlerProfileLib.h File Reference
#include <PiSmm.h>
Include dependency graph for SmiHandlerProfileLib.h:

Go to the source code of this file.

Functions

EFI_STATUS EFIAPI SmiHandlerProfileRegisterHandler (IN EFI_GUID *HandlerGuid, IN EFI_SMM_HANDLER_ENTRY_POINT2 Handler, IN PHYSICAL_ADDRESS CallerAddress, IN VOID *Context, OPTIONAL IN UINTN ContextSize OPTIONAL)
 
EFI_STATUS EFIAPI SmiHandlerProfileUnregisterHandler (IN EFI_GUID *HandlerGuid, IN EFI_SMM_HANDLER_ENTRY_POINT2 Handler, IN VOID *Context, OPTIONAL IN UINTN ContextSize OPTIONAL)
 

Detailed Description

Provides services to log the SMI handler registration.

This API provides services for the SMM Child Dispatch Protocols provider, to register SMI handler information to SmmCore.

NOTE: There is no need to update the consumers of SMST->SmiHandlerRegister() or the consumers of SMM Child Dispatch Protocols. The SmmCore (who produces SMST) should have ability to register such information directly. The SmmChildDispatcher (who produces SMM Child Dispatch Protocols) should be responsible to call the services to register information to SMM Core.

Copyright (c) 2017, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php

THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

Function Documentation

◆ SmiHandlerProfileRegisterHandler()

EFI_STATUS EFIAPI SmiHandlerProfileRegisterHandler ( IN EFI_GUID HandlerGuid,
IN EFI_SMM_HANDLER_ENTRY_POINT2  Handler,
IN PHYSICAL_ADDRESS  CallerAddress,
IN VOID Context,
OPTIONAL IN UINTN ContextSize  OPTIONAL 
)

This function is called by SmmChildDispatcher module to report a new SMI handler is registered, to SmmCore.

Parameters
HandlerGuidThe GUID to identify the type of the handler. For the SmmChildDispatch protocol, the HandlerGuid must be the GUID of SmmChildDispatch protocol.
HandlerThe SMI handler.
CallerAddressThe address of the module who registers the SMI handler.
ContextThe context of the SMI handler. For the SmmChildDispatch protocol, the Context must match the one defined for SmmChildDispatch protocol.
ContextSizeThe size of the context in bytes. For the SmmChildDispatch protocol, the Context must match the one defined for SmmChildDispatch protocol.
Return values
EFI_SUCCESSThe information is recorded.
EFI_UNSUPPORTEDThe feature is unsupported.
EFI_OUT_OF_RESOURCESThere is no enough resource to record the information.

◆ SmiHandlerProfileUnregisterHandler()

EFI_STATUS EFIAPI SmiHandlerProfileUnregisterHandler ( IN EFI_GUID HandlerGuid,
IN EFI_SMM_HANDLER_ENTRY_POINT2  Handler,
IN VOID Context,
OPTIONAL IN UINTN ContextSize  OPTIONAL 
)

This function is called by SmmChildDispatcher module to report an existing SMI handler is unregistered, to SmmCore.

Parameters
HandlerGuidThe GUID to identify the type of the handler. For the SmmChildDispatch protocol, the HandlerGuid must be the GUID of SmmChildDispatch protocol.
HandlerThe SMI handler.
ContextThe context of the SMI handler. If it is NOT NULL, it will be used to check what is registered.
ContextSizeThe size of the context in bytes. If Context is NOT NULL, it will be used to check what is registered.
Return values
EFI_SUCCESSThe original record is removed.
EFI_UNSUPPORTEDThe feature is unsupported.
EFI_NOT_FOUNDThere is no record for the HandlerGuid and handler.