]> git.proxmox.com Git - mirror_edk2.git/blob - MdeModulePkg/Library/PeiDxePeCoffLoaderLib/PeCoffLoader.c
remove some comments introduced by tools.
[mirror_edk2.git] / MdeModulePkg / Library / PeiDxePeCoffLoaderLib / PeCoffLoader.c
1 /*++
2
3 Copyright (c) 2006 - 2007, Intel Corporation
4 All rights reserved. This program and the accompanying materials
5 are licensed and made available under the terms and conditions of the BSD License
6 which accompanies this distribution. The full text of the license may be found at
7 http://opensource.org/licenses/bsd-license.php
8
9 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
10 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
11
12 Module Name:
13
14 EdkPeCoffLoader.c
15
16 Abstract:
17
18 Wrap the Base PE/COFF loader with the PE COFF Protocol
19
20
21 --*/
22
23
24 #include <PiPei.h>
25
26 #include <Guid/PeiPeCoffLoader.h>
27
28 #include <Library/PeCoffLib.h>
29
30 #include <IndustryStandard/PeImage.h>
31
32
33 STATIC
34 EFI_STATUS
35 EFIAPI
36 PeCoffLoaderLibGetImageInfo (
37 IN EFI_PEI_PE_COFF_LOADER_PROTOCOL *This,
38 IN OUT PE_COFF_LOADER_IMAGE_CONTEXT *ImageContext
39 )
40 {
41 EFI_STATUS Status;
42
43 Status = PeCoffLoaderGetImageInfo (ImageContext);
44 if (EFI_ERROR (Status)) {
45 return Status;
46 }
47
48 switch (ImageContext->ImageType) {
49
50 case EFI_IMAGE_SUBSYSTEM_EFI_APPLICATION:
51 ImageContext->ImageCodeMemoryType = EfiLoaderCode;
52 ImageContext->ImageDataMemoryType = EfiLoaderData;
53 break;
54
55 case EFI_IMAGE_SUBSYSTEM_EFI_BOOT_SERVICE_DRIVER:
56 ImageContext->ImageCodeMemoryType = EfiBootServicesCode;
57 ImageContext->ImageDataMemoryType = EfiBootServicesData;
58 break;
59
60 case EFI_IMAGE_SUBSYSTEM_EFI_RUNTIME_DRIVER:
61 case EFI_IMAGE_SUBSYSTEM_SAL_RUNTIME_DRIVER:
62 ImageContext->ImageCodeMemoryType = EfiRuntimeServicesCode;
63 ImageContext->ImageDataMemoryType = EfiRuntimeServicesData;
64 break;
65
66 default:
67 ImageContext->ImageError = IMAGE_ERROR_INVALID_SUBSYSTEM;
68 return RETURN_UNSUPPORTED;
69 }
70
71 return Status;
72 }
73
74 STATIC
75 EFI_STATUS
76 EFIAPI
77 PeCoffLoaderLibLoadImage (
78 IN EFI_PEI_PE_COFF_LOADER_PROTOCOL *This,
79 IN OUT PE_COFF_LOADER_IMAGE_CONTEXT *ImageContext
80 )
81 {
82 return PeCoffLoaderLoadImage (ImageContext);
83 }
84
85 STATIC
86 EFI_STATUS
87 EFIAPI
88 PeCoffLoaderLibRelocateImage (
89 IN EFI_PEI_PE_COFF_LOADER_PROTOCOL *This,
90 IN OUT PE_COFF_LOADER_IMAGE_CONTEXT *ImageContext
91 )
92 {
93 return PeCoffLoaderRelocateImage (ImageContext);
94 }
95
96 STATIC
97 EFI_STATUS
98 EFIAPI
99 PeCoffLoaderLibUnloadimage (
100 IN EFI_PEI_PE_COFF_LOADER_PROTOCOL *This,
101 IN PE_COFF_LOADER_IMAGE_CONTEXT *ImageContext
102 )
103 {
104 return EFI_SUCCESS;
105 }
106
107
108 EFI_PEI_PE_COFF_LOADER_PROTOCOL mPeiEfiPeiPeCoffLoader = {
109 PeCoffLoaderLibGetImageInfo,
110 PeCoffLoaderLibLoadImage,
111 PeCoffLoaderLibRelocateImage,
112 PeCoffLoaderLibUnloadimage
113 };
114
115 EFI_PEI_PE_COFF_LOADER_PROTOCOL *
116 EFIAPI
117 GetPeCoffLoaderProtocol (
118 )
119 {
120 return &mPeiEfiPeiPeCoffLoader;
121 }
122
123