TianoCore EDK2 master
|
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)) |
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.
#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') |
#define MM_SPECIFICATION_MAJOR_REVISION PI_SPECIFICATION_MAJOR_REVISION |
#define MM_SPECIFICATION_MINOR_REVISION PI_SPECIFICATION_MINOR_REVISION |
typedef struct _EFI_MM_ENTRY_CONTEXT EFI_MM_ENTRY_CONTEXT |
Processor information and functionality needed by MM Foundation.
typedef VOID(EFIAPI * EFI_MM_ENTRY_POINT) (IN CONST EFI_MM_ENTRY_CONTEXT *MmEntryContext) |
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.
[in] | DispatchHandle | The unique handle assigned to this handler by MmiHandlerRegister(). |
[in] | Context | Points to an optional handler context which was specified when the handler was registered. |
[in,out] | CommBuffer | A pointer to a collection of data in memory that will be conveyed from a non-MM environment into an MM environment. |
[in,out] | CommBufferSize | The size of the CommBuffer. |
EFI_SUCCESS | The interrupt was handled and quiesced. No other handlers should still be called. |
EFI_WARN_INTERRUPT_SOURCE_QUIESCED | The interrupt has been quiesced but other handlers should still be called. |
EFI_WARN_INTERRUPT_SOURCE_PENDING | The interrupt is still pending and other handlers should still be called. |
EFI_INTERRUPT_PENDING | The 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.
[in] | SystemTable | A pointer to the MM System Table (MMST). |
[in] | Guid | A pointer to the GUID for the entry to add, update, or remove. |
[in] | Table | A pointer to the buffer of the table to add. |
[in] | TableSize | The size of the table to install. |
EFI_SUCCESS | The (Guid, Table) pair was added, updated, or removed. |
EFI_INVALID_PARAMETER | Guid is not valid. |
EFI_NOT_FOUND | An attempt was made to delete a non-existent entry. |
EFI_OUT_OF_RESOURCES | There 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 OPTIONAL, IN OUT VOID *CommBuffer OPTIONAL, IN OUT UINTN *CommBufferSize OPTIONAL) |
Manage MMI of a particular type.
[in] | HandlerType | Points to the handler type or NULL for root MMI handlers. |
[in] | Context | Points to an optional context buffer. |
[in,out] | CommBuffer | Points to the optional communication buffer. |
[in,out] | CommBufferSize | Points to the size of the optional communication buffer. |
EFI_WARN_INTERRUPT_SOURCE_PENDING | Interrupt source was processed successfully but not quiesced. |
EFI_INTERRUPT_PENDING | One or more SMI sources could not be quiesced. |
EFI_NOT_FOUND | Interrupt source was not handled or quiesced. |
EFI_SUCCESS | Interrupt 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 OPTIONAL, OUT EFI_HANDLE *DispatchHandle) |
Registers a handler to execute within MM.
[in] | Handler | Handler service function pointer. |
[in] | HandlerType | Points to the handler type or NULL for root MMI handlers. |
[out] | DispatchHandle | On return, contains a unique handle which can be used to later unregister the handler function. |
EFI_SUCCESS | MMI handler added successfully. |
EFI_INVALID_PARAMETER | Handler is NULL or DispatchHandle is NULL. |
typedef EFI_STATUS(EFIAPI * EFI_MM_INTERRUPT_UNREGISTER) (IN EFI_HANDLE DispatchHandle) |
Unregister a handler in MM.
[in] | DispatchHandle | The handle that was specified when the handler was registered. |
EFI_SUCCESS | Handler function was successfully unregistered. |
EFI_INVALID_PARAMETER | DispatchHandle 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) |
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.
[in] | Protocol | The unique ID of the protocol for which the event is to be registered. |
[in] | Function | Points to the notification function. |
[out] | Registration | A pointer to a memory location to receive the registration value. |
EFI_SUCCESS | Successfully returned the registration record that has been added or unhooked. |
EFI_INVALID_PARAMETER | Protocol is NULL or Registration is NULL. |
EFI_OUT_OF_RESOURCES | Not enough memory resource to finish the request. |
EFI_NOT_FOUND | If 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 OPTIONAL) |
This service lets the caller to get one distinct application processor (AP) to execute a caller-provided code stream while in MM.
[in] | Procedure | A pointer to the code stream to be run on the designated AP of the system. |
[in] | CpuNumber | The zero-based index of the processor number of the AP on which the code stream is supposed to run. |
[in,out] | ProcArguments | Allows the caller to pass a list of parameters to the code that is run by the AP. |
EFI_SUCCESS | The call was successful and the return parameters are valid. |
EFI_INVALID_PARAMETER | The input arguments are out of range. |
EFI_INVALID_PARAMETER | The CPU requested is not available on this SMI invocation. |
EFI_INVALID_PARAMETER | The CPU cannot support an additional service invocation. |
typedef struct _EFI_MM_SYSTEM_TABLE EFI_MM_SYSTEM_TABLE |