git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@543
6f19259b-4bc3-4df7-8a09-
765794883524
\r
EFI_STATUS\r
PeiProcessFile (\r
\r
EFI_STATUS\r
PeiProcessFile (\r
- IN UINT16 SectionType,\r
- IN EFI_FFS_FILE_HEADER *FfsFileHeader,\r
- OUT VOID **Pe32Data\r
+ IN UINT16 SectionType,\r
+ IN OUT EFI_FFS_FILE_HEADER **RealFfsFileHeader,\r
+ OUT VOID **Pe32Data\r
&FfsFileHeader\r
);\r
if (!EFI_ERROR (Status)) {\r
&FfsFileHeader\r
);\r
if (!EFI_ERROR (Status)) {\r
- CopyMem (FileName, &FfsFileHeader->Name, sizeof (EFI_GUID));\r
Status = PeiProcessFile (\r
SectionType,\r
Status = PeiProcessFile (\r
SectionType,\r
+ CopyMem (FileName, &FfsFileHeader->Name, sizeof (EFI_GUID));\r
return Status;\r
}\r
Hob.Raw = GET_NEXT_HOB (Hob);\r
return Status;\r
}\r
Hob.Raw = GET_NEXT_HOB (Hob);\r
//\r
Status = PeiProcessFile (\r
EFI_SECTION_PE32,\r
//\r
Status = PeiProcessFile (\r
EFI_SECTION_PE32,\r
\r
EFI_STATUS\r
PeiProcessFile (\r
\r
EFI_STATUS\r
PeiProcessFile (\r
- IN UINT16 SectionType,\r
- IN EFI_FFS_FILE_HEADER *FfsFileHeader,\r
- OUT VOID **Pe32Data\r
+ IN UINT16 SectionType,\r
+ IN OUT EFI_FFS_FILE_HEADER **RealFfsFileHeader,\r
+ OUT VOID **Pe32Data\r
EFI_GUID TempGuid;\r
EFI_FIRMWARE_VOLUME_HEADER *FvHeader;\r
EFI_COMPRESSION_SECTION *CompressionSection;\r
EFI_GUID TempGuid;\r
EFI_FIRMWARE_VOLUME_HEADER *FvHeader;\r
EFI_COMPRESSION_SECTION *CompressionSection;\r
+ EFI_FFS_FILE_HEADER *FfsFileHeader;\r
+ \r
+ FfsFileHeader = *RealFfsFileHeader;\r
\r
Status = PeiServicesFfsFindSectionData (\r
EFI_SECTION_COMPRESSION,\r
\r
Status = PeiServicesFfsFindSectionData (\r
EFI_SECTION_COMPRESSION,\r
return EFI_NOT_FOUND;\r
}\r
\r
return EFI_NOT_FOUND;\r
}\r
\r
- return PeiProcessFile (SectionType, FfsFileHeader, Pe32Data);\r
+ //\r
+ // Reture the FfsHeader that contain Pe32Data.\r
+ //\r
+ *RealFfsFileHeader = FfsFileHeader;\r
+ return PeiProcessFile (SectionType, RealFfsFileHeader, Pe32Data);\r
&FfsFileHeader\r
);\r
if (!EFI_ERROR (Status)) {\r
&FfsFileHeader\r
);\r
if (!EFI_ERROR (Status)) {\r
- CopyMem (FileName, &FfsFileHeader->Name, sizeof (EFI_GUID));\r
Status = PeiProcessFile (\r
SectionType,\r
Status = PeiProcessFile (\r
SectionType,\r
+ CopyMem (FileName, &FfsFileHeader->Name, sizeof (EFI_GUID));\r
return Status;\r
}\r
Hob.Raw = GET_NEXT_HOB (Hob);\r
return Status;\r
}\r
Hob.Raw = GET_NEXT_HOB (Hob);\r
//\r
Status = PeiProcessFile (\r
EFI_SECTION_PE32,\r
//\r
Status = PeiProcessFile (\r
EFI_SECTION_PE32,\r
\r
EFI_STATUS\r
PeiProcessFile (\r
\r
EFI_STATUS\r
PeiProcessFile (\r
- IN UINT16 SectionType,\r
- IN EFI_FFS_FILE_HEADER *FfsFileHeader,\r
- OUT VOID **Pe32Data\r
+ IN UINT16 SectionType,\r
+ IN OUT EFI_FFS_FILE_HEADER **RealFfsFileHeader,\r
+ OUT VOID **Pe32Data\r
EFI_GUID TempGuid;\r
EFI_FIRMWARE_VOLUME_HEADER *FvHeader;\r
EFI_COMPRESSION_SECTION *CompressionSection;\r
EFI_GUID TempGuid;\r
EFI_FIRMWARE_VOLUME_HEADER *FvHeader;\r
EFI_COMPRESSION_SECTION *CompressionSection;\r
+ EFI_FFS_FILE_HEADER *FfsFileHeader;\r
+ \r
+ FfsFileHeader = *RealFfsFileHeader;\r
\r
Status = PeiServicesFfsFindSectionData (\r
EFI_SECTION_COMPRESSION,\r
\r
Status = PeiServicesFfsFindSectionData (\r
EFI_SECTION_COMPRESSION,\r
return EFI_NOT_FOUND;\r
}\r
\r
return EFI_NOT_FOUND;\r
}\r
\r
- return PeiProcessFile (SectionType, FfsFileHeader, Pe32Data);\r
+ //\r
+ // Reture the FfsHeader that contain Pe32Data.\r
+ //\r
+ *RealFfsFileHeader = FfsFileHeader;\r
+ return PeiProcessFile (SectionType, RealFfsFileHeader, Pe32Data);\r