xref: /freebsd/sys/contrib/edk2/Include/Guid/DebugImageInfoTable.h (revision f439973d6726c3be929c8fb3b1545b8b1744abc3)
1*f439973dSWarner Losh /** @file
2*f439973dSWarner Losh   GUID and related data structures used with the Debug Image Info Table.
3*f439973dSWarner Losh 
4*f439973dSWarner Losh   Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
5*f439973dSWarner Losh   SPDX-License-Identifier: BSD-2-Clause-Patent
6*f439973dSWarner Losh 
7*f439973dSWarner Losh   @par Revision Reference:
8*f439973dSWarner Losh   GUID defined in UEFI 2.0 spec.
9*f439973dSWarner Losh 
10*f439973dSWarner Losh **/
11*f439973dSWarner Losh 
12*f439973dSWarner Losh #ifndef __DEBUG_IMAGE_INFO_GUID_H__
13*f439973dSWarner Losh #define __DEBUG_IMAGE_INFO_GUID_H__
14*f439973dSWarner Losh 
15*f439973dSWarner Losh #include <Protocol/LoadedImage.h>
16*f439973dSWarner Losh 
17*f439973dSWarner Losh ///
18*f439973dSWarner Losh /// EFI_DEBUG_IMAGE_INFO_TABLE configuration table GUID declaration.
19*f439973dSWarner Losh ///
20*f439973dSWarner Losh #define EFI_DEBUG_IMAGE_INFO_TABLE_GUID \
21*f439973dSWarner Losh   { \
22*f439973dSWarner Losh     0x49152e77, 0x1ada, 0x4764, {0xb7, 0xa2, 0x7a, 0xfe, 0xfe, 0xd9, 0x5e, 0x8b } \
23*f439973dSWarner Losh   }
24*f439973dSWarner Losh 
25*f439973dSWarner Losh #define EFI_DEBUG_IMAGE_INFO_UPDATE_IN_PROGRESS  0x01
26*f439973dSWarner Losh #define EFI_DEBUG_IMAGE_INFO_TABLE_MODIFIED      0x02
27*f439973dSWarner Losh 
28*f439973dSWarner Losh #define EFI_DEBUG_IMAGE_INFO_TYPE_NORMAL  0x01
29*f439973dSWarner Losh 
30*f439973dSWarner Losh typedef struct {
31*f439973dSWarner Losh   UINT64                  Signature;          ///< A constant UINT64 that has the value EFI_SYSTEM_TABLE_SIGNATURE
32*f439973dSWarner Losh   EFI_PHYSICAL_ADDRESS    EfiSystemTableBase; ///< The physical address of the EFI system table.
33*f439973dSWarner Losh   UINT32                  Crc32;              ///< A 32-bit CRC value that is used to verify the EFI_SYSTEM_TABLE_POINTER structure is valid.
34*f439973dSWarner Losh } EFI_SYSTEM_TABLE_POINTER;
35*f439973dSWarner Losh 
36*f439973dSWarner Losh typedef struct {
37*f439973dSWarner Losh   ///
38*f439973dSWarner Losh   /// Indicates the type of image info structure. For PE32 EFI images,
39*f439973dSWarner Losh   /// this is set to EFI_DEBUG_IMAGE_INFO_TYPE_NORMAL.
40*f439973dSWarner Losh   ///
41*f439973dSWarner Losh   UINT32                       ImageInfoType;
42*f439973dSWarner Losh   ///
43*f439973dSWarner Losh   /// A pointer to an instance of the loaded image protocol for the associated image.
44*f439973dSWarner Losh   ///
45*f439973dSWarner Losh   EFI_LOADED_IMAGE_PROTOCOL    *LoadedImageProtocolInstance;
46*f439973dSWarner Losh   ///
47*f439973dSWarner Losh   /// Indicates the image handle of the associated image.
48*f439973dSWarner Losh   ///
49*f439973dSWarner Losh   EFI_HANDLE                   ImageHandle;
50*f439973dSWarner Losh } EFI_DEBUG_IMAGE_INFO_NORMAL;
51*f439973dSWarner Losh 
52*f439973dSWarner Losh typedef union {
53*f439973dSWarner Losh   UINT32                         *ImageInfoType;
54*f439973dSWarner Losh   EFI_DEBUG_IMAGE_INFO_NORMAL    *NormalImage;
55*f439973dSWarner Losh } EFI_DEBUG_IMAGE_INFO;
56*f439973dSWarner Losh 
57*f439973dSWarner Losh typedef struct {
58*f439973dSWarner Losh   ///
59*f439973dSWarner Losh   /// UpdateStatus is used by the system to indicate the state of the debug image info table.
60*f439973dSWarner Losh   ///
61*f439973dSWarner Losh   volatile UINT32         UpdateStatus;
62*f439973dSWarner Losh   ///
63*f439973dSWarner Losh   /// The number of EFI_DEBUG_IMAGE_INFO elements in the array pointed to by EfiDebugImageInfoTable.
64*f439973dSWarner Losh   ///
65*f439973dSWarner Losh   UINT32                  TableSize;
66*f439973dSWarner Losh   ///
67*f439973dSWarner Losh   /// A pointer to the first element of an array of EFI_DEBUG_IMAGE_INFO structures.
68*f439973dSWarner Losh   ///
69*f439973dSWarner Losh   EFI_DEBUG_IMAGE_INFO    *EfiDebugImageInfoTable;
70*f439973dSWarner Losh } EFI_DEBUG_IMAGE_INFO_TABLE_HEADER;
71*f439973dSWarner Losh 
72*f439973dSWarner Losh extern EFI_GUID  gEfiDebugImageInfoTableGuid;
73*f439973dSWarner Losh 
74*f439973dSWarner Losh #endif
75