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