MdePkg[all]  1.08
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
PiMmCis.h File Reference

Data Structures

struct  _EFI_MM_ENTRY_CONTEXT
 
struct  _EFI_MM_SYSTEM_TABLE
 

Macros

#define MM_MMST_SIGNATURE   SIGNATURE_32 ('S', 'M', 'S', 'T')
 
#define MM_SPECIFICATION_MAJOR_REVISION   1
 
#define MM_SPECIFICATION_MINOR_REVISION   60
 
#define EFI_MM_SYSTEM_TABLE_REVISION   ((MM_SPECIFICATION_MAJOR_REVISION<<16) | (MM_SPECIFICATION_MINOR_REVISION))
 

Typedefs

typedef struct _EFI_MM_SYSTEM_TABLE EFI_MM_SYSTEM_TABLE
 
typedef EFI_STATUS(EFIAPIEFI_MM_INSTALL_CONFIGURATION_TABLE )(IN CONST EFI_MM_SYSTEM_TABLE *SystemTable, IN CONST EFI_GUID *Guid, IN VOID *Table, IN UINTN TableSize)
 
typedef EFI_STATUS(EFIAPIEFI_MM_STARTUP_THIS_AP )(IN EFI_AP_PROCEDURE Procedure, IN UINTN CpuNumber, IN OUT VOID *ProcArguments)
 
typedef EFI_STATUS(EFIAPIEFI_MM_NOTIFY_FN )(IN CONST EFI_GUID *Protocol, IN VOID *Interface, IN EFI_HANDLE Handle)
 
typedef EFI_STATUS(EFIAPIEFI_MM_REGISTER_PROTOCOL_NOTIFY )(IN CONST EFI_GUID *Protocol, IN EFI_MM_NOTIFY_FN Function, OUT VOID **Registration)
 
typedef EFI_STATUS(EFIAPIEFI_MM_INTERRUPT_MANAGE )(IN CONST EFI_GUID *HandlerType, IN CONST VOID *Context, IN OUT VOID *CommBuffer, IN OUT UINTN *CommBufferSize)
 
typedef EFI_STATUS(EFIAPIEFI_MM_HANDLER_ENTRY_POINT )(IN EFI_HANDLE DispatchHandle, IN CONST VOID *Context, IN OUT VOID *CommBuffer, IN OUT UINTN *CommBufferSize)
 
typedef EFI_STATUS(EFIAPIEFI_MM_INTERRUPT_REGISTER )(IN EFI_MM_HANDLER_ENTRY_POINT Handler, IN CONST EFI_GUID *HandlerType, OUT EFI_HANDLE *DispatchHandle)
 
typedef EFI_STATUS(EFIAPIEFI_MM_INTERRUPT_UNREGISTER )(IN EFI_HANDLE DispatchHandle)
 
typedef struct
_EFI_MM_ENTRY_CONTEXT 
EFI_MM_ENTRY_CONTEXT
 
typedef VOID(EFIAPIEFI_MM_ENTRY_POINT )(IN CONST EFI_MM_ENTRY_CONTEXT *MmEntryContext)
 

Detailed Description

Common definitions in the Platform Initialization Specification version 1.5 VOLUME 4 Management Mode Core Interface version.

Copyright (c) 2017, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent

Macro Definition Documentation

#define EFI_MM_SYSTEM_TABLE_REVISION   ((MM_SPECIFICATION_MAJOR_REVISION<<16) | (MM_SPECIFICATION_MINOR_REVISION))
#define MM_MMST_SIGNATURE   SIGNATURE_32 ('S', 'M', 'S', 'T')

The Management Mode System Table (MMST) signature

#define MM_SPECIFICATION_MAJOR_REVISION   1

The Management Mode System Table (MMST) revision is 1.6

#define MM_SPECIFICATION_MINOR_REVISION   60

Typedef Documentation

Processor information and functionality needed by MM Foundation.

typedef VOID(EFIAPI * EFI_MM_ENTRY_POINT)(IN CONST EFI_MM_ENTRY_CONTEXT *MmEntryContext)

This function is the main entry point to the MM Foundation.

Parameters
[in]MmEntryContextProcessor information and functionality needed by MM Foundation.
typedef EFI_STATUS(EFIAPI * EFI_MM_HANDLER_ENTRY_POINT)(IN EFI_HANDLE DispatchHandle, IN CONST VOID *Context, IN OUT VOID *CommBuffer, IN OUT UINTN *CommBufferSize)

Main entry point for an MM handler dispatch or communicate-based callback.

Parameters
[in]DispatchHandleThe unique handle assigned to this handler by MmiHandlerRegister().
[in]ContextPoints to an optional handler context which was specified when the handler was registered.
[in,out]CommBufferA pointer to a collection of data in memory that will be conveyed from a non-MM environment into an MM environment.
[in,out]CommBufferSizeThe size of the CommBuffer.
Return values
EFI_SUCCESSThe interrupt was handled and quiesced. No other handlers should still be called.
EFI_WARN_INTERRUPT_SOURCE_QUIESCEDThe interrupt has been quiesced but other handlers should still be called.
EFI_WARN_INTERRUPT_SOURCE_PENDINGThe interrupt is still pending and other handlers should still be called.
EFI_INTERRUPT_PENDINGThe interrupt could not be quiesced.
typedef EFI_STATUS(EFIAPI * EFI_MM_INSTALL_CONFIGURATION_TABLE)(IN CONST EFI_MM_SYSTEM_TABLE *SystemTable, IN CONST EFI_GUID *Guid, IN VOID *Table, IN UINTN TableSize)

