]>
Commit | Line | Data |
---|---|---|
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 | 24 | typedef 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 | |
36 | typedef\r | |
37 | EFI_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 | |
55 | struct _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 | 60 | extern EFI_GUID gEfiPeiMmConfigurationPpi;\r |
d1fc3d7e KQ |
61 | \r |
62 | #endif\r |