]> git.proxmox.com Git - mirror_edk2.git/blame - MdePkg/Include/Protocol/LoadedImage.h
Update library class and library instance description for UefiLib to follows specific...
[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
4ca9b6c4
LG
48/** \r
49 @par Protocol Description:\r
50 Can be used on any image handle to obtain information about the loaded image.\r
4ca9b6c4 51**/\r
c2f83f0a 52typedef struct {\r
cce6f7aa 53 ///\r
54 /// Defines the revision of the EFI_LOADED_IMAGE_PROTOCOL structure. \r
55 /// All future revisions will be backward compatible to the current revision.\r
56 ///\r
c2f83f0a 57 UINT32 Revision;\r
cce6f7aa 58\r
59 ///\r
60 /// Parent image's image handle. NULL if the image is loaded directly from \r
61 /// the firmware's boot manager. \r
62 ///\r
c2f83f0a 63 EFI_HANDLE ParentHandle;\r
64 EFI_SYSTEM_TABLE *SystemTable;\r
65\r
66 //\r
67 // Source location of image\r
68 //\r
cce6f7aa 69 ///\r
70 /// The device handle that the EFI Image was loaded from. \r
71 ///\r
c2f83f0a 72 EFI_HANDLE DeviceHandle;\r
cce6f7aa 73 \r
74 ///\r
75 /// A pointer to the file path portion specific to DeviceHandle \r
76 /// that the EFI Image was loaded from. \r
77 ///\r
c2f83f0a 78 EFI_DEVICE_PATH_PROTOCOL *FilePath;\r
cce6f7aa 79 VOID *Reserved; ///< Reserved. DO NOT USE.\r
c2f83f0a 80\r
81 //\r
82 // Images load options\r
83 //\r
cce6f7aa 84 ///\r
85 /// The size in bytes of LoadOptions.\r
86 ///\r
c2f83f0a 87 UINT32 LoadOptionsSize;\r
cce6f7aa 88 \r
89 ///\r
90 /// A pointer to the image's binary load options.\r
91 ///\r
c2f83f0a 92 VOID *LoadOptions;\r
93\r
94 //\r
95 // Location of where image was loaded\r
96 //\r
cce6f7aa 97 ///\r
98 /// The base address at which the image was loaded.\r
99 ///\r
c2f83f0a 100 VOID *ImageBase;\r
cce6f7aa 101 \r
102 ///\r
103 /// The size in bytes of the loaded image.\r
104 ///\r
c2f83f0a 105 UINT64 ImageSize;\r
106 EFI_MEMORY_TYPE ImageCodeType;\r
107 EFI_MEMORY_TYPE ImageDataType;\r
108\r
109 //\r
110 // If the driver image supports a dynamic unload request\r
111 //\r
112 EFI_IMAGE_UNLOAD Unload;\r
113\r
114} EFI_LOADED_IMAGE_PROTOCOL;\r
115\r
a6508c05 116//\r
117// For backward-compatible with EFI1.1.\r
118// \r
119typedef EFI_LOADED_IMAGE_PROTOCOL EFI_LOADED_IMAGE;\r
120\r
c2f83f0a 121extern EFI_GUID gEfiLoadedImageProtocolGuid;\r
d02d144f 122extern EFI_GUID gEfiLoadedImageDevicePathProtocolGuid;\r
c2f83f0a 123\r
124#endif\r