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