Adds, updates, or removes a configuration table entry from the Management Mode System Table.

The MmInstallConfigurationTable() function is used to maintain the list of configuration tables that are stored in the Management Mode System Table. The list is stored as an array of (GUID, Pointer) pairs. The list must be allocated from pool memory with PoolType set to EfiRuntimeServicesData.

Parameters
[in]SystemTableA pointer to the MM System Table (MMST).
[in]GuidA pointer to the GUID for the entry to add, update, or remove.
[in]TableA pointer to the buffer of the table to add.
[in]TableSizeThe size of the table to install.
Return values
EFI_SUCCESSThe (Guid, Table) pair was added, updated, or removed.
EFI_INVALID_PARAMETERGuid is not valid.
EFI_NOT_FOUNDAn attempt was made to delete a non-existent entry.
EFI_OUT_OF_RESOURCESThere is not enough memory available to complete the operation.
typedef EFI_STATUS(EFIAPI * EFI_MM_INTERRUPT_MANAGE)(IN CONST EFI_GUID *HandlerType, IN CONST VOID *Context, IN OUT VOID *CommBuffer, IN OUT UINTN *CommBufferSize)

Manage MMI of a particular type.

Parameters
[in]HandlerTypePoints to the handler type or NULL for root MMI handlers.
[in]ContextPoints to an optional context buffer.
[in,out]CommBufferPoints to the optional communication buffer.
[in,out]CommBufferSizePoints to the size of the optional communication buffer.
Return values
EFI_WARN_INTERRUPT_SOURCE_PENDINGInterrupt source was processed successfully but not quiesced.
EFI_INTERRUPT_PENDINGOne or more SMI sources could not be quiesced.
EFI_NOT_FOUNDInterrupt source was not handled or quiesced.
EFI_SUCCESSInterrupt source was handled and quiesced.
typedef EFI_STATUS(EFIAPI * EFI_MM_INTERRUPT_REGISTER)(IN EFI_MM_HANDLER_ENTRY_POINT Handler, IN CONST EFI_GUID *HandlerType, OUT EFI_HANDLE *DispatchHandle)

Registers a handler to execute within MM.

Parameters
[in]HandlerHandler service function pointer.
[in]HandlerTypePoints to the handler type or NULL for root MMI handlers.
[out]DispatchHandleOn return, contains a unique handle which can be used to later unregister the handler function.
Return values
EFI_SUCCESSMMI handler added successfully.
EFI_INVALID_PARAMETERHandler is NULL or DispatchHandle is NULL.
typedef EFI_STATUS(EFIAPI * EFI_MM_INTERRUPT_UNREGISTER)(IN EFI_HANDLE DispatchHandle)

Unregister a handler in MM.

Parameters
[in]DispatchHandleThe handle that was specified when the handler was registered.
Return values
EFI_SUCCESSHandler function was successfully unregistered.
EFI_INVALID_PARAMETERDispatchHandle does not refer to a valid handle.
typedef EFI_STATUS(EFIAPI * EFI_MM_NOTIFY_FN)(IN CONST EFI_GUID *Protocol, IN VOID *Interface, IN EFI_HANDLE Handle)

Function prototype for protocol install notification.

Parameters
[in]ProtocolPoints to the protocol's unique identifier.
[in]InterfacePoints to the interface instance.
[in]HandleThe handle on which the interface was installed.
Returns
Status Code
typedef EFI_STATUS(EFIAPI * EFI_MM_REGISTER_PROTOCOL_NOTIFY)(IN CONST EFI_GUID *Protocol, IN EFI_MM_NOTIFY_FN Function, OUT VOID **Registration)

Register a callback function be called when a particular protocol interface is installed.

The MmRegisterProtocolNotify() function creates a registration Function that is to be called whenever a protocol interface is installed for Protocol by MmInstallProtocolInterface(). If Function == NULL and Registration is an existing registration, then the callback is unhooked.

Parameters
[in]ProtocolThe unique ID of the protocol for which the event is to be registered.
[in]FunctionPoints to the notification function.
[out]RegistrationA pointer to a memory location to receive the registration value.
Return values
EFI_SUCCESSSuccessfully returned the registration record that has been added or unhooked.
EFI_INVALID_PARAMETERProtocol is NULL or Registration is NULL.
EFI_OUT_OF_RESOURCESNot enough memory resource to finish the request.
EFI_NOT_FOUNDIf the registration is not found when Function == NULL.
typedef EFI_STATUS(EFIAPI * EFI_MM_STARTUP_THIS_AP)(IN EFI_AP_PROCEDURE Procedure, IN UINTN CpuNumber, IN OUT VOID *ProcArguments)

This service lets the caller to get one distinct application processor (AP) to execute a caller-provided code stream while in MM.

Parameters
[in]ProcedureA pointer to the code stream to be run on the designated AP of the system.
[in]CpuNumberThe zero-based index of the processor number of the AP on which the code stream is supposed to run.
[in,out]ProcArgumentsAllows the caller to pass a list of parameters to the code that is run by the AP.
Return values
EFI_SUCCESSThe call was successful and the return parameters are valid.
EFI_INVALID_PARAMETERThe input arguments are out of range.
EFI_INVALID_PARAMETERThe CPU requested is not available on this SMI invocation.
EFI_INVALID_PARAMETERThe CPU cannot support an additional service invocation.