]> git.proxmox.com Git - mirror_edk2.git/blobdiff - EdkModulePkg/Core/DxeIplPeim/DxeLoad.c
1. Added Non-existing.c in BaseLib to assert no invocations of SwitchStack() on IPF.
[mirror_edk2.git] / EdkModulePkg / Core / DxeIplPeim / DxeLoad.c
index 78008412759d21419033611e5ad08e952a8ddd66..c53a7316c9432d3b103cb968a2a12c176609e73b 100644 (file)
@@ -130,7 +130,7 @@ Returns:
              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
@@ -396,11 +396,12 @@ Returns:
     );\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
@@ -470,12 +471,12 @@ Returns:
                &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
@@ -683,7 +684,7 @@ Returns:
   //\r
   Status = PeiProcessFile (\r
             EFI_SECTION_PE32,\r
-            FfsHeader,\r
+            &FfsHeader,\r
             &Pe32Data\r
             );\r
 \r
@@ -706,9 +707,9 @@ Returns:
 \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
@@ -756,6 +757,9 @@ Returns:
   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
@@ -950,7 +954,11 @@ Returns:
               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