]> git.proxmox.com Git - mirror_edk2.git/blame - MdePkg/Include/Ppi/SecPlatformInformation2.h
UefiCpuPkg: Move AsmRelocateApLoopStart from Mpfuncs.nasm to AmdSev.nasm
[mirror_edk2.git] / MdePkg / Include / Ppi / SecPlatformInformation2.h
CommitLineData
8c5f799b
JF
1/** @file\r
2 This file declares Sec Platform Information2 PPI.\r
3\r
4 This service is the primary handoff state into the PEI Foundation.\r
5 This service abstracts platform-specific information for many CPU's.\r
6\r
1f611c55 7Copyright (c) 2015 - 2016, Intel Corporation. All rights reserved.<BR>\r
9344f092 8SPDX-License-Identifier: BSD-2-Clause-Patent\r
8c5f799b
JF
9\r
10 @par Revision Reference:\r
1f611c55 11 This PPI is introduced from PI Version 1.4.\r
8c5f799b
JF
12\r
13**/\r
14\r
15#ifndef __SEC_PLATFORM_INFORMATION2_PPI_H__\r
16#define __SEC_PLATFORM_INFORMATION2_PPI_H__\r
17\r
18#include <Ppi/SecPlatformInformation.h>\r
19\r
20#define EFI_SEC_PLATFORM_INFORMATION2_GUID \\r
21 { \\r
22 0x9e9f374b, 0x8f16, 0x4230, {0x98, 0x24, 0x58, 0x46, 0xee, 0x76, 0x6a, 0x97 } \\r
23 }\r
24\r
25typedef struct _EFI_SEC_PLATFORM_INFORMATION2_PPI EFI_SEC_PLATFORM_INFORMATION2_PPI;\r
26\r
27///\r
28/// EFI_SEC_PLATFORM_INFORMATION_CPU.\r
29///\r
30typedef struct {\r
2f88bd3a
MK
31 UINT32 CpuLocation;\r
32 EFI_SEC_PLATFORM_INFORMATION_RECORD InfoRecord;\r
8c5f799b
JF
33} EFI_SEC_PLATFORM_INFORMATION_CPU;\r
34\r
35///\r
36/// EFI_SEC_PLATFORM_INFORMATION_RECORD2.\r
37///\r
38typedef struct {\r
39 ///\r
40 /// The CPU location would be the local APIC ID\r
41 ///\r
2f88bd3a
MK
42 UINT32 NumberOfCpus;\r
43 EFI_SEC_PLATFORM_INFORMATION_CPU CpuInstance[1];\r
8c5f799b
JF
44} EFI_SEC_PLATFORM_INFORMATION_RECORD2;\r
45\r
46/**\r
47 This interface conveys state information out of the Security (SEC) phase into PEI.\r
48\r
49 This service is published by the SEC phase.\r
50\r
51 @param PeiServices The pointer to the PEI Services Table.\r
52 @param StructureSize The pointer to the variable describing size of the input buffer.\r
53 @param PlatformInformationRecord2 The pointer to the EFI_SEC_PLATFORM_INFORMATION_RECORD2.\r
54\r
55 @retval EFI_SUCCESS The data was successfully returned.\r
56 @retval EFI_BUFFER_TOO_SMALL The buffer was too small. The current buffer size needed to\r
57 hold the record is returned in StructureSize.\r
58\r
59**/\r
60typedef\r
61EFI_STATUS\r
62(EFIAPI *EFI_SEC_PLATFORM_INFORMATION2)(\r
63 IN CONST EFI_PEI_SERVICES **PeiServices,\r
64 IN OUT UINT64 *StructureSize,\r
65 OUT EFI_SEC_PLATFORM_INFORMATION_RECORD2 *PlatformInformationRecord2\r
2f88bd3a 66 );\r
8c5f799b
JF
67\r
68///\r
69/// This service abstracts platform-specific information for many CPU's.\r
70/// It is the multi-processor equivalent of PlatformInformation for\r
1f611c55 71/// implementations that synchronize some, if not all CPU's in the SEC phase.\r
8c5f799b
JF
72///\r
73struct _EFI_SEC_PLATFORM_INFORMATION2_PPI {\r
2f88bd3a 74 EFI_SEC_PLATFORM_INFORMATION2 PlatformInformation2;\r
8c5f799b
JF
75};\r
76\r
2f88bd3a 77extern EFI_GUID gEfiSecPlatformInformation2PpiGuid;\r
8c5f799b
JF
78\r
79#endif\r