summaryrefslogtreecommitdiff
path: root/Nt32Pkg/Library/Nt32PeCoffLoaderLib/Nt32PeCoffLoader.c
diff options
context:
space:
mode:
Diffstat (limited to 'Nt32Pkg/Library/Nt32PeCoffLoaderLib/Nt32PeCoffLoader.c')
-rw-r--r--Nt32Pkg/Library/Nt32PeCoffLoaderLib/Nt32PeCoffLoader.c35
1 files changed, 15 insertions, 20 deletions
diff --git a/Nt32Pkg/Library/Nt32PeCoffLoaderLib/Nt32PeCoffLoader.c b/Nt32Pkg/Library/Nt32PeCoffLoaderLib/Nt32PeCoffLoader.c
index 8eaa2aba43..3d5353b423 100644
--- a/Nt32Pkg/Library/Nt32PeCoffLoaderLib/Nt32PeCoffLoader.c
+++ b/Nt32Pkg/Library/Nt32PeCoffLoaderLib/Nt32PeCoffLoader.c
@@ -21,35 +21,30 @@ Abstract:
--*/
#include <PiPei.h>
+#include <Library/DebugLib.h>
#include <Guid/PeiPeCoffLoader.h>
-#include <Library/PeCoffLoaderLib.h>
+#include <Library/PeCoffLoaderLib.h>
+#include <Library/PeiServicesLib.h>
-EFI_PEI_PE_COFF_LOADER_PROTOCOL *mPeiEfiPeiPeCoffLoader;
+EFI_PEI_PE_COFF_LOADER_PROTOCOL *mPeiEfiPeiPeCoffLoader = NULL;
-EFI_STATUS
-EFIAPI
-PeCoffLoaderConstructor (
- IN EFI_FFS_FILE_HEADER *FfsHeader,
- IN EFI_PEI_SERVICES **PeiServices
- )
-{
- EFI_STATUS Status;
-
- Status = (*PeiServices)->LocatePpi (
- PeiServices,
- &gEfiPeiPeCoffLoaderGuid,
- 0,
- NULL,
- &mPeiEfiPeiPeCoffLoader
- );
- return Status;
-}
EFI_PEI_PE_COFF_LOADER_PROTOCOL *
EFIAPI
GetPeCoffLoaderProtocol (
)
{
+ EFI_STATUS Status;
+
+ if (mPeiEfiPeiPeCoffLoader == NULL) {
+ Status = PeiServicesLocatePpi(
+ &gEfiPeiPeCoffLoaderGuid,
+ 0,
+ NULL,
+ (VOID **) &mPeiEfiPeiPeCoffLoader
+ );
+ ASSERT_EFI_ERROR (Status);
+ }
return mPeiEfiPeiPeCoffLoader;
}