/** @file This file declares Sec Platform Information2 PPI. This service is the primary handoff state into the PEI Foundation. This service abstracts platform-specific information for many CPU's. Copyright (c) 2015 - 2016, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent @par Revision Reference: This PPI is introduced from PI Version 1.4. **/ #ifndef __SEC_PLATFORM_INFORMATION2_PPI_H__ #define __SEC_PLATFORM_INFORMATION2_PPI_H__ #include #define EFI_SEC_PLATFORM_INFORMATION2_GUID \ { \ 0x9e9f374b, 0x8f16, 0x4230, {0x98, 0x24, 0x58, 0x46, 0xee, 0x76, 0x6a, 0x97 } \ } typedef struct _EFI_SEC_PLATFORM_INFORMATION2_PPI EFI_SEC_PLATFORM_INFORMATION2_PPI; /// /// EFI_SEC_PLATFORM_INFORMATION_CPU. /// typedef struct { UINT32 CpuLocation; EFI_SEC_PLATFORM_INFORMATION_RECORD InfoRecord; } EFI_SEC_PLATFORM_INFORMATION_CPU; /// /// EFI_SEC_PLATFORM_INFORMATION_RECORD2. /// typedef struct { /// /// The CPU location would be the local APIC ID /// UINT32 NumberOfCpus; EFI_SEC_PLATFORM_INFORMATION_CPU CpuInstance[1]; } EFI_SEC_PLATFORM_INFORMATION_RECORD2; /** This interface conveys state information out of the Security (SEC) phase into PEI. This service is published by the SEC phase. @param PeiServices The pointer to the PEI Services Table. @param StructureSize The pointer to the variable describing size of the input buffer. @param PlatformInformationRecord2 The pointer to the EFI_SEC_PLATFORM_INFORMATION_RECORD2. @retval EFI_SUCCESS The data was successfully returned. @retval EFI_BUFFER_TOO_SMALL The buffer was too small. The current buffer size needed to hold the record is returned in StructureSize. **/ typedef EFI_STATUS (EFIAPI *EFI_SEC_PLATFORM_INFORMATION2)( IN CONST EFI_PEI_SERVICES **PeiServices, IN OUT UINT64 *StructureSize, OUT EFI_SEC_PLATFORM_INFORMATION_RECORD2 *PlatformInformationRecord2 ); /// /// This service abstracts platform-specific information for many CPU's. /// It is the multi-processor equivalent of PlatformInformation for /// implementations that synchronize some, if not all CPU's in the SEC phase. /// struct _EFI_SEC_PLATFORM_INFORMATION2_PPI { EFI_SEC_PLATFORM_INFORMATION2 PlatformInformation2; }; extern EFI_GUID gEfiSecPlatformInformation2PpiGuid; #endif