1 /*++ 2 3 Copyright (c) 2004, Intel Corporation. All rights reserved.<BR> 4 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 LoadedImage.h 15 16 Abstract: 17 18 EFI 1.0 Loaded image protocol definition. 19 20 Every EFI driver and application is passed an image handle when it is loaded. 21 This image handle will contain a Loaded Image Protocol. 22 23 --*/ 24 25 #ifndef _LOADED_IMAGE_H_ 26 #define _LOADED_IMAGE_H_ 27 28 #define EFI_LOADED_IMAGE_PROTOCOL_GUID \ 29 { \ 30 0x5B1B31A1, 0x9562, 0x11d2, {0x8E, 0x3F, 0x00, 0xA0, 0xC9, 0x69, 0x72, 0x3B} \ 31 } 32 33 // 34 // EFI_SYSTEM_TABLE & EFI_IMAGE_UNLOAD are defined in EfiApi.h 35 // 36 #define EFI_LOADED_IMAGE_INFORMATION_REVISION 0x1000 37 38 typedef struct { 39 UINT32 Revision; 40 EFI_HANDLE ParentHandle; 41 EFI_SYSTEM_TABLE *SystemTable; 42 43 // 44 // Source location of image 45 // 46 EFI_HANDLE DeviceHandle; 47 EFI_DEVICE_PATH_PROTOCOL *FilePath; 48 VOID *Reserved; 49 50 // 51 // Images load options 52 // 53 UINT32 LoadOptionsSize; 54 VOID *LoadOptions; 55 56 // 57 // Location of where image was loaded 58 // 59 VOID *ImageBase; 60 UINT64 ImageSize; 61 EFI_MEMORY_TYPE ImageCodeType; 62 EFI_MEMORY_TYPE ImageDataType; 63 64 // 65 // If the driver image supports a dynamic unload request 66 // 67 EFI_IMAGE_UNLOAD Unload; 68 69 } EFI_LOADED_IMAGE_PROTOCOL; 70 71 extern EFI_GUID gEfiLoadedImageProtocolGuid; 72 73 #endif 74