]> git.proxmox.com Git - mirror_edk2.git/blame - MdePkg/Include/Protocol/MmConfiguration.h
UefiCpuPkg: Move AsmRelocateApLoopStart from Mpfuncs.nasm to AmdSev.nasm
[mirror_edk2.git] / MdePkg / Include / Protocol / MmConfiguration.h
CommitLineData
07c6a47e
ED
1/** @file\r
2 EFI MM Configuration Protocol as defined in the PI 1.5 specification.\r
3\r
4 This protocol is used to:\r
5 1) report the portions of MMRAM regions which cannot be used for the MMRAM heap.\r
6 2) register the MM Foundation entry point with the processor code. The entry\r
7 point will be invoked by the MM processor entry code.\r
8\r
9 Copyright (c) 2017, Intel Corporation. All rights reserved.<BR>\r
9344f092 10 SPDX-License-Identifier: BSD-2-Clause-Patent\r
07c6a47e
ED
11\r
12**/\r
13\r
14#ifndef _MM_CONFIGURATION_H_\r
15#define _MM_CONFIGURATION_H_\r
16\r
17#include <Pi/PiMmCis.h>\r
18\r
19#define EFI_MM_CONFIGURATION_PROTOCOL_GUID \\r
20 { \\r
21 0x26eeb3de, 0xb689, 0x492e, {0x80, 0xf0, 0xbe, 0x8b, 0xd7, 0xda, 0x4b, 0xa7 } \\r
22 }\r
23\r
2f88bd3a 24typedef struct _EFI_MM_CONFIGURATION_PROTOCOL EFI_MM_CONFIGURATION_PROTOCOL;\r
07c6a47e
ED
25\r
26/**\r
27 Register the MM Foundation entry point.\r
28\r
29 This function registers the MM Foundation entry point with the processor code. This entry point\r
30 will be invoked by the MM Processor entry code.\r
31\r
32 @param[in] This The EFI_MM_CONFIGURATION_PROTOCOL instance.\r
33 @param[in] MmEntryPoint MM Foundation entry point.\r
34\r
35 @retval EFI_SUCCESS Success to register MM Entry Point.\r
36 @retval EFI_INVALID_PARAMETER MmEntryPoint is NULL.\r
37**/\r
38typedef\r
39EFI_STATUS\r
40(EFIAPI *EFI_MM_REGISTER_MM_ENTRY)(\r
41 IN CONST EFI_MM_CONFIGURATION_PROTOCOL *This,\r
42 IN EFI_MM_ENTRY_POINT MmEntryPoint\r
43 );\r
44\r
45///\r
46/// The EFI MM Configuration Protocol is a mandatory protocol published by a DXE CPU driver to\r
47/// indicate which areas within MMRAM are reserved for use by the CPU for any purpose,\r
48/// such as stack, save state or MM entry point.\r
49///\r
50/// The RegistermmEntry() function allows the MM IPL DXE driver to register the MM\r
51/// Foundation entry point with the MM entry vector code.\r
52///\r
53struct _EFI_MM_CONFIGURATION_PROTOCOL {\r
54 ///\r
55 /// A pointer to an array MMRAM ranges used by the initial MM entry code.\r
56 ///\r
2f88bd3a
MK
57 EFI_MM_RESERVED_MMRAM_REGION *MmramReservedRegions;\r
58 EFI_MM_REGISTER_MM_ENTRY RegisterMmEntry;\r
07c6a47e
ED
59};\r
60\r
2f88bd3a 61extern EFI_GUID gEfiMmConfigurationProtocolGuid;\r
07c6a47e
ED
62\r
63#endif\r