NULL\r
};\r
\r
-STATIC EFI_PEI_FIRMWARE_VOLUME_INFO_PPI mFvInfoPpiTemplate = {\r
- EFI_FIRMWARE_FILE_SYSTEM2_GUID,\r
- NULL,\r
- 0, //FvInfoSize\r
- NULL, //ParentFvName\r
- NULL //ParentFileName;\r
-};\r
-\r
/**\r
Initializes the Dxe Ipl PPI\r
\r
EFI_FIRMWARE_VOLUME_IMAGE_SECTION *SectionHeader;\r
VOID *DstBuffer;\r
UINT32 FvAlignment;\r
- EFI_PEI_FIRMWARE_VOLUME_INFO_PPI *FvInfoPpi;\r
- EFI_PEI_PPI_DESCRIPTOR *FvInfoPpiDescriptor;\r
\r
Status = EFI_NOT_FOUND;\r
Index = 0;\r
//\r
PeiServicesFfsGetVolumeInfo (&VolumeHandle, &VolumeInfo);\r
\r
- //\r
- // Prepare to install FirmwareVolumeInfo PPI to expose new FV to PeiCore.\r
- //\r
- FvInfoPpi = AllocateCopyPool (sizeof (EFI_PEI_FIRMWARE_VOLUME_INFO_PPI), &mFvInfoPpiTemplate);\r
- ASSERT(FvInfoPpi != NULL);\r
-\r
- FvInfoPpi->FvInfo = (VOID*)FvHeader;\r
- FvInfoPpi->FvInfoSize = (UINT32)FvHeader->FvLength;\r
- CopyMem (\r
- &FvInfoPpi->ParentFvName,\r
+ PeiPiLibBuildPiFvInfoPpi (\r
+ (EFI_PHYSICAL_ADDRESS) FvHeader,\r
+ FvHeader->FvLength,\r
&(VolumeInfo.FvName),\r
- sizeof (EFI_GUID)\r
+ &(((EFI_FFS_FILE_HEADER*)FileHandle)->Name)\r
);\r
- CopyMem (\r
- &FvInfoPpi->ParentFileName,\r
- &(((EFI_FFS_FILE_HEADER*)FileHandle)->Name),\r
- sizeof (EFI_GUID)\r
- );\r
-\r
- FvInfoPpiDescriptor = AllocatePool (sizeof(EFI_PEI_PPI_DESCRIPTOR));\r
- ASSERT (FvInfoPpiDescriptor != NULL);\r
- \r
- FvInfoPpiDescriptor->Flags = EFI_PEI_PPI_DESCRIPTOR_PPI|EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST;\r
- FvInfoPpiDescriptor->Guid = &gEfiPeiFirmwareVolumeInfoPpiGuid;\r
- FvInfoPpiDescriptor->Ppi = (VOID *) FvInfoPpi;\r
-\r
- Status = PeiServicesInstallPpi (FvInfoPpiDescriptor);\r
+ \r
ASSERT_EFI_ERROR (Status);\r
\r
//\r