]> git.proxmox.com Git - mirror_edk2.git/blob - EdkCompatibilityPkg/Foundation/Framework/Guid/StatusCodeDataTypeId/StatusCodeDataTypeId.h
Update the copyright notice format
[mirror_edk2.git] / EdkCompatibilityPkg / Foundation / Framework / Guid / StatusCodeDataTypeId / StatusCodeDataTypeId.h
1 /*++
2
3 Copyright (c) 2004 - 2007, 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 StatusCodeDataTypeId.h
15
16 Abstract:
17
18 GUID used to identify id for the caller who is initiating the Status Code.
19
20 --*/
21
22 #ifndef _STATUS_CODE_DATA_TYPE_ID_H__
23 #define _STATUS_CODE_DATA_TYPE_ID_H__
24
25
26 #include "EfiStatusCode.h"
27 #include EFI_PROTOCOL_DEFINITION (DebugSupport)
28 #if (EFI_SPECIFICATION_VERSION >= 0x0002000A)
29 #include EFI_PROTOCOL_DEFINITION (HiiDatabase)
30 #else
31 #include EFI_PROTOCOL_DEFINITION (Hii)
32 #endif
33 //
34 // The size of string
35 //
36 #define EFI_STATUS_CODE_DATA_MAX_STRING_SIZE 150
37
38 //
39 // This is the max data size including all the headers which can be passed
40 // as Status Code data. This data should be multiple of 8 byte
41 // to avoid any kind of boundary issue. Also, sum of this data size (inclusive
42 // of size of EFI_STATUS_CODE_DATA should not exceed the max record size of
43 // data hub
44 //
45 #define EFI_STATUS_CODE_DATA_MAX_SIZE 200
46
47 //
48 // String Data Type defintion. This is part of Status Code Specification
49 //
50 #define EFI_STATUS_CODE_DATA_TYPE_STRING_GUID \
51 { \
52 0x92D11080, 0x496F, 0x4D95, {0xBE, 0x7E, 0x03, 0x74, 0x88, 0x38, 0x2B, 0x0A} \
53 }
54
55 extern EFI_GUID gEfiStatusCodeDataTypeStringGuid;
56
57 //
58 // This GUID indicates that the format of the accompanying data depends
59 // upon the Status Code Value, but follows this Specification
60 //
61 #define EFI_STATUS_CODE_SPECIFIC_DATA_GUID \
62 { \
63 0x335984bd, 0xe805, 0x409a, {0xb8, 0xf8, 0xd2, 0x7e, 0xce, 0x5f, 0xf7, 0xa6} \
64 }
65
66 extern EFI_GUID gEfiStatusCodeSpecificDataGuid;
67
68 #pragma pack(1)
69
70 typedef enum {
71 EfiStringAscii,
72 EfiStringUnicode,
73 EfiStringToken
74 } EFI_STRING_TYPE;
75
76 //
77 // HII string token
78 //
79 typedef struct {
80 EFI_HII_HANDLE Handle;
81 STRING_REF Token;
82 } EFI_STATUS_CODE_STRING_TOKEN;
83
84 typedef union {
85 CHAR8 *Ascii;
86 CHAR16 *Unicode;
87 EFI_STATUS_CODE_STRING_TOKEN Hii;
88 } EFI_STATUS_CODE_STRING;
89
90 typedef struct {
91 EFI_STATUS_CODE_DATA DataHeader;
92 EFI_STRING_TYPE StringType;
93 EFI_STATUS_CODE_STRING String;
94 } EFI_STATUS_CODE_STRING_DATA;
95
96 #pragma pack()
97 //
98 // Debug Assert Data. This is part of Status Code Specification
99 //
100 #define EFI_STATUS_CODE_DATA_TYPE_ASSERT_GUID \
101 { \
102 0xDA571595, 0x4D99, 0x487C, {0x82, 0x7C, 0x26, 0x22, 0x67, 0x7D, 0x33, 0x07} \
103 }
104
105 extern EFI_GUID gEfiStatusCodeDataTypeAssertGuid;
106
107 //
108 // Exception Data type (CPU REGS)
109 //
110 #define EFI_STATUS_CODE_DATA_TYPE_EXCEPTION_HANDLER_GUID \
111 { \
112 0x3BC2BD12, 0xAD2E, 0x11D5, {0x87, 0xDD, 0x00, 0x06, 0x29, 0x45, 0xC3, 0xB9} \
113 }
114
115 extern EFI_GUID gEfiStatusCodeDataTypeExceptionHandlerGuid;
116
117 //
118 // Debug DataType defintions. User Defined Data Types.
119 //
120 #define EFI_STATUS_CODE_DATA_TYPE_DEBUG_GUID \
121 { \
122 0x9A4E9246, 0xD553, 0x11D5, {0x87, 0xE2, 0x00, 0x06, 0x29, 0x45, 0xC3, 0xb9} \
123 }
124
125 #pragma pack(1)
126
127 typedef struct {
128 UINT32 ErrorLevel;
129 //
130 // 12 * sizeof (UINT64) Var Arg stack
131 //
132 // ascii DEBUG () Format string
133 //
134 } EFI_DEBUG_INFO;
135
136 #pragma pack()
137
138 extern EFI_GUID gEfiStatusCodeDataTypeDebugGuid;
139
140 //
141 // Progress Code. User Defined Data Type Guid.
142 //
143 #define EFI_STATUS_CODE_DATA_TYPE_ERROR_GUID \
144 { \
145 0xAB359CE3, 0x99B3, 0xAE18, {0xC8, 0x9D, 0x95, 0xD3, 0xB0, 0x72, 0xE1, 0x9B} \
146 }
147
148 extern EFI_GUID gEfiStatusCodeDataTypeErrorGuid;
149
150 //
151 // declaration for EFI_EXP_DATA. This may change
152 //
153 typedef UINTN EFI_EXP_DATA;
154
155 //
156 // Voltage Extended Error Data
157 //
158 typedef struct {
159 EFI_STATUS_CODE_DATA DataHeader;
160 EFI_EXP_DATA Voltage;
161 EFI_EXP_DATA Threshold;
162 } EFI_COMPUTING_UNIT_VOLTAGE_ERROR_DATA;
163
164 //
165 // Microcode Update Extended Error Data
166 //
167 typedef struct {
168 EFI_STATUS_CODE_DATA DataHeader;
169 UINT32 Version;
170 } EFI_COMPUTING_UNIT_MICROCODE_UPDATE_ERROR_DATA;
171
172 //
173 // Asynchronous Timer Extended Error Data
174 //
175 typedef struct {
176 EFI_STATUS_CODE_DATA DataHeader;
177 EFI_EXP_DATA TimerLimit;
178 } EFI_COMPUTING_UNIT_TIMER_EXPIRED_ERROR_DATA;
179
180 //
181 // Host Processor Mismatch Extended Error Data
182 //
183 typedef struct {
184 EFI_STATUS_CODE_DATA DataHeader;
185 UINT32 Instance;
186 UINT16 Attributes;
187 } EFI_HOST_PROCESSOR_MISMATCH_ERROR_DATA;
188
189 //
190 // EFI_COMPUTING_UNIT_MISMATCH_ATTRIBUTES
191 // All other attributes are reserved for future use and
192 // must be initialized to 0.
193 //
194 #define EFI_COMPUTING_UNIT_MISMATCH_SPEED 0x0001
195 #define EFI_COMPUTING_UNIT_MISMATCH_FSB_SPEED 0x0002
196 #define EFI_COMPUTING_UNIT_MISMATCH_FAMILY 0x0004
197 #define EFI_COMPUTING_UNIT_MISMATCH_MODEL 0x0008
198 #define EFI_COMPUTING_UNIT_MISMATCH_STEPPING 0x0010
199 #define EFI_COMPUTING_UNIT_MISMATCH_CACHE_SIZE 0x0020
200 #define EFI_COMPUTING_UNIT_MISMATCH_OEM1 0x1000
201 #define EFI_COMPUTING_UNIT_MISMATCH_OEM2 0x2000
202 #define EFI_COMPUTING_UNIT_MISMATCH_OEM3 0x4000
203 #define EFI_COMPUTING_UNIT_MISMATCH_OEM4 0x8000
204
205 //
206 // Thermal Extended Error Data
207 //
208 typedef struct {
209 EFI_STATUS_CODE_DATA DataHeader;
210 EFI_EXP_DATA Temperature;
211 EFI_EXP_DATA Threshold;
212 } EFI_COMPUTING_UNIT_THERMAL_ERROR_DATA;
213
214 //
215 // Processor Disabled Extended Error Data
216 //
217 typedef struct {
218 EFI_STATUS_CODE_DATA DataHeader;
219 UINT32 Cause;
220 BOOLEAN SoftwareDisabled;
221 } EFI_COMPUTING_UNIT_CPU_DISABLED_ERROR_DATA;
222
223 typedef enum {
224 EfiInitCacheDataOnly,
225 EfiInitCacheInstrOnly,
226 EfiInitCacheBoth,
227 EfiInitCacheUnspecified
228 } EFI_INIT_CACHE_TYPE;
229
230 //
231 // Embedded cache init extended data
232 //
233 typedef struct {
234 EFI_STATUS_CODE_DATA DataHeader;
235 UINT32 Level;
236 EFI_INIT_CACHE_TYPE Type;
237 } EFI_CACHE_INIT_DATA;
238
239 //
240 // Memory Extended Error Data
241 //
242 //
243 // Memory Error Granularity Definition
244 //
245 typedef UINT8 EFI_MEMORY_ERROR_GRANULARITY;
246
247 //
248 // Memory Error Operation Definition
249 //
250 typedef UINT8 EFI_MEMORY_ERROR_OPERATION;
251
252 typedef struct {
253 EFI_STATUS_CODE_DATA DataHeader;
254 EFI_MEMORY_ERROR_GRANULARITY Granularity;
255 EFI_MEMORY_ERROR_OPERATION Operation;
256 UINTN Syndrome;
257 EFI_PHYSICAL_ADDRESS Address;
258 UINTN Resolution;
259 } EFI_MEMORY_EXTENDED_ERROR_DATA;
260
261 //
262 // Memory Error Granularities
263 //
264 #define EFI_MEMORY_ERROR_OTHER 0x01
265 #define EFI_MEMORY_ERROR_UNKNOWN 0x02
266 #define EFI_MEMORY_ERROR_DEVICE 0x03
267 #define EFI_MEMORY_ERROR_PARTITION 0x04
268
269 //
270 // Memory Error Operations
271 //
272 #define EFI_MEMORY_OPERATION_OTHER 0x01
273 #define EFI_MEMORY_OPERATION_UNKNOWN 0x02
274 #define EFI_MEMORY_OPERATION_READ 0x03
275 #define EFI_MEMORY_OPERATION_WRITE 0x04
276 #define EFI_MEMORY_OPERATION_PARTIAL_WRITE 0x05
277
278 //
279 // Define shorthands to describe Group Operations
280 // Many memory init operations are essentially group
281 // operations.
282 // A shorthand to describe that the operation is performed
283 // on multiple devices within the array
284 //
285 #define EFI_MULTIPLE_MEMORY_DEVICE_OPERATION 0xfffe
286 //
287 // A shorthand to describe that the operation is performed // on all devices within the array
288 //
289 #define EFI_ALL_MEMORY_DEVICE_OPERATION 0xffff
290 //
291 // A shorthand to describe that the operation is performed // on multiple arrays
292 //
293 #define EFI_MULTIPLE_MEMORY_ARRAY_OPERATION 0xfffe
294 //
295 // A shorthand to describe that the operation is performed // on all the arrays
296 //
297 #define EFI_ALL_MEMORY_ARRAY_OPERATION 0xffff
298
299 //
300 // DIMM number
301 //
302 #pragma pack(1)
303 typedef struct {
304 EFI_STATUS_CODE_DATA DataHeader;
305 UINT16 Array;
306 UINT16 Device;
307 } EFI_STATUS_CODE_DIMM_NUMBER;
308 #pragma pack()
309 //
310 // Memory Module Mismatch Extended Error Data
311 //
312 typedef struct {
313 EFI_STATUS_CODE_DATA DataHeader;
314 EFI_STATUS_CODE_DIMM_NUMBER Instance;
315 } EFI_MEMORY_MODULE_MISMATCH_ERROR_DATA;
316
317 //
318 // Memory Range Extended Data
319 //
320 typedef struct {
321 EFI_STATUS_CODE_DATA DataHeader;
322 EFI_PHYSICAL_ADDRESS Start;
323 EFI_PHYSICAL_ADDRESS Length;
324 } EFI_MEMORY_RANGE_EXTENDED_DATA;
325
326 //
327 // Device handle Extended Data. Used for many
328 // errors and progress codes to point to the device.
329 //
330 typedef struct {
331 EFI_STATUS_CODE_DATA DataHeader;
332 EFI_HANDLE Handle;
333 } EFI_DEVICE_HANDLE_EXTENDED_DATA;
334
335 //
336 // Resource Allocation Failure Extended Error Data
337 //
338 typedef struct {
339 EFI_STATUS_CODE_DATA DataHeader;
340 EFI_DEVICE_PATH_PROTOCOL *DevicePath;
341 UINT32 Bar;
342 VOID *ReqRes;
343 VOID *AllocRes;
344 } EFI_RESOURCE_ALLOC_FAILURE_ERROR_DATA;
345
346 //
347 // Extended Error Data for Assert
348 //
349 typedef struct {
350 EFI_STATUS_CODE_DATA DataHeader;
351 UINT32 LineNumber;
352 UINT32 FileNameSize;
353 EFI_STATUS_CODE_STRING_DATA *FileName;
354 } EFI_DEBUG_ASSERT_DATA;
355
356 //
357 // System Context Data EBC/IA32/IPF
358 //
359 typedef union {
360 EFI_SYSTEM_CONTEXT_EBC SystemContextEbc;
361 EFI_SYSTEM_CONTEXT_IA32 SystemContextIa32;
362 EFI_SYSTEM_CONTEXT_IPF SystemContextIpf;
363 } EFI_STATUS_CODE_EXCEP_SYSTEM_CONTEXT;
364
365 typedef struct {
366 EFI_STATUS_CODE_DATA DataHeader;
367 EFI_STATUS_CODE_EXCEP_SYSTEM_CONTEXT Context;
368 } EFI_STATUS_CODE_EXCEP_EXTENDED_DATA;
369
370 //
371 // Legacy Oprom extended data
372 //
373 typedef struct {
374 EFI_STATUS_CODE_DATA DataHeader;
375 EFI_HANDLE DeviceHandle;
376 EFI_PHYSICAL_ADDRESS RomImageBase;
377 } EFI_LEGACY_OPROM_EXTENDED_DATA;
378
379 //
380 // Progress Code. User Defined Data Type Guid.
381 //
382 #define EFI_STATUS_CODE_DATA_TYPE_PROGRESS_CODE_GUID \
383 { \
384 0xA356AB39, 0x35C4, 0x35DA, {0xB3, 0x7A, 0xF8, 0xEA, 0x9E, 0x8B, 0x36, 0xA3} \
385 }
386
387 extern EFI_GUID gEfiStatusCodeDataTypeProgressCodeGuid;
388
389 #endif