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
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.
14 StatusCodeDataTypeId.h
18 GUID used to identify id for the caller who is initiating the Status Code.
22 #ifndef _STATUS_CODE_DATA_TYPE_ID_H__
23 #define _STATUS_CODE_DATA_TYPE_ID_H__
26 #include "EfiStatusCode.h"
27 #include EFI_PROTOCOL_DEFINITION (DebugSupport)
28 #if (EFI_SPECIFICATION_VERSION >= 0x0002000A)
29 #include EFI_PROTOCOL_DEFINITION (HiiDatabase)
31 #include EFI_PROTOCOL_DEFINITION (Hii)
36 #define EFI_STATUS_CODE_DATA_MAX_STRING_SIZE 150
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
45 #define EFI_STATUS_CODE_DATA_MAX_SIZE 200
48 // String Data Type defintion. This is part of Status Code Specification
50 #define EFI_STATUS_CODE_DATA_TYPE_STRING_GUID \
52 0x92D11080, 0x496F, 0x4D95, {0xBE, 0x7E, 0x03, 0x74, 0x88, 0x38, 0x2B, 0x0A} \
55 extern EFI_GUID gEfiStatusCodeDataTypeStringGuid
;
58 // This GUID indicates that the format of the accompanying data depends
59 // upon the Status Code Value, but follows this Specification
61 #define EFI_STATUS_CODE_SPECIFIC_DATA_GUID \
63 0x335984bd, 0xe805, 0x409a, {0xb8, 0xf8, 0xd2, 0x7e, 0xce, 0x5f, 0xf7, 0xa6} \
66 extern EFI_GUID gEfiStatusCodeSpecificDataGuid
;
80 EFI_HII_HANDLE Handle
;
82 } EFI_STATUS_CODE_STRING_TOKEN
;
87 EFI_STATUS_CODE_STRING_TOKEN Hii
;
88 } EFI_STATUS_CODE_STRING
;
91 EFI_STATUS_CODE_DATA DataHeader
;
92 EFI_STRING_TYPE StringType
;
93 EFI_STATUS_CODE_STRING String
;
94 } EFI_STATUS_CODE_STRING_DATA
;
98 // Debug Assert Data. This is part of Status Code Specification
100 #define EFI_STATUS_CODE_DATA_TYPE_ASSERT_GUID \
102 0xDA571595, 0x4D99, 0x487C, {0x82, 0x7C, 0x26, 0x22, 0x67, 0x7D, 0x33, 0x07} \
105 extern EFI_GUID gEfiStatusCodeDataTypeAssertGuid
;
108 // Exception Data type (CPU REGS)
110 #define EFI_STATUS_CODE_DATA_TYPE_EXCEPTION_HANDLER_GUID \
112 0x3BC2BD12, 0xAD2E, 0x11D5, {0x87, 0xDD, 0x00, 0x06, 0x29, 0x45, 0xC3, 0xB9} \
115 extern EFI_GUID gEfiStatusCodeDataTypeExceptionHandlerGuid
;
118 // Debug DataType defintions. User Defined Data Types.
120 #define EFI_STATUS_CODE_DATA_TYPE_DEBUG_GUID \
122 0x9A4E9246, 0xD553, 0x11D5, {0x87, 0xE2, 0x00, 0x06, 0x29, 0x45, 0xC3, 0xb9} \
130 // 12 * sizeof (UINT64) Var Arg stack
132 // ascii DEBUG () Format string
138 extern EFI_GUID gEfiStatusCodeDataTypeDebugGuid
;
141 // Progress Code. User Defined Data Type Guid.
143 #define EFI_STATUS_CODE_DATA_TYPE_ERROR_GUID \
145 0xAB359CE3, 0x99B3, 0xAE18, {0xC8, 0x9D, 0x95, 0xD3, 0xB0, 0x72, 0xE1, 0x9B} \
148 extern EFI_GUID gEfiStatusCodeDataTypeErrorGuid
;
151 // declaration for EFI_EXP_DATA. This may change
153 typedef UINTN EFI_EXP_DATA
;
156 // Voltage Extended Error Data
159 EFI_STATUS_CODE_DATA DataHeader
;
160 EFI_EXP_DATA Voltage
;
161 EFI_EXP_DATA Threshold
;
162 } EFI_COMPUTING_UNIT_VOLTAGE_ERROR_DATA
;
165 // Microcode Update Extended Error Data
168 EFI_STATUS_CODE_DATA DataHeader
;
170 } EFI_COMPUTING_UNIT_MICROCODE_UPDATE_ERROR_DATA
;
173 // Asynchronous Timer Extended Error Data
176 EFI_STATUS_CODE_DATA DataHeader
;
177 EFI_EXP_DATA TimerLimit
;
178 } EFI_COMPUTING_UNIT_TIMER_EXPIRED_ERROR_DATA
;
181 // Host Processor Mismatch Extended Error Data
184 EFI_STATUS_CODE_DATA DataHeader
;
187 } EFI_HOST_PROCESSOR_MISMATCH_ERROR_DATA
;
190 // EFI_COMPUTING_UNIT_MISMATCH_ATTRIBUTES
191 // All other attributes are reserved for future use and
192 // must be initialized to 0.
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
206 // Thermal Extended Error Data
209 EFI_STATUS_CODE_DATA DataHeader
;
210 EFI_EXP_DATA Temperature
;
211 EFI_EXP_DATA Threshold
;
212 } EFI_COMPUTING_UNIT_THERMAL_ERROR_DATA
;
215 // Processor Disabled Extended Error Data
218 EFI_STATUS_CODE_DATA DataHeader
;
220 BOOLEAN SoftwareDisabled
;
221 } EFI_COMPUTING_UNIT_CPU_DISABLED_ERROR_DATA
;
224 EfiInitCacheDataOnly
,
225 EfiInitCacheInstrOnly
,
227 EfiInitCacheUnspecified
228 } EFI_INIT_CACHE_TYPE
;
231 // Embedded cache init extended data
234 EFI_STATUS_CODE_DATA DataHeader
;
236 EFI_INIT_CACHE_TYPE Type
;
237 } EFI_CACHE_INIT_DATA
;
240 // Memory Extended Error Data
243 // Memory Error Granularity Definition
245 typedef UINT8 EFI_MEMORY_ERROR_GRANULARITY
;
248 // Memory Error Operation Definition
250 typedef UINT8 EFI_MEMORY_ERROR_OPERATION
;
253 EFI_STATUS_CODE_DATA DataHeader
;
254 EFI_MEMORY_ERROR_GRANULARITY Granularity
;
255 EFI_MEMORY_ERROR_OPERATION Operation
;
257 EFI_PHYSICAL_ADDRESS Address
;
259 } EFI_MEMORY_EXTENDED_ERROR_DATA
;
262 // Memory Error Granularities
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
270 // Memory Error Operations
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
279 // Define shorthands to describe Group Operations
280 // Many memory init operations are essentially group
282 // A shorthand to describe that the operation is performed
283 // on multiple devices within the array
285 #define EFI_MULTIPLE_MEMORY_DEVICE_OPERATION 0xfffe
287 // A shorthand to describe that the operation is performed // on all devices within the array
289 #define EFI_ALL_MEMORY_DEVICE_OPERATION 0xffff
291 // A shorthand to describe that the operation is performed // on multiple arrays
293 #define EFI_MULTIPLE_MEMORY_ARRAY_OPERATION 0xfffe
295 // A shorthand to describe that the operation is performed // on all the arrays
297 #define EFI_ALL_MEMORY_ARRAY_OPERATION 0xffff
304 EFI_STATUS_CODE_DATA DataHeader
;
307 } EFI_STATUS_CODE_DIMM_NUMBER
;
310 // Memory Module Mismatch Extended Error Data
313 EFI_STATUS_CODE_DATA DataHeader
;
314 EFI_STATUS_CODE_DIMM_NUMBER Instance
;
315 } EFI_MEMORY_MODULE_MISMATCH_ERROR_DATA
;
318 // Memory Range Extended Data
321 EFI_STATUS_CODE_DATA DataHeader
;
322 EFI_PHYSICAL_ADDRESS Start
;
323 EFI_PHYSICAL_ADDRESS Length
;
324 } EFI_MEMORY_RANGE_EXTENDED_DATA
;
327 // Device handle Extended Data. Used for many
328 // errors and progress codes to point to the device.
331 EFI_STATUS_CODE_DATA DataHeader
;
333 } EFI_DEVICE_HANDLE_EXTENDED_DATA
;
336 // Resource Allocation Failure Extended Error Data
339 EFI_STATUS_CODE_DATA DataHeader
;
340 EFI_DEVICE_PATH_PROTOCOL
*DevicePath
;
344 } EFI_RESOURCE_ALLOC_FAILURE_ERROR_DATA
;
347 // Extended Error Data for Assert
350 EFI_STATUS_CODE_DATA DataHeader
;
353 EFI_STATUS_CODE_STRING_DATA
*FileName
;
354 } EFI_DEBUG_ASSERT_DATA
;
357 // System Context Data EBC/IA32/IPF
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
;
366 EFI_STATUS_CODE_DATA DataHeader
;
367 EFI_STATUS_CODE_EXCEP_SYSTEM_CONTEXT Context
;
368 } EFI_STATUS_CODE_EXCEP_EXTENDED_DATA
;
371 // Legacy Oprom extended data
374 EFI_STATUS_CODE_DATA DataHeader
;
375 EFI_HANDLE DeviceHandle
;
376 EFI_PHYSICAL_ADDRESS RomImageBase
;
377 } EFI_LEGACY_OPROM_EXTENDED_DATA
;
380 // Progress Code. User Defined Data Type Guid.
382 #define EFI_STATUS_CODE_DATA_TYPE_PROGRESS_CODE_GUID \
384 0xA356AB39, 0x35C4, 0x35DA, {0xB3, 0x7A, 0xF8, 0xEA, 0x9E, 0x8B, 0x36, 0xA3} \
387 extern EFI_GUID gEfiStatusCodeDataTypeProgressCodeGuid
;