16 (EFI_PEI_PPI_DESCRIPTOR_PPI | EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST),
17 &gEfiSecPlatformInformationPpiGuid,
18 &mSecPlatformInformation
26 (EFI_PEI_PPI_DESCRIPTOR_PPI | EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST),
27 &gEfiSecPlatformInformation2PpiGuid,
28 &mSecPlatformInformation2
43 IN OUT UINT64 *StructureSize,
44 IN OUT VOID *StructureBuffer
52 if (GuidHob ==
NULL) {
57 DataInHob = GET_GUID_HOB_DATA (GuidHob);
58 DataSize = GET_GUID_HOB_DATA_SIZE (GuidHob);
63 if ((*StructureSize) < (UINT64)DataSize) {
64 *StructureSize = (UINT64)DataSize;
65 return EFI_BUFFER_TOO_SMALL;
68 *StructureSize = (UINT64)DataSize;
69 CopyMem (StructureBuffer, DataInHob, DataSize);
88 IN OUT UINT64 *StructureSize,
111 IN OUT UINT64 *StructureSize,
115 return GetBistFromHob (StructureSize, PlatformInformationRecord2);
139 OUT VOID **BistInformationData,
140 OUT UINT64 *BistInformationSize OPTIONAL
146 UINT64 InformationSize;
152 (VOID **)&SecPlatformInformation2Ppi
154 if (Status == EFI_NOT_FOUND) {
155 return EFI_NOT_FOUND;
164 Status = SecPlatformInformation2Ppi->PlatformInformation2 (
169 if (Status == EFI_BUFFER_TOO_SMALL) {
171 (
UINTN)InformationSize,
178 Status = SecPlatformInformation2Ppi->PlatformInformation2 (
185 if (BistInformationSize !=
NULL) {
186 *BistInformationSize = InformationSize;
195 return EFI_DEVICE_ERROR;
209 UINT64 BistInformationSize;
210 VOID *BistInformationData;
216 &gEfiSecPlatformInformation2PpiGuid,
217 &SecInformationDescriptor,
218 &BistInformationData,
225 (
UINTN)BistInformationSize
233 SecInformationDescriptor,
234 &mPeiSecPlatformInformation2
238 if (Status == EFI_NOT_FOUND) {
241 &gEfiSecPlatformInformationPpiGuid,
242 &SecInformationDescriptor,
243 &BistInformationData,
250 (
UINTN)BistInformationSize
258 SecInformationDescriptor,
259 &mPeiSecPlatformInformation
261 }
else if (Status == EFI_NOT_FOUND) {
CONST EFI_PEI_SERVICES **EFIAPI GetPeiServicesTablePointer(VOID)
VOID *EFIAPI GetFirstGuidHob(IN CONST EFI_GUID *Guid)
VOID *EFIAPI BuildGuidDataHob(IN CONST EFI_GUID *Guid, IN VOID *Data, IN UINTN DataLength)
VOID *EFIAPI CopyMem(OUT VOID *DestinationBuffer, IN CONST VOID *SourceBuffer, IN UINTN Length)
EFI_STATUS EFIAPI SecPlatformInformation2(IN CONST EFI_PEI_SERVICES **PeiServices, IN OUT UINT64 *StructureSize, OUT EFI_SEC_PLATFORM_INFORMATION_RECORD2 *PlatformInformationRecord2)
EFI_STATUS EFIAPI PeiServicesAllocatePool(IN UINTN Size, OUT VOID **Buffer)
EFI_STATUS EFIAPI PeiServicesLocatePpi(IN CONST EFI_GUID *Guid, IN UINTN Instance, IN OUT EFI_PEI_PPI_DESCRIPTOR **PpiDescriptor, IN OUT VOID **Ppi)
EFI_STATUS EFIAPI PeiServicesReInstallPpi(IN CONST EFI_PEI_PPI_DESCRIPTOR *OldPpi, IN CONST EFI_PEI_PPI_DESCRIPTOR *NewPpi)
#define ASSERT_EFI_ERROR(StatusParameter)
VOID RepublishSecPlatformInformationPpi(VOID)
EFI_STATUS EFIAPI SecPlatformInformationBist(IN CONST EFI_PEI_SERVICES **PeiServices, IN OUT UINT64 *StructureSize, OUT EFI_SEC_PLATFORM_INFORMATION_RECORD *PlatformInformationRecord)
EFI_STATUS EFIAPI SecPlatformInformation2Bist(IN CONST EFI_PEI_SERVICES **PeiServices, IN OUT UINT64 *StructureSize, OUT EFI_SEC_PLATFORM_INFORMATION_RECORD2 *PlatformInformationRecord2)
EFI_STATUS GetBistFromHob(IN OUT UINT64 *StructureSize, IN OUT VOID *StructureBuffer)
EFI_STATUS GetBistInfoFromPpi(IN CONST EFI_PEI_SERVICES **PeiServices, IN CONST EFI_GUID *Guid, OUT EFI_PEI_PPI_DESCRIPTOR **PpiDescriptor, OUT VOID **BistInformationData, OUT UINT64 *BistInformationSize OPTIONAL)