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

Data Structures

struct  _EFI_PEI_MM_COMMUNICATION_PPI
 

Macros

#define EFI_PEI_MM_COMMUNICATION_PPI_GUID
 

Typedefs

typedef struct
_EFI_PEI_MM_COMMUNICATION_PPI 
EFI_PEI_MM_COMMUNICATION_PPI
 
typedef EFI_STATUS(EFIAPIEFI_PEI_MM_COMMUNICATE )(IN CONST EFI_PEI_MM_COMMUNICATION_PPI *This, IN OUT VOID *CommBuffer, IN OUT UINTN *CommSize)
 

Variables

EFI_GUID gEfiPeiMmCommunicationPpiGuid
 

Detailed Description

EFI MM Communication PPI definition.

This PPI provides a means of communicating between drivers outside of MM and MMI handlers inside of MM in PEI phase.

Copyright (c) 2010 - 2018, Intel Corporation. All rights reserved.
Copyright (c) Microsoft Corporation.

SPDX-License-Identifier: BSD-2-Clause-Patent

Macro Definition Documentation

#define EFI_PEI_MM_COMMUNICATION_PPI_GUID
Value:
{ \
0xae933e1c, 0xcc47, 0x4e38, { 0x8f, 0xe, 0xe2, 0xf6, 0x1d, 0x26, 0x5, 0xdf } \
}

Typedef Documentation

typedef EFI_STATUS(EFIAPI * EFI_PEI_MM_COMMUNICATE)(IN CONST EFI_PEI_MM_COMMUNICATION_PPI *This, IN OUT VOID *CommBuffer, IN OUT UINTN *CommSize)

Communicates with a registered handler.

This function provides a service to send and receive messages from a registered PEI service. The EFI_PEI_MM_COMMUNICATION_PPI driver is responsible for doing any of the copies such that the data lives in PEI-service-accessible RAM.

A given implementation of the EFI_PEI_MM_COMMUNICATION_PPI may choose to use the EFI_MM_CONTROL_PPI for effecting the mode transition, or it may use some other method.

The agent invoking the communication interface must be physical/virtually 1:1 mapped.

To avoid confusion in interpreting frames, the CommBuffer parameter should always begin with EFI_MM_COMMUNICATE_HEADER. The header data is mandatory for messages sent into the MM agent.

Once inside of MM, the MM infrastructure will call all registered handlers with the same HandlerType as the GUID specified by HeaderGuid and the CommBuffer pointing to Data.

This function is not reentrant.

Parameters
[in]ThisThe EFI_PEI_MM_COMMUNICATION_PPI instance.
[in]CommBufferPointer to the buffer to convey into MMRAM.
[in]CommSizeThe size of the data buffer being passed in. On exit, the size of data being returned. Zero if the handler does not wish to reply with any data.
Return values
EFI_SUCCESSThe message was successfully posted.
EFI_INVALID_PARAMETERThe buffer was NULL.

Variable Documentation

EFI_GUID gEfiPeiMmCommunicationPpiGuid