]> git.proxmox.com Git - mirror_edk2.git/blame - EdkModulePkg/Include/Protocol/LoadPe32Image.h
Initial import.
[mirror_edk2.git] / EdkModulePkg / Include / Protocol / LoadPe32Image.h
CommitLineData
878ddf1f 1/*++\r
2\r
3Copyright (c) 2006, Intel Corporation \r
4All rights reserved. This program and the accompanying materials \r
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 LoadPe32Image.h\r
14\r
15Abstract:\r
16 Load File protocol as defined in the EFI 1.0 specification.\r
17\r
18 Load file protocol exists to supports the addition of new boot devices, \r
19 and to support booting from devices that do not map well to file system. \r
20 Network boot is done via a LoadFile protocol.\r
21\r
22 EFI 1.0 can boot from any device that produces a LoadFile protocol.\r
23\r
24--*/\r
25\r
26#ifndef __LOAD_PE32_IMAGE_H__\r
27#define __LOAD_PE32_IMAGE_H__\r
28\r
29#define PE32_IMAGE_PROTOCOL_GUID \\r
30 {0x5cb5c776,0x60d5,0x45ee,{0x88,0x3c,0x45,0x27,0x8,0xcd,0x74,0x3f }}\r
31\r
32#define EFI_LOAD_PE_IMAGE_ATTRIBUTE_NONE 0x00\r
33#define EFI_LOAD_PE_IMAGE_ATTRIBUTE_RUNTIME_REGISTRATION 0x01\r
34#define EFI_LOAD_PE_IMAGE_ATTRIBUTE_DEBUG_IMAGE_INFO_TABLE_REGISTRATION 0x02\r
35\r
36typedef struct _EFI_PE32_IMAGE_PROTOCOL EFI_PE32_IMAGE_PROTOCOL;\r
37\r
38typedef\r
39EFI_STATUS\r
40(EFIAPI *LOAD_PE_IMAGE) (\r
41 IN EFI_PE32_IMAGE_PROTOCOL *This,\r
42 IN EFI_HANDLE ParentImageHandle,\r
43 IN EFI_DEVICE_PATH_PROTOCOL *FilePath,\r
44 IN VOID *SourceBuffer OPTIONAL,\r
45 IN UINTN SourceSize,\r
46 IN EFI_PHYSICAL_ADDRESS DstBuffer OPTIONAL,\r
47 OUT UINTN *NumberOfPages OPTIONAL,\r
48 OUT EFI_HANDLE *ImageHandle,\r
49 OUT EFI_PHYSICAL_ADDRESS *EntryPoint OPTIONAL,\r
50 IN UINT32 Attribute\r
51 );\r
52\r
53typedef\r
54EFI_STATUS\r
55(EFIAPI *UNLOAD_PE_IMAGE) (\r
56 IN EFI_PE32_IMAGE_PROTOCOL *This,\r
57 IN EFI_HANDLE ImageHandle\r
58 );\r
59\r
60struct _EFI_PE32_IMAGE_PROTOCOL {\r
61 LOAD_PE_IMAGE LoadPeImage;\r
62 UNLOAD_PE_IMAGE UnLoadPeImage;\r
63};\r
64\r
65extern EFI_GUID gEfiLoadPeImageProtocolGuid;\r
66\r
67#endif\r
68\r