]> git.proxmox.com Git - mirror_edk2.git/blob - IntelFrameworkPkg/Include/Guid/StatusCodeDataTypeId.h
1) Move the structure definitions related GUID EFI_STATUS_CODE_SPECIFIC_DATA_GUID...
[mirror_edk2.git] / IntelFrameworkPkg / Include / Guid / StatusCodeDataTypeId.h
1 /** @file
2 GUID used to identify id for the caller who is initiating the Status Code.
3
4 Copyright (c) 2006, Intel Corporation
5 All rights reserved. This program and the accompanying materials
6 are licensed and made available under the terms and conditions of the BSD License
7 which accompanies this distribution. The full text of the license may be found at
8 http://opensource.org/licenses/bsd-license.php
9
10 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
11 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
12
13 Module Name: StatusCodeDataTypeId.h
14
15 @par Revision Reference:
16 GUIDs defined in Status Codes Specification 0.92
17
18 **/
19
20 #ifndef __STATUS_CODE_DATA_TYPE_ID_GUID_H__
21 #define __STATUS_CODE_DATA_TYPE_ID_GUID_H__
22
23 #include <PiPei.h>
24 #include <Framework/StatusCode.h>
25 #include <Framework/DataHubRecords.h>
26 #include <Protocol/DebugSupport.h>
27
28 //////////////////////////////////////////////////////////////////////////////////////////
29 // String Data Type defintion. This is part of Status Code Specification
30 //////////////////////////////////////////////////////////////////////////////////////////
31 #define EFI_STATUS_CODE_DATA_TYPE_STRING_GUID \
32 { 0x92D11080, 0x496F, 0x4D95, { 0xBE, 0x7E, 0x03, 0x74, 0x88, 0x38, 0x2B, 0x0A } }
33
34 #pragma pack(1)
35
36 typedef enum {
37 EfiStringAscii,
38 EfiStringUnicode,
39 EfiStringToken
40 } EFI_STRING_TYPE;
41
42 typedef struct {
43 EFI_HII_HANDLE Handle;
44 STRING_REF Token;
45 } EFI_STATUS_CODE_STRING_TOKEN;
46
47 typedef union {
48 CHAR8 *Ascii;
49 CHAR16 *Unicode;
50 EFI_STATUS_CODE_STRING_TOKEN Hii;
51 } EFI_STATUS_CODE_STRING;
52
53 typedef struct {
54 EFI_STATUS_CODE_DATA DataHeader;
55 EFI_STRING_TYPE StringType;
56 EFI_STATUS_CODE_STRING String;
57 } EFI_STATUS_CODE_STRING_DATA;
58 #pragma pack()
59
60 extern EFI_GUID gEfiStatusCodeDataTypeStringGuid;
61
62
63 //////////////////////////////////////////////////////////////////////////////////////////
64 // Special Data Type defintion. This is part of Status Code Specification
65 //////////////////////////////////////////////////////////////////////////////////////////
66 #define EFI_STATUS_CODE_SPECIFIC_DATA_GUID \
67 { 0x335984bd, 0xe805, 0x409a, { 0xb8, 0xf8, 0xd2, 0x7e, 0xce, 0x5f, 0xf7, 0xa6 } }
68
69 #pragma pack(1)
70
71 ///
72 /// Device handle Extended Data. Used for many
73 /// errors and progress codes to point to the device.
74 ///
75 typedef struct {
76 EFI_STATUS_CODE_DATA DataHeader;
77 EFI_HANDLE Handle;
78 } EFI_DEVICE_HANDLE_EXTENDED_DATA;
79
80
81 typedef struct {
82 EFI_STATUS_CODE_DATA DataHeader;
83 UINT8 *DevicePath;
84 } EFI_DEVICE_PATH_EXTENDED_DATA;
85
86 typedef struct {
87 EFI_STATUS_CODE_DATA DataHeader;
88 UINT32 Bar;
89 UINT16 DevicePathSize;
90 UINT16 ReqResSize;
91 UINT16 AllocResSize;
92 UINT8 *DevicePath;
93 UINT8 *ReqRes;
94 UINT8 *AllocRes;
95 } EFI_RESOURCE_ALLOC_FAILURE_ERROR_DATA;
96
97 ///
98 /// Voltage Extended Error Data
99 ///
100 typedef struct {
101 EFI_STATUS_CODE_DATA DataHeader;
102 EFI_EXP_BASE10_DATA Voltage;
103 EFI_EXP_BASE10_DATA Threshold;
104 } EFI_COMPUTING_UNIT_VOLTAGE_ERROR_DATA;
105
106 ///
107 /// Microcode Update Extended Error Data
108 ///
109 typedef struct {
110 EFI_STATUS_CODE_DATA DataHeader;
111 UINT32 Version;
112 } EFI_COMPUTING_UNIT_MICROCODE_UPDATE_ERROR_DATA;
113
114 ///
115 /// Asynchronous Timer Extended Error Data
116 ///
117 typedef struct {
118 EFI_STATUS_CODE_DATA DataHeader;
119 EFI_EXP_BASE10_DATA TimerLimit;
120 } EFI_COMPUTING_UNIT_TIMER_EXPIRED_ERROR_DATA;
121
122 ///
123 /// Host Processor Mismatch Extended Error Data
124 ///
125 typedef struct {
126 EFI_STATUS_CODE_DATA DataHeader;
127 UINT32 Instance;
128 UINT16 Attributes;
129 } EFI_HOST_PROCESSOR_MISMATCH_ERROR_DATA;
130
131 ///
132 /// Thermal Extended Error Data
133 ///
134 typedef struct {
135 EFI_STATUS_CODE_DATA DataHeader;
136 EFI_EXP_BASE10_DATA Temperature;
137 EFI_EXP_BASE10_DATA Threshold;
138 } EFI_COMPUTING_UNIT_THERMAL_ERROR_DATA;
139
140
141 typedef enum {
142 EfiInitCacheDataOnly,
143 EfiInitCacheInstrOnly,
144 EfiInitCacheBoth,
145 EfiInitCacheUnspecified
146 } EFI_INIT_CACHE_TYPE;
147
148 ///
149 /// Embedded cache init extended data
150 ///
151 typedef struct {
152 EFI_STATUS_CODE_DATA DataHeader;
153 UINT32 Level;
154 EFI_INIT_CACHE_TYPE Type;
155 } EFI_CACHE_INIT_DATA;
156
157 ///
158 /// Processor Disabled Extended Error Data
159 ///
160 typedef struct {
161 EFI_STATUS_CODE_DATA DataHeader;
162 UINT32 Cause;
163 BOOLEAN SoftwareDisabled;
164 } EFI_COMPUTING_UNIT_CPU_DISABLED_ERROR_DATA;
165
166 ///
167 /// Memory Error Operation Definition
168 ///
169 typedef UINT8 EFI_MEMORY_ERROR_OPERATION;
170
171 ///
172 /// Memory Error Granularity Definition
173 ///
174 typedef UINT8 EFI_MEMORY_ERROR_GRANULARITY;
175
176 typedef struct {
177 EFI_STATUS_CODE_DATA DataHeader;
178 EFI_MEMORY_ERROR_GRANULARITY Granularity;
179 EFI_MEMORY_ERROR_OPERATION Operation;
180 UINTN Syndrome;
181 EFI_PHYSICAL_ADDRESS Address;
182 UINTN Resolution;
183 } EFI_MEMORY_EXTENDED_ERROR_DATA;
184
185 typedef struct {
186 EFI_STATUS_CODE_DATA DataHeader;
187 UINT16 Array;
188 UINT16 Device;
189 } EFI_STATUS_CODE_DIMM_NUMBER;
190
191 ///
192 /// Memory Module Mismatch Extended Error Data
193 ///
194 typedef struct {
195 EFI_STATUS_CODE_DATA DataHeader;
196 EFI_STATUS_CODE_DIMM_NUMBER Instance;
197 } EFI_MEMORY_MODULE_MISMATCH_ERROR_DATA;
198
199 ///
200 /// Memory Range Extended Data
201 ///
202 typedef struct {
203 EFI_STATUS_CODE_DATA DataHeader;
204 EFI_PHYSICAL_ADDRESS Start;
205 EFI_PHYSICAL_ADDRESS Length;
206 } EFI_MEMORY_RANGE_EXTENDED_DATA;
207
208 ///
209 /// Extended Error Data for Assert
210 ///
211 typedef struct {
212 EFI_STATUS_CODE_DATA DataHeader;
213 UINT32 LineNumber;
214 UINT32 FileNameSize;
215 EFI_STATUS_CODE_STRING_DATA *FileName;
216 } EFI_DEBUG_ASSERT_DATA;
217
218 ///
219 /// System Context Data EBC/IA32/IPF
220 ///
221 typedef union {
222 EFI_SYSTEM_CONTEXT_EBC SystemContextEbc;
223 EFI_SYSTEM_CONTEXT_IA32 SystemContextIa32;
224 EFI_SYSTEM_CONTEXT_IPF SystemContextIpf;
225 } EFI_STATUS_CODE_EXCEP_SYSTEM_CONTEXT;
226
227 typedef struct {
228 EFI_STATUS_CODE_DATA DataHeader;
229 EFI_STATUS_CODE_EXCEP_SYSTEM_CONTEXT Context;
230 } EFI_STATUS_CODE_EXCEP_EXTENDED_DATA;
231
232 typedef struct {
233 EFI_STATUS_CODE_DATA DataHeader;
234 EFI_HANDLE ControllerHandle;
235 EFI_HANDLE DriverBindingHandle;
236 UINT16 DevicePathSize;
237 UINT8 *RemainingDevicePath;
238 } EFI_STATUS_CODE_START_EXTENDED_DATA;
239
240 ///
241 /// Legacy Oprom extended data
242 ///
243 typedef struct {
244 EFI_STATUS_CODE_DATA DataHeader;
245 EFI_HANDLE DeviceHandle;
246 EFI_PHYSICAL_ADDRESS RomImageBase;
247 } EFI_LEGACY_OPROM_EXTENDED_DATA;
248
249 #pragma pack()
250
251 extern EFI_GUID gEfiStatusCodeSpecificDataGuid;
252
253 //
254 // EFI_COMPUTING_UNIT_MISMATCH_ATTRIBUTES
255 // All other attributes are reserved for future use and
256 // must be initialized to 0.
257 //
258 #define EFI_COMPUTING_UNIT_MISMATCH_SPEED 0x0001
259 #define EFI_COMPUTING_UNIT_MISMATCH_FSB_SPEED 0x0002
260 #define EFI_COMPUTING_UNIT_MISMATCH_FAMILY 0x0004
261 #define EFI_COMPUTING_UNIT_MISMATCH_MODEL 0x0008
262 #define EFI_COMPUTING_UNIT_MISMATCH_STEPPING 0x0010
263 #define EFI_COMPUTING_UNIT_MISMATCH_CACHE_SIZE 0x0020
264 #define EFI_COMPUTING_UNIT_MISMATCH_OEM1 0x1000
265 #define EFI_COMPUTING_UNIT_MISMATCH_OEM2 0x2000
266 #define EFI_COMPUTING_UNIT_MISMATCH_OEM3 0x4000
267 #define EFI_COMPUTING_UNIT_MISMATCH_OEM4 0x8000
268
269
270
271 //
272 // Memory Error Granularities
273 //
274 #define EFI_MEMORY_ERROR_OTHER 0x01
275 #define EFI_MEMORY_ERROR_UNKNOWN 0x02
276 #define EFI_MEMORY_ERROR_DEVICE 0x03
277 #define EFI_MEMORY_ERROR_PARTITION 0x04
278
279 //
280 // Memory Error Operations
281 //
282 #define EFI_MEMORY_OPERATION_OTHER 0x01
283 #define EFI_MEMORY_OPERATION_UNKNOWN 0x02
284 #define EFI_MEMORY_OPERATION_READ 0x03
285 #define EFI_MEMORY_OPERATION_WRITE 0x04
286 #define EFI_MEMORY_OPERATION_PARTIAL_WRITE 0x05
287
288 //
289 // Define shorthands to describe Group Operations
290 // Many memory init operations are essentially group
291 // operations.
292
293 /// A shorthand to describe that the operation is performed
294 /// on multiple devices within the array
295 ///
296 #define EFI_MULTIPLE_MEMORY_DEVICE_OPERATION 0xfffe
297 ///
298 /// A shorthand to describe that the operation is performed on all devices within the array
299 ///
300 #define EFI_ALL_MEMORY_DEVICE_OPERATION 0xffff
301 ///
302 /// A shorthand to describe that the operation is performed on multiple arrays
303 ///
304 #define EFI_MULTIPLE_MEMORY_ARRAY_OPERATION 0xfffe
305 ///
306 /// A shorthand to describe that the operation is performed on all the arrays
307 ///
308 #define EFI_ALL_MEMORY_ARRAY_OPERATION 0xffff
309
310
311
312
313 //
314 // Debug Assert Data. This is part of Status Code Specification
315 //
316 #define EFI_STATUS_CODE_DATA_TYPE_ASSERT_GUID \
317 { 0xDA571595, 0x4D99, 0x487C, { 0x82, 0x7C, 0x26, 0x22, 0x67, 0x7D, 0x33, 0x07 } }
318
319
320 extern EFI_GUID gEfiStatusCodeDataTypeAssertGuid;
321
322 //
323 // Exception Data type (CPU REGS)
324 //
325 #define EFI_STATUS_CODE_DATA_TYPE_EXCEPTION_HANDLER_GUID \
326 { 0x3BC2BD12, 0xAD2E, 0x11D5, { 0x87, 0xDD, 0x00, 0x06, 0x29, 0x45, 0xC3, 0xB9 } }
327
328 extern EFI_GUID gEfiStatusCodeDataTypeExceptionHandlerGuid;
329
330 //
331 // Debug DataType defintions. User Defined Data Types.
332 //
333 #define EFI_STATUS_CODE_DATA_TYPE_DEBUG_GUID \
334 { 0x9A4E9246, 0xD553, 0x11D5, { 0x87, 0xE2, 0x00, 0x06, 0x29, 0x45, 0xC3, 0xb9 } }
335
336 extern EFI_GUID gEfiStatusCodeDataTypeDebugGuid;
337
338 //
339 // Progress Code. User Defined Data Type Guid.
340 //
341 #define EFI_STATUS_CODE_DATA_TYPE_ERROR_GUID \
342 { 0xAB359CE3, 0x99B3, 0xAE18, { 0xC8, 0x9D, 0x95, 0xD3, 0xB0, 0x72, 0xE1, 0x9B } }
343
344 extern EFI_GUID gEfiStatusCodeDataTypeErrorGuid;
345
346 //
347 // Progress Code. User Defined Data Type Guid.
348 //
349 #define EFI_STATUS_CODE_DATA_TYPE_PROGRESS_CODE_GUID \
350 { 0xA356AB39, 0x35C4, 0x35DA, { 0xB3, 0x7A, 0xF8, 0xEA, 0x9E, 0x8B, 0x36, 0xA3 } }
351
352 extern EFI_GUID gEfiStatusCodeDataTypeProgressCodeGuid;
353
354
355 #endif