NULL\r
);\r
\r
- if (EFI_ERROR (Status) && (BootMode != BOOT_ON_S3_RESUME)) { \r
+ if (EFI_ERROR (Status) && (BootMode != BOOT_ON_S3_RESUME)) {\r
//\r
// The DxeIpl has not yet been shadowed\r
//\r
);\r
\r
DEBUG ((EFI_D_INFO, "DXE Core Entry\n"));\r
- SwitchStack (\r
+ SwitchIplStacks (\r
(SWITCH_STACK_ENTRY_POINT)(UINTN)DxeCoreEntryPoint,\r
HobList.Raw,\r
- (VOID *) (UINTN) BspStore,\r
- TopOfStack\r
+ NULL,\r
+ TopOfStack,\r
+ (VOID *) (UINTN) BspStore\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