\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
);\r
\r
EFI_STATUS\r
&FfsFileHeader\r
);\r
if (!EFI_ERROR (Status)) {\r
- CopyMem (FileName, &FfsFileHeader->Name, sizeof (EFI_GUID));\r
Status = PeiProcessFile (\r
SectionType,\r
- FfsFileHeader,\r
+ &FfsFileHeader,\r
Pe32Data\r
);\r
+ CopyMem (FileName, &FfsFileHeader->Name, sizeof (EFI_GUID));\r
return Status;\r
}\r
Hob.Raw = GET_NEXT_HOB (Hob);\r
//\r
Status = PeiProcessFile (\r
EFI_SECTION_PE32,\r
- FfsHeader,\r
+ &FfsHeader,\r
&Pe32Data\r
);\r
\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
)\r
/*++\r
\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
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
}\r
}\r
//\r
&FfsFileHeader\r
);\r
if (!EFI_ERROR (Status)) {\r
- CopyMem (FileName, &FfsFileHeader->Name, sizeof (EFI_GUID));\r
Status = PeiProcessFile (\r
SectionType,\r
- FfsFileHeader,\r
+ &FfsFileHeader,\r
Pe32Data\r
);\r
+ CopyMem (FileName, &FfsFileHeader->Name, sizeof (EFI_GUID));\r
return Status;\r
}\r
Hob.Raw = GET_NEXT_HOB (Hob);\r
//\r
Status = PeiProcessFile (\r
EFI_SECTION_PE32,\r
- FfsHeader,\r
+ &FfsHeader,\r
&Pe32Data\r
);\r
\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
)\r
/*++\r
\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
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
}\r
}\r
//\r