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