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_PHYSICAL_ADDRESS DxeCoreAddress;\r
UINT64 DxeCoreSize;\r
EFI_PHYSICAL_ADDRESS DxeCoreEntryPoint;\r
- EFI_PEI_PE_COFF_LOADER_PROTOCOL *PeiEfiPeiPeCoffLoader;\r
EFI_BOOT_MODE BootMode;\r
EFI_PEI_FV_HANDLE VolumeHandle;\r
EFI_PEI_FILE_HANDLE FileHandle;\r
// Now should have a HOB with the DXE core w/ the old HOB destroyed\r
//\r
}\r
-\r
- //\r
- // Install the PEI Protocols that are shared between PEI and DXE\r
- //\r
- PeiEfiPeiPeCoffLoader = (EFI_PEI_PE_COFF_LOADER_PROTOCOL *) GetPeCoffLoaderProtocol ();\r
- ASSERT (PeiEfiPeiPeCoffLoader != NULL);\r
\r
//\r
// If any FV contains an encapsulated FV extract that FV\r
);\r
\r
//\r
- // Add HOB for the PE/COFF Loader Protocol\r
- //\r
- BuildGuidDataHob (\r
- &gEfiPeiPeCoffLoaderGuid,\r
- (VOID *)&PeiEfiPeiPeCoffLoader,\r
- sizeof (VOID *)\r
- );\r
- //\r
// Report Status Code EFI_SW_PEI_PC_HANDOFF_TO_NEXT\r
//\r
REPORT_STATUS_CODE (\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
- );\r
- CopyMem (\r
- &FvInfoPpi->ParentFileName,\r
- &(((EFI_FFS_FILE_HEADER*)FileHandle)->Name),\r
- sizeof (EFI_GUID)\r
+ &(((EFI_FFS_FILE_HEADER*)FileHandle)->Name)\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
EFI_STATUS Status;\r
PE_COFF_LOADER_IMAGE_CONTEXT ImageContext;\r
VOID *Pe32Data;\r
- EFI_PEI_PE_COFF_LOADER_PROTOCOL *PeiEfiPeiPeCoffLoader;\r
-\r
- PeiEfiPeiPeCoffLoader = (EFI_PEI_PE_COFF_LOADER_PROTOCOL *)GetPeCoffLoaderProtocol ();\r
//\r
// First try to find the required section in this ffs file.\r
//\r
\r
ASSERT_EFI_ERROR (Status);\r
\r
- Status = PeiEfiPeiPeCoffLoader->GetImageInfo (PeiEfiPeiPeCoffLoader, &ImageContext);\r
+ Status = PeCoffLoaderGetImageInfo (&ImageContext);\r
if (EFI_ERROR (Status)) {\r
return Status;\r
}\r
//\r
// Load the image to our new buffer\r
//\r
- Status = PeiEfiPeiPeCoffLoader->LoadImage (PeiEfiPeiPeCoffLoader, &ImageContext);\r
+ Status = PeCoffLoaderLoadImage (&ImageContext);\r
if (EFI_ERROR (Status)) {\r
return Status;\r
}\r
//\r
// Relocate the image in our new buffer\r
//\r
- Status = PeiEfiPeiPeCoffLoader->RelocateImage (PeiEfiPeiPeCoffLoader, &ImageContext);\r
+ Status = PeCoffLoaderRelocateImage (&ImageContext);\r
if (EFI_ERROR (Status)) {\r
return Status;\r
}\r