TianoCore EDK2 master
Loading...
Searching...
No Matches
PiMmCis.h File Reference
#include <Pi/PiMultiPhase.h>
#include <Protocol/MmCpuIo.h>

Go to the source code of this file.

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   PI_SPECIFICATION_MAJOR_REVISION
 
#define MM_SPECIFICATION_MINOR_REVISION   PI_SPECIFICATION_MINOR_REVISION
 
#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(EFIAPI * EFI_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(EFIAPI * EFI_MM_STARTUP_THIS_AP) (IN EFI_AP_PROCEDURE Procedure, IN UINTN CpuNumber, IN OUT VOID *ProcArguments OPTIONAL)
 
typedef EFI_STATUS(EFIAPI * EFI_MM_NOTIFY_FN) (IN CONST EFI_GUID *Protocol, IN VOID *Interface, IN EFI_HANDLE Handle)
 
typedef EFI_STATUS(EFIAPI * EFI_MM_REGISTER_PROTOCOL_NOTIFY) (IN CONST EFI_GUID *Protocol, IN EFI_MM_NOTIFY_FN Function, OUT VOID **Registration)
 
typedef EFI_STATUS(EFIAPI * EFI_MM_INTERRUPT_MANAGE) (IN CONST EFI_GUID *HandlerType, IN CONST VOID *Context OPTIONAL, IN OUT VOID *CommBuffer OPTIONAL, IN OUT UINTN *CommBufferSize OPTIONAL)
 
typedef EFI_STATUS(EFIAPI * EFI_MM_HANDLER_ENTRY_POINT) (IN EFI_HANDLE DispatchHandle, IN CONST VOID *Context OPTIONAL, IN OUT VOID *CommBuffer OPTIONAL, IN OUT UINTN *CommBufferSize OPTIONAL)
 
typedef EFI_STATUS(EFIAPI * EFI_MM_INTERRUPT_REGISTER) (IN EFI_MM_HANDLER_ENTRY_POINT Handler, IN CONST EFI_GUID *HandlerType OPTIONAL, OUT EFI_HANDLE *DispatchHandle)
 
typedef EFI_STATUS(EFIAPI * EFI_MM_INTERRUPT_UNREGISTER) (IN EFI_HANDLE DispatchHandle)
 
typedef struct _EFI_MM_ENTRY_CONTEXT EFI_MM_ENTRY_CONTEXT
 
typedef VOID(EFIAPI * EFI_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

Definition in file PiMmCis.h.

Macro Definition Documentation

◆ EFI_MM_SYSTEM_TABLE_REVISION

#define EFI_MM_SYSTEM_TABLE_REVISION   ((MM_SPECIFICATION_MAJOR_REVISION<<16) | (MM_SPECIFICATION_MINOR_REVISION))

Definition at line 24 of file PiMmCis.h.

◆ MM_MMST_SIGNATURE

#define MM_MMST_SIGNATURE   SIGNATURE_32 ('S', 'M', 'S', 'T')

The Management Mode System Table (MMST) signature

Definition at line 21 of file PiMmCis.h.

◆ MM_SPECIFICATION_MAJOR_REVISION

#define MM_SPECIFICATION_MAJOR_REVISION   PI_SPECIFICATION_MAJOR_REVISION

Definition at line 22 of file PiMmCis.h.

◆ MM_SPECIFICATION_MINOR_REVISION

#define MM_SPECIFICATION_MINOR_REVISION   PI_SPECIFICATION_MINOR_REVISION

Definition at line 23 of file PiMmCis.h.

Typedef Documentation

◆ EFI_MM_ENTRY_CONTEXT

Processor information and functionality needed by MM Foundation.

◆ EFI_MM_ENTRY_POINT

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.

Definition at line 237 of file PiMmCis.h.

◆ EFI_MM_HANDLER_ENTRY_POINT

typedef EFI_STATUS(EFIAPI * EFI_MM_HANDLER_ENTRY_POINT) (IN EFI_HANDLE DispatchHandle, IN CONST VOID *Context OPTIONAL, IN OUT VOID *CommBuffer OPTIONAL, IN OUT UINTN *CommBufferSize OPTIONAL)

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.

Definition at line 161 of file PiMmCis.h.

◆ EFI_MM_INSTALL_CONFIGURATION_TABLE

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.

Definition at line 45 of file PiMmCis.h.

◆ EFI_MM_INTERRUPT_MANAGE

typedef EFI_STATUS(EFIAPI * EFI_MM_INTERRUPT_MANAGE) (IN CONST EFI_GUID *HandlerType, IN CONST VOID *Context OPTIONAL, IN OUT VOID *CommBuffer OPTIONAL, IN OUT UINTN *CommBufferSize OPTIONAL)

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.

Definition at line 134 of file PiMmCis.h.

◆ EFI_MM_INTERRUPT_REGISTER

typedef EFI_STATUS(EFIAPI * EFI_MM_INTERRUPT_REGISTER) (IN EFI_MM_HANDLER_ENTRY_POINT Handler, IN CONST EFI_GUID *HandlerType OPTIONAL, 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.

Definition at line 181 of file PiMmCis.h.

◆ EFI_MM_INTERRUPT_UNREGISTER

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.

Definition at line 197 of file PiMmCis.h.

◆ EFI_MM_NOTIFY_FN

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

Definition at line 87 of file PiMmCis.h.

◆ EFI_MM_REGISTER_PROTOCOL_NOTIFY

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.

Definition at line 113 of file PiMmCis.h.

◆ EFI_MM_STARTUP_THIS_AP

typedef EFI_STATUS(EFIAPI * EFI_MM_STARTUP_THIS_AP) (IN EFI_AP_PROCEDURE Procedure, IN UINTN CpuNumber, IN OUT VOID *ProcArguments OPTIONAL)

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.

Definition at line 70 of file PiMmCis.h.

◆ EFI_MM_SYSTEM_TABLE

Definition at line 16 of file PiMmCis.h.