]> git.proxmox.com Git - mirror_edk2.git/blame - EdkCompatibilityPkg/Foundation/Guid/PeiPeCoffLoader/PeiPeCoffLoader.h
Update the copyright notice format
[mirror_edk2.git] / EdkCompatibilityPkg / Foundation / Guid / PeiPeCoffLoader / PeiPeCoffLoader.h
CommitLineData
3eb9473e 1/*++\r
2\r
f57387d5
HT
3Copyright (c) 2005 - 2006, Intel Corporation. All rights reserved.<BR>\r
4This program and the accompanying materials \r
3eb9473e 5are licensed and made available under the terms and conditions of the BSD License \r
6which accompanies this distribution. The full text of the license may be found at \r
7http://opensource.org/licenses/bsd-license.php \r
8 \r
9THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, \r
10WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. \r
11\r
12Module Name:\r
13 \r
14 PeiPeCoffLoader.h\r
15 \r
16Abstract:\r
17\r
18 GUID for the PE/COFF Loader APIs shared between PEI and DXE\r
19\r
20--*/\r
21\r
22#ifndef _PEI_PE_COFF_LOADER_H_\r
23#define _PEI_PE_COFF_LOADER_H_\r
24\r
25#include "EfiImage.h"\r
26\r
27#define EFI_PEI_PE_COFF_LOADER_GUID \\r
7ccf38a3 28 { 0xd8117cff, 0x94a6, 0x11d4, {0x9a, 0x3a, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d} }\r
3eb9473e 29\r
30EFI_FORWARD_DECLARATION (EFI_PEI_PE_COFF_LOADER_PROTOCOL);\r
31\r
32#define EFI_IMAGE_ERROR_SUCCESS 0\r
33#define EFI_IMAGE_ERROR_IMAGE_READ 1 \r
34#define EFI_IMAGE_ERROR_INVALID_PE_HEADER_SIGNATURE 2\r
35#define EFI_IMAGE_ERROR_INVALID_MACHINE_TYPE 3\r
36#define EFI_IMAGE_ERROR_INVALID_SUBSYSTEM 4\r
37#define EFI_IMAGE_ERROR_INVALID_IMAGE_ADDRESS 5\r
38#define EFI_IMAGE_ERROR_INVALID_IMAGE_SIZE 6\r
39#define EFI_IMAGE_ERROR_INVALID_SECTION_ALIGNMENT 7\r
40#define EFI_IMAGE_ERROR_SECTION_NOT_LOADED 8\r
41#define EFI_IMAGE_ERROR_FAILED_RELOCATION 9\r
42#define EFI_IMAGE_ERROR_FAILED_ICACHE_FLUSH 10\r
43\r
44typedef\r
45EFI_STATUS\r
46(EFIAPI *EFI_PEI_PE_COFF_LOADER_READ_FILE) (\r
47 IN VOID *FileHandle,\r
48 IN UINTN FileOffset,\r
49 IN OUT UINTN *ReadSize,\r
50 OUT VOID *Buffer\r
51 );\r
52\r
53typedef struct {\r
54 EFI_PHYSICAL_ADDRESS ImageAddress;\r
55 UINT64 ImageSize;\r
56 EFI_PHYSICAL_ADDRESS DestinationAddress;\r
57 EFI_PHYSICAL_ADDRESS EntryPoint;\r
58 EFI_PEI_PE_COFF_LOADER_READ_FILE ImageRead;\r
59 VOID *Handle;\r
60 VOID *FixupData;\r
61 UINT32 SectionAlignment;\r
62 UINT32 PeCoffHeaderOffset;\r
63 UINT32 DebugDirectoryEntryRva;\r
64 VOID *CodeView;\r
65 CHAR8 *PdbPointer;\r
66 UINTN SizeOfHeaders;\r
67 UINT32 ImageCodeMemoryType;\r
68 UINT32 ImageDataMemoryType;\r
69 UINT32 ImageError;\r
70 UINTN FixupDataSize;\r
71 UINT16 Machine;\r
72 UINT16 ImageType;\r
73 BOOLEAN RelocationsStripped;\r
74 BOOLEAN IsTeImage;\r
75#ifdef EFI_NT_EMULATOR\r
76 VOID **ModHandle;\r
77#endif\r
78} EFI_PEI_PE_COFF_LOADER_IMAGE_CONTEXT;\r
79\r
80typedef \r
81EFI_STATUS\r
82(EFIAPI *EFI_PEI_PE_COFF_LOADER_GET_IMAGE_INFO) (\r
83 IN EFI_PEI_PE_COFF_LOADER_PROTOCOL *This,\r
84 IN OUT EFI_PEI_PE_COFF_LOADER_IMAGE_CONTEXT *ImageContext\r
85 );\r
86\r
87typedef \r
88EFI_STATUS\r
89(EFIAPI *EFI_PEI_PE_COFF_LOADER_LOAD_IMAGE) (\r
90 IN EFI_PEI_PE_COFF_LOADER_PROTOCOL *This,\r
91 IN OUT EFI_PEI_PE_COFF_LOADER_IMAGE_CONTEXT *ImageContext\r
92 );\r
93\r
94typedef \r
95EFI_STATUS\r
96(EFIAPI *EFI_PEI_PE_COFF_LOADER_RELOCATE_IMAGE) (\r
97 IN EFI_PEI_PE_COFF_LOADER_PROTOCOL *This,\r
98 IN OUT EFI_PEI_PE_COFF_LOADER_IMAGE_CONTEXT *ImageContext\r
99 );\r
100\r
101typedef \r
102EFI_STATUS\r
103(EFIAPI *EFI_PEI_PE_COFF_LOADER_UNLOAD_IMAGE) (\r
104 IN EFI_PEI_PE_COFF_LOADER_IMAGE_CONTEXT *ImageContext\r
105 );\r
106\r
b9bbec4f 107struct _EFI_PEI_PE_COFF_LOADER_PROTOCOL {\r
3eb9473e 108 EFI_PEI_PE_COFF_LOADER_GET_IMAGE_INFO GetImageInfo;\r
109 EFI_PEI_PE_COFF_LOADER_LOAD_IMAGE LoadImage;\r
110 EFI_PEI_PE_COFF_LOADER_RELOCATE_IMAGE RelocateImage;\r
111 EFI_PEI_PE_COFF_LOADER_UNLOAD_IMAGE UnloadImage;\r
b9bbec4f 112};\r
3eb9473e 113\r
114extern EFI_GUID gEfiPeiPeCoffLoaderGuid;\r
115\r
116#endif\r