]> git.proxmox.com Git - mirror_edk2.git/blame - MdePkg/Include/Ppi/MmConfiguration.h
MdePkg: Apply uncrustify changes
[mirror_edk2.git] / MdePkg / Include / Ppi / MmConfiguration.h
CommitLineData
d1fc3d7e
KQ
1/** @file\r
2 EFI MM Configuration PPI as defined in PI 1.5 specification.\r
3\r
4 This PPI 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) Microsoft Corporation.\r
10 SPDX-License-Identifier: BSD-2-Clause-Patent\r
11\r
12**/\r
13\r
14#ifndef MM_CONFIGURATION_PPI_H_\r
15#define MM_CONFIGURATION_PPI_H_\r
16\r
17#include <Pi/PiMultiPhase.h>\r
18\r
19#define EFI_PEI_MM_CONFIGURATION_PPI_GUID \\r
20 { \\r
21 0xc109319, 0xc149, 0x450e, { 0xa3, 0xe3, 0xb9, 0xba, 0xdd, 0x9d, 0xc3, 0xa4 } \\r
22 }\r
23\r
2f88bd3a 24typedef struct _EFI_PEI_MM_CONFIGURATION_PPI EFI_PEI_MM_CONFIGURATION_PPI;\r
d1fc3d7e
KQ
25\r
26/**\r
27 This function registers the MM Foundation entry point with the processor code. This entry point will be\r
28 invoked by the MM Processor entry code as defined in PI specification.\r
29\r
30 @param[in] This The EFI_PEI_MM_CONFIGURATION_PPI instance.\r
31 @param[in] MmEntryPoint MM Foundation entry point.\r
32\r
33 @retval EFI_SUCCESS The entry-point was successfully registered.\r
34\r
35**/\r
36typedef\r
37EFI_STATUS\r
2f88bd3a 38(EFIAPI *EFI_PEI_MM_REGISTER_MM_ENTRY)(\r
d1fc3d7e
KQ
39 IN CONST EFI_PEI_MM_CONFIGURATION_PPI *This,\r
40 IN EFI_MM_ENTRY_POINT MmEntryPoint\r
41 );\r
42\r
43///\r
44/// This PPI is a PPI published by a CPU PEIM to indicate which areas within MMRAM are reserved for use by\r
45/// the CPU for any purpose, such as stack, save state or MM entry point. If a platform chooses to let a CPU\r
46/// PEIM do MMRAM relocation, this PPI must be produced by this CPU PEIM.\r
47///\r
48/// The MmramReservedRegions points to an array of one or more EFI_MM_RESERVED_MMRAM_REGION structures, with\r
49/// the last structure having the MmramReservedSize set to 0. An empty array would contain only the last\r
50/// structure.\r
51///\r
52/// The RegisterMmEntry() function allows the MM IPL PEIM to register the MM Foundation entry point with the\r
53/// MM entry vector code.\r
54///\r
55struct _EFI_PEI_MM_CONFIGURATION_PPI {\r
2f88bd3a
MK
56 EFI_MM_RESERVED_MMRAM_REGION *MmramReservedRegions;\r
57 EFI_PEI_MM_REGISTER_MM_ENTRY RegisterMmEntry;\r
d1fc3d7e
KQ
58};\r
59\r
2f88bd3a 60extern EFI_GUID gEfiPeiMmConfigurationPpi;\r
d1fc3d7e
KQ
61\r
62#endif\r