]> git.proxmox.com Git - mirror_edk2.git/blobdiff - Nt32Pkg/Library/Nt32PeCoffLoaderLib/Nt32PeCoffLoader.c
Merge branch of PI tree to main trunk
[mirror_edk2.git] / Nt32Pkg / Library / Nt32PeCoffLoaderLib / Nt32PeCoffLoader.c
index 8eaa2aba432bbd929e07f62830c832c19f0842c8..3d5353b4238082fc981734edaf5cc97dd62f29ad 100644 (file)
@@ -21,35 +21,30 @@ Abstract:
 --*/\r
 \r
 #include <PiPei.h>\r
+#include <Library/DebugLib.h>\r
 #include <Guid/PeiPeCoffLoader.h>\r
-#include <Library/PeCoffLoaderLib.h>\r
+#include <Library/PeCoffLoaderLib.h>  \r
+#include <Library/PeiServicesLib.h>\r
 \r
 \r
-EFI_PEI_PE_COFF_LOADER_PROTOCOL  *mPeiEfiPeiPeCoffLoader;\r
+EFI_PEI_PE_COFF_LOADER_PROTOCOL  *mPeiEfiPeiPeCoffLoader = NULL;\r
 \r
-EFI_STATUS\r
-EFIAPI\r
-PeCoffLoaderConstructor (\r
-  IN EFI_FFS_FILE_HEADER      *FfsHeader,\r
-  IN EFI_PEI_SERVICES          **PeiServices\r
-  )\r
-{\r
-  EFI_STATUS  Status;\r
-\r
-  Status = (*PeiServices)->LocatePpi (\r
-                            PeiServices,\r
-                            &gEfiPeiPeCoffLoaderGuid,\r
-                            0,\r
-                            NULL,\r
-                            &mPeiEfiPeiPeCoffLoader\r
-                            );\r
-  return Status;\r
-}\r
 \r
 EFI_PEI_PE_COFF_LOADER_PROTOCOL *\r
 EFIAPI\r
 GetPeCoffLoaderProtocol (\r
   )\r
 {\r
+  EFI_STATUS Status;\r
+  \r
+  if (mPeiEfiPeiPeCoffLoader == NULL) {\r
+    Status = PeiServicesLocatePpi(\r
+                              &gEfiPeiPeCoffLoaderGuid,\r
+                              0,\r
+                              NULL,\r
+                              (VOID **) &mPeiEfiPeiPeCoffLoader\r
+                              );\r
+    ASSERT_EFI_ERROR (Status);\r
+   }\r
   return mPeiEfiPeiPeCoffLoader;\r
 }\r