]> git.proxmox.com Git - mirror_edk2.git/blame - MdePkg/Include/Protocol/LoadedImage.h
Formalize comments for Protocols and PPIs.
[mirror_edk2.git] / MdePkg / Include / Protocol / LoadedImage.h
CommitLineData
c2f83f0a 1/** @file\r
8a7d75b0 2 UEFI 2.0 Loaded image protocol definition.\r
c2f83f0a 3\r
4 Every EFI driver and application is passed an image handle when it is loaded.\r
5 This image handle will contain a Loaded Image Protocol.\r
6\r
4ca9b6c4 7 Copyright (c) 2006 - 2008, Intel Corporation \r
c2f83f0a 8 All rights reserved. This program and the accompanying materials \r
9 are licensed and made available under the terms and conditions of the BSD License \r
10 which accompanies this distribution. The full text of the license may be found at \r
11 http://opensource.org/licenses/bsd-license.php \r
12\r
13 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, \r
14 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. \r
15\r
c2f83f0a 16**/\r
17\r
18#ifndef __LOADED_IMAGE_PROTOCOL_H__\r
19#define __LOADED_IMAGE_PROTOCOL_H__\r
20\r
21#include <Protocol/DevicePath.h>\r
22\r
23#define EFI_LOADED_IMAGE_PROTOCOL_GUID \\r
24 { \\r
25 0x5B1B31A1, 0x9562, 0x11d2, {0x8E, 0x3F, 0x00, 0xA0, 0xC9, 0x69, 0x72, 0x3B } \\r
26 }\r
27\r
d02d144f 28#define EFI_LOADED_IMAGE_DEVICE_PATH_PROTOCOL_GUID \\r
29 { \\r
30 0xbc62157e, 0x3e33, 0x4fec, {0x99, 0x20, 0x2d, 0x3b, 0x36, 0xd7, 0x50, 0xdf } \\r
31 }\r
32\r
99e8ed21 33///\r
34/// Protocol GUID defined in EFI1.1.\r
35/// \r
a6508c05 36#define LOADED_IMAGE_PROTOCOL EFI_LOADED_IMAGE_PROTOCOL_GUID\r
37\r
99e8ed21 38///\r
39/// EFI_SYSTEM_TABLE & EFI_IMAGE_UNLOAD are defined in EfiApi.h\r
40///\r
a6508c05 41#define EFI_LOADED_IMAGE_PROTOCOL_REVISION 0x1000\r
42\r
99e8ed21 43///\r
44/// Revision defined in EFI1.1.\r
45/// \r
a6508c05 46#define EFI_LOADED_IMAGE_INFORMATION_REVISION EFI_LOADED_IMAGE_PROTOCOL_REVISION\r
47\r
44717a39 48///\r
49/// Can be used on any image handle to obtain information about the loaded image.\r
50///\r
c2f83f0a 51typedef struct {\r
cce6f7aa 52 ///\r
53 /// Defines the revision of the EFI_LOADED_IMAGE_PROTOCOL structure. \r
54 /// All future revisions will be backward compatible to the current revision.\r
55 ///\r
c2f83f0a 56 UINT32 Revision;\r
cce6f7aa 57\r
58 ///\r
59 /// Parent image's image handle. NULL if the image is loaded directly from \r
60 /// the firmware's boot manager. \r
61 ///\r
c2f83f0a 62 EFI_HANDLE ParentHandle;\r
44717a39 63\r
64 ///\r
65 /// the image's EFI system table pointer.\r
66 ///\r
c2f83f0a 67 EFI_SYSTEM_TABLE *SystemTable;\r
68\r
69 //\r
70 // Source location of image\r
71 //\r
cce6f7aa 72 ///\r
73 /// The device handle that the EFI Image was loaded from. \r
74 ///\r
c2f83f0a 75 EFI_HANDLE DeviceHandle;\r
cce6f7aa 76 \r
77 ///\r
78 /// A pointer to the file path portion specific to DeviceHandle \r
79 /// that the EFI Image was loaded from. \r
80 ///\r
c2f83f0a 81 EFI_DEVICE_PATH_PROTOCOL *FilePath;\r
cce6f7aa 82 VOID *Reserved; ///< Reserved. DO NOT USE.\r
c2f83f0a 83\r
84 //\r
85 // Images load options\r
86 //\r
cce6f7aa 87 ///\r
88 /// The size in bytes of LoadOptions.\r
89 ///\r
c2f83f0a 90 UINT32 LoadOptionsSize;\r
cce6f7aa 91 \r
92 ///\r
93 /// A pointer to the image's binary load options.\r
94 ///\r
c2f83f0a 95 VOID *LoadOptions;\r
96\r
97 //\r
98 // Location of where image was loaded\r
99 //\r
cce6f7aa 100 ///\r
101 /// The base address at which the image was loaded.\r
102 ///\r
c2f83f0a 103 VOID *ImageBase;\r
cce6f7aa 104 \r
105 ///\r
106 /// The size in bytes of the loaded image.\r
107 ///\r
c2f83f0a 108 UINT64 ImageSize;\r
44717a39 109\r
110 ///\r
111 /// The memory type that the code sections were loaded as.\r
112 ///\r
c2f83f0a 113 EFI_MEMORY_TYPE ImageCodeType;\r
44717a39 114\r
115 ///\r
116 /// The memory type that the data sections were loaded as.\r
117 ///\r
c2f83f0a 118 EFI_MEMORY_TYPE ImageDataType;\r
119\r
c2f83f0a 120 EFI_IMAGE_UNLOAD Unload;\r
121\r
122} EFI_LOADED_IMAGE_PROTOCOL;\r
123\r
a6508c05 124//\r
125// For backward-compatible with EFI1.1.\r
126// \r
127typedef EFI_LOADED_IMAGE_PROTOCOL EFI_LOADED_IMAGE;\r
128\r
c2f83f0a 129extern EFI_GUID gEfiLoadedImageProtocolGuid;\r
d02d144f 130extern EFI_GUID gEfiLoadedImageDevicePathProtocolGuid;\r
c2f83f0a 131\r
132#endif\r