XenevaOS
Loading...
Searching...
No Matches
Classes | Macros | Typedefs | Variables
MmAccess.h File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  _EFI_MM_ACCESS_PROTOCOL
 

Macros

#define EFI_MM_ACCESS_PROTOCOL_GUID
 

Typedefs

typedef struct _EFI_MM_ACCESS_PROTOCOL EFI_MM_ACCESS_PROTOCOL
 
typedef EFI_STATUS(EFIAPIEFI_MM_OPEN) (IN EFI_MM_ACCESS_PROTOCOL *This)
 
typedef EFI_STATUS(EFIAPIEFI_MM_CLOSE) (IN EFI_MM_ACCESS_PROTOCOL *This)
 
typedef EFI_STATUS(EFIAPIEFI_MM_LOCK) (IN EFI_MM_ACCESS_PROTOCOL *This)
 
typedef EFI_STATUS(EFIAPIEFI_MM_CAPABILITIES) (IN CONST EFI_MM_ACCESS_PROTOCOL *This, IN OUT UINTN *MmramMapSize, IN OUT EFI_MMRAM_DESCRIPTOR *MmramMap)
 

Variables

EFI_GUID gEfiMmAccessProtocolGuid
 

Detailed Description

EFI MM Access Protocol as defined in the PI 1.5 specification.

This protocol is used to control the visibility of the MMRAM on the platform. It abstracts the location and characteristics of MMRAM. The expectation is that the north bridge or memory controller would publish this protocol.

The principal functionality found in the memory controller includes the following:

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.

Macro Definition Documentation

◆ EFI_MM_ACCESS_PROTOCOL_GUID

#define EFI_MM_ACCESS_PROTOCOL_GUID
Value:
{ \
0xc2702b74, 0x800c, 0x4131, {0x87, 0x46, 0x8f, 0xb5, 0xb8, 0x9c, 0xe4, 0xac } \
}

Typedef Documentation

◆ EFI_MM_ACCESS_PROTOCOL

◆ EFI_MM_CAPABILITIES

typedef EFI_STATUS(EFIAPI * EFI_MM_CAPABILITIES) (IN CONST EFI_MM_ACCESS_PROTOCOL *This, IN OUT UINTN *MmramMapSize, IN OUT EFI_MMRAM_DESCRIPTOR *MmramMap)

Queries the memory controller for the possible regions that will support MMRAM.

Parameters
[in]ThisThe EFI_MM_ACCESS_PROTOCOL instance.
[in,out]MmramMapSizeA pointer to the size, in bytes, of the MmramMemoryMap buffer.
[in,out]MmramMapA pointer to the buffer in which firmware places the current memory map.
Return values
EFI_SUCCESSThe chipset supported the given resource.
EFI_BUFFER_TOO_SMALLThe MmramMap parameter was too small. The current buffer size needed to hold the memory map is returned in MmramMapSize.

◆ EFI_MM_CLOSE

typedef EFI_STATUS(EFIAPI * EFI_MM_CLOSE) (IN EFI_MM_ACCESS_PROTOCOL *This)

Inhibits access to the MMRAM.

This function "closes" MMRAM so that it is not visible while outside of MM. The function should return EFI_UNSUPPORTED if the hardware does not support hiding of MMRAM.

Parameters
[in]ThisThe EFI_MM_ACCESS_PROTOCOL instance.
Return values
EFI_SUCCESSThe operation was successful.
EFI_UNSUPPORTEDThe system does not support opening and closing of MMRAM.
EFI_DEVICE_ERRORMMRAM cannot be closed.

◆ EFI_MM_LOCK

typedef EFI_STATUS(EFIAPI * EFI_MM_LOCK) (IN EFI_MM_ACCESS_PROTOCOL *This)

Inhibits access to the MMRAM.

This function prohibits access to the MMRAM region. This function is usually implemented such that it is a write-once operation.

Parameters
[in]ThisThe EFI_MM_ACCESS_PROTOCOL instance.
Return values
EFI_SUCCESSThe device was successfully locked.
EFI_UNSUPPORTEDThe system does not support locking of MMRAM.

◆ EFI_MM_OPEN

typedef EFI_STATUS(EFIAPI * EFI_MM_OPEN) (IN EFI_MM_ACCESS_PROTOCOL *This)

Opens the MMRAM area to be accessible by a boot-service driver.

This function "opens" MMRAM so that it is visible while not inside of MM. The function should return EFI_UNSUPPORTED if the hardware does not support hiding of MMRAM. The function should return EFI_DEVICE_ERROR if the MMRAM configuration is locked.

Parameters
[in]ThisThe EFI_MM_ACCESS_PROTOCOL instance.
Return values
EFI_SUCCESSThe operation was successful.
EFI_UNSUPPORTEDThe system does not support opening and closing of MMRAM.
EFI_DEVICE_ERRORMMRAM cannot be opened, perhaps because it is locked.

Variable Documentation

◆ gEfiMmAccessProtocolGuid

EFI_GUID gEfiMmAccessProtocolGuid
extern