]> git.proxmox.com Git - mirror_edk2.git/blame - IntelFrameworkPkg/Include/Framework/FrameworkStatusCodeDataTypeId.h
Renaming files/directories
[mirror_edk2.git] / IntelFrameworkPkg / Include / Framework / FrameworkStatusCodeDataTypeId.h
CommitLineData
ee65068c 1/** @file\r
2 This file defines the data structures to support Status Code Data.\r
3\r
4 Copyright (c) 2007, 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: FrameworkStatusCodeDataTypeId.h\r
14\r
15 @par Revision Reference:\r
16 These definitions are from Framework of EFI Status Code Spec\r
17 Version 0.92.\r
18\r
19**/\r
20\r
21#ifndef __FRAMEWORK_STATUS_CODE_DATA_TYPE_ID_H__\r
22#define __FRAMEWORK_STATUS_CODE_DATA_TYPE_ID_H__\r
23\r
baccc9ff 24#include <Common/DataHubRecords.h>\r
ee65068c 25#include <Protocol/DebugSupport.h>\r
26\r
27///\r
28/// The size of string\r
29///\r
30#define EFI_STATUS_CODE_DATA_MAX_STRING_SIZE 150\r
31\r
32///\r
33/// This is the max data size including all the headers which can be passed\r
34/// as Status Code data. This data should be multiple of 8 byte\r
35/// to avoid any kind of boundary issue. Also, sum of this data size (inclusive\r
36/// of size of EFI_STATUS_CODE_DATA should not exceed the max record size of\r
37/// data hub\r
38///\r
39#define EFI_STATUS_CODE_DATA_MAX_SIZE 200\r
40\r
41#pragma pack(1)\r
42typedef enum {\r
43 EfiStringAscii,\r
44 EfiStringUnicode,\r
45 EfiStringToken\r
46} EFI_STRING_TYPE;\r
47\r
48typedef struct {\r
49 EFI_HII_HANDLE Handle;\r
50 STRING_REF Token;\r
51} EFI_STATUS_CODE_STRING_TOKEN;\r
52\r
53typedef union {\r
54 CHAR8 *Ascii;\r
55 CHAR16 *Unicode;\r
56 EFI_STATUS_CODE_STRING_TOKEN Hii;\r
57} EFI_STATUS_CODE_STRING;\r
58\r
59typedef struct {\r
60 EFI_STATUS_CODE_DATA DataHeader;\r
61 EFI_STRING_TYPE StringType;\r
62 EFI_STATUS_CODE_STRING String;\r
63} EFI_STATUS_CODE_STRING_DATA;\r
64\r
65#pragma pack()\r
66\r
67#pragma pack(1)\r
68\r
69typedef struct {\r
70 UINT32 ErrorLevel;\r
71 //\r
72 // 12 * sizeof (UINT64) Var Arg stack\r
73 //\r
74 // ascii DEBUG () Format string\r
75 //\r
76} EFI_DEBUG_INFO;\r
77\r
78#pragma pack()\r
79\r
80//\r
81// declaration for EFI_EXP_DATA. This may change\r
82//\r
83// typedef UINTN EFI_EXP_DATA;\r
84\r
85///\r
86/// Voltage Extended Error Data\r
87///\r
88typedef struct {\r
89 EFI_STATUS_CODE_DATA DataHeader;\r
90 EFI_EXP_BASE10_DATA Voltage;\r
91 EFI_EXP_BASE10_DATA Threshold;\r
92} EFI_COMPUTING_UNIT_VOLTAGE_ERROR_DATA;\r
93\r
78430d7c 94typedef struct {\r
95 EFI_EXP_BASE10_DATA Voltage;\r
96 EFI_EXP_BASE10_DATA Threshold;\r
97} EFI_COMPUTING_UNIT_VOLTAGE_ERROR_DATA_PAYLOAD;\r
98\r
ee65068c 99///\r
100/// Microcode Update Extended Error Data\r
101///\r
102typedef struct {\r
103 EFI_STATUS_CODE_DATA DataHeader;\r
104 UINT32 Version;\r
105} EFI_COMPUTING_UNIT_MICROCODE_UPDATE_ERROR_DATA;\r
106\r
78430d7c 107typedef struct {\r
108 UINT32 Version;\r
109} EFI_COMPUTING_UNIT_MICROCODE_UPDATE_ERROR_DATA_PAYLOAD;\r
110\r
ee65068c 111///\r
112/// Asynchronous Timer Extended Error Data\r
113///\r
114typedef struct {\r
115 EFI_STATUS_CODE_DATA DataHeader;\r
116 EFI_EXP_BASE10_DATA TimerLimit;\r
117} EFI_COMPUTING_UNIT_TIMER_EXPIRED_ERROR_DATA;\r
118\r
78430d7c 119typedef struct {\r
120 EFI_EXP_BASE10_DATA TimerLimit;\r
121} EFI_COMPUTING_UNIT_TIMER_EXPIRED_ERROR_DATA_PAYLOAD;\r
122\r
ee65068c 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
78430d7c 132typedef struct {\r
133 UINT32 Instance;\r
134 UINT16 Attributes;\r
135} EFI_HOST_PROCESSOR_MISMATCH_ERROR_DATA_PAYLOAD;\r
136\r
ee65068c 137//\r
138// EFI_COMPUTING_UNIT_MISMATCH_ATTRIBUTES\r
139// All other attributes are reserved for future use and\r
140// must be initialized to 0.\r
141//\r
142#define EFI_COMPUTING_UNIT_MISMATCH_SPEED 0x0001\r
143#define EFI_COMPUTING_UNIT_MISMATCH_FSB_SPEED 0x0002\r
144#define EFI_COMPUTING_UNIT_MISMATCH_FAMILY 0x0004\r
145#define EFI_COMPUTING_UNIT_MISMATCH_MODEL 0x0008\r
146#define EFI_COMPUTING_UNIT_MISMATCH_STEPPING 0x0010\r
147#define EFI_COMPUTING_UNIT_MISMATCH_CACHE_SIZE 0x0020\r
148#define EFI_COMPUTING_UNIT_MISMATCH_OEM1 0x1000\r
149#define EFI_COMPUTING_UNIT_MISMATCH_OEM2 0x2000\r
150#define EFI_COMPUTING_UNIT_MISMATCH_OEM3 0x4000\r
151#define EFI_COMPUTING_UNIT_MISMATCH_OEM4 0x8000\r
152\r
153///\r
154/// Thermal Extended Error Data\r
155///\r
156typedef struct {\r
157 EFI_STATUS_CODE_DATA DataHeader;\r
158 EFI_EXP_BASE10_DATA Temperature;\r
159 EFI_EXP_BASE10_DATA Threshold;\r
160} EFI_COMPUTING_UNIT_THERMAL_ERROR_DATA;\r
161\r
78430d7c 162typedef struct {\r
163 EFI_EXP_BASE10_DATA Temperature;\r
164 EFI_EXP_BASE10_DATA Threshold;\r
165} EFI_COMPUTING_UNIT_THERMAL_ERROR_DATA_PAYLOAD;\r
166\r
ee65068c 167///\r
168/// Processor Disabled Extended Error Data\r
169///\r
170typedef struct {\r
171 EFI_STATUS_CODE_DATA DataHeader;\r
172 UINT32 Cause;\r
173 BOOLEAN SoftwareDisabled;\r
174} EFI_COMPUTING_UNIT_CPU_DISABLED_ERROR_DATA;\r
175\r
78430d7c 176typedef struct {\r
177 UINT32 Cause;\r
178 BOOLEAN SoftwareDisabled;\r
179} EFI_COMPUTING_UNIT_CPU_DISABLED_ERROR_DATA_PAYLOAD;\r
180\r
ee65068c 181typedef enum {\r
182 EfiInitCacheDataOnly,\r
183 EfiInitCacheInstrOnly,\r
184 EfiInitCacheBoth,\r
185 EfiInitCacheUnspecified\r
186} EFI_INIT_CACHE_TYPE;\r
187\r
188///\r
189/// Embedded cache init extended data\r
190///\r
191typedef struct {\r
192 EFI_STATUS_CODE_DATA DataHeader;\r
193 UINT32 Level;\r
194 EFI_INIT_CACHE_TYPE Type;\r
195} EFI_CACHE_INIT_DATA;\r
196\r
78430d7c 197typedef struct {\r
198 UINT32 Level;\r
199 EFI_INIT_CACHE_TYPE Type;\r
200} EFI_CACHE_INIT_DATA_PAYLOAD;\r
201\r
ee65068c 202//\r
203// Memory Extended Error Data\r
204//\r
205\r
206///\r
207/// Memory Error Granularity Definition\r
208///\r
209typedef UINT8 EFI_MEMORY_ERROR_GRANULARITY;\r
210\r
211///\r
212/// Memory Error Operation Definition\r
213///\r
214typedef UINT8 EFI_MEMORY_ERROR_OPERATION;\r
215\r
216typedef struct {\r
217 EFI_STATUS_CODE_DATA DataHeader;\r
218 EFI_MEMORY_ERROR_GRANULARITY Granularity;\r
219 EFI_MEMORY_ERROR_OPERATION Operation;\r
220 UINTN Syndrome;\r
221 EFI_PHYSICAL_ADDRESS Address;\r
222 UINTN Resolution;\r
223} EFI_MEMORY_EXTENDED_ERROR_DATA;\r
224\r
78430d7c 225typedef struct {\r
226 EFI_MEMORY_ERROR_GRANULARITY Granularity;\r
227 EFI_MEMORY_ERROR_OPERATION Operation;\r
228 UINTN Syndrome;\r
229 EFI_PHYSICAL_ADDRESS Address;\r
230 UINTN Resolution;\r
231} EFI_MEMORY_EXTENDED_ERROR_DATA_PAYLOAD;\r
232\r
ee65068c 233//\r
234// Memory Error Granularities\r
235//\r
236#define EFI_MEMORY_ERROR_OTHER 0x01\r
237#define EFI_MEMORY_ERROR_UNKNOWN 0x02\r
238#define EFI_MEMORY_ERROR_DEVICE 0x03\r
239#define EFI_MEMORY_ERROR_PARTITION 0x04\r
240\r
241//\r
242// Memory Error Operations\r
243//\r
244#define EFI_MEMORY_OPERATION_OTHER 0x01\r
245#define EFI_MEMORY_OPERATION_UNKNOWN 0x02\r
246#define EFI_MEMORY_OPERATION_READ 0x03\r
247#define EFI_MEMORY_OPERATION_WRITE 0x04\r
248#define EFI_MEMORY_OPERATION_PARTIAL_WRITE 0x05\r
249\r
250//\r
251// Define shorthands to describe Group Operations\r
252// Many memory init operations are essentially group\r
253// operations.\r
254\r
255/// A shorthand to describe that the operation is performed\r
256/// on multiple devices within the array\r
257///\r
258#define EFI_MULTIPLE_MEMORY_DEVICE_OPERATION 0xfffe\r
259///\r
260/// A shorthand to describe that the operation is performed on all devices within the array\r
261///\r
262#define EFI_ALL_MEMORY_DEVICE_OPERATION 0xffff\r
263///\r
264/// A shorthand to describe that the operation is performed on multiple arrays\r
265///\r
266#define EFI_MULTIPLE_MEMORY_ARRAY_OPERATION 0xfffe\r
267///\r
268/// A shorthand to describe that the operation is performed on all the arrays\r
269///\r
270#define EFI_ALL_MEMORY_ARRAY_OPERATION 0xffff\r
271\r
272//\r
273// DIMM number\r
274//\r
275#pragma pack(1)\r
276typedef struct {\r
277 EFI_STATUS_CODE_DATA DataHeader;\r
278 UINT16 Array;\r
279 UINT16 Device;\r
280} EFI_STATUS_CODE_DIMM_NUMBER;\r
78430d7c 281\r
282typedef struct {\r
283 UINT16 Array;\r
284 UINT16 Device;\r
285} EFI_STATUS_CODE_DIMM_NUMBER_PAYLOAD;\r
ee65068c 286#pragma pack()\r
287\r
288///\r
289/// Memory Module Mismatch Extended Error Data\r
290///\r
291typedef struct {\r
292 EFI_STATUS_CODE_DATA DataHeader;\r
293 EFI_STATUS_CODE_DIMM_NUMBER Instance;\r
294} EFI_MEMORY_MODULE_MISMATCH_ERROR_DATA;\r
295\r
78430d7c 296typedef struct {\r
297 EFI_STATUS_CODE_DIMM_NUMBER Instance;\r
298} EFI_MEMORY_MODULE_MISMATCH_ERROR_DATA_PAYLOAD;\r
299\r
ee65068c 300///\r
301/// Memory Range Extended Data\r
302///\r
303typedef struct {\r
304 EFI_STATUS_CODE_DATA DataHeader;\r
305 EFI_PHYSICAL_ADDRESS Start;\r
306 EFI_PHYSICAL_ADDRESS Length;\r
307} EFI_MEMORY_RANGE_EXTENDED_DATA;\r
308\r
78430d7c 309typedef struct {\r
310 EFI_PHYSICAL_ADDRESS Start;\r
311 EFI_PHYSICAL_ADDRESS Length;\r
312} EFI_MEMORY_RANGE_EXTENDED_DATA_PAYLOAD;\r
313\r
ee65068c 314///\r
315/// Device handle Extended Data. Used for many\r
316/// errors and progress codes to point to the device.\r
317///\r
318typedef struct {\r
319 EFI_STATUS_CODE_DATA DataHeader;\r
320 EFI_HANDLE Handle;\r
321} EFI_DEVICE_HANDLE_EXTENDED_DATA;\r
322\r
323typedef struct {\r
324 EFI_STATUS_CODE_DATA DataHeader;\r
325 UINT8 *DevicePath;\r
326} EFI_DEVICE_PATH_EXTENDED_DATA;\r
327\r
328typedef struct {\r
329 EFI_STATUS_CODE_DATA DataHeader;\r
330 EFI_HANDLE ControllerHandle;\r
331 EFI_HANDLE DriverBindingHandle;\r
332 UINT16 DevicePathSize;\r
333 UINT8 *RemainingDevicePath;\r
334} EFI_STATUS_CODE_START_EXTENDED_DATA;\r
335\r
78430d7c 336typedef struct {\r
337 EFI_HANDLE Handle;\r
338} EFI_DEVICE_HANDLE_EXTENDED_DATA_PAYLOAD;\r
339\r
340typedef struct {\r
341 UINT8 *DevicePath;\r
342} EFI_DEVICE_PATH_EXTENDED_DATA_PAYLOAD;\r
343\r
344typedef struct {\r
345 EFI_HANDLE ControllerHandle;\r
346 EFI_HANDLE DriverBindingHandle;\r
347 UINT16 DevicePathSize;\r
348 UINT8 *RemainingDevicePath;\r
349} EFI_STATUS_CODE_START_EXTENDED_DATA_PAYLOAD;\r
350\r
ee65068c 351///\r
352/// Resource Allocation Failure Extended Error Data\r
353///\r
354\r
355/*\r
356typedef struct {\r
357 EFI_STATUS_CODE_DATA DataHeader;\r
358 EFI_DEVICE_PATH_PROTOCOL *DevicePath;\r
359 UINT32 Bar;\r
360 VOID *ReqRes;\r
361 VOID *AllocRes;\r
362} EFI_RESOURCE_ALLOC_FAILURE_ERROR_DATA;\r
363*/\r
364typedef struct {\r
365 EFI_STATUS_CODE_DATA DataHeader;\r
366 UINT32 Bar;\r
367 UINT16 DevicePathSize;\r
368 UINT16 ReqResSize;\r
369 UINT16 AllocResSize;\r
370 UINT8 *DevicePath;\r
371 UINT8 *ReqRes;\r
372 UINT8 *AllocRes;\r
373} EFI_RESOURCE_ALLOC_FAILURE_ERROR_DATA;\r
374\r
78430d7c 375typedef struct {\r
376 UINT32 Bar;\r
377 UINT16 DevicePathSize;\r
378 UINT16 ReqResSize;\r
379 UINT16 AllocResSize;\r
380 UINT8 *DevicePath;\r
381 UINT8 *ReqRes;\r
382 UINT8 *AllocRes;\r
383} EFI_RESOURCE_ALLOC_FAILURE_ERROR_DATA_PAYLOAD;\r
384\r
ee65068c 385///\r
386/// Extended Error Data for Assert\r
387///\r
388typedef struct {\r
389 EFI_STATUS_CODE_DATA DataHeader;\r
390 UINT32 LineNumber;\r
391 UINT32 FileNameSize;\r
392 EFI_STATUS_CODE_STRING_DATA *FileName;\r
393} EFI_DEBUG_ASSERT_DATA;\r
394\r
78430d7c 395typedef struct {\r
396 UINT32 LineNumber;\r
397 UINT32 FileNameSize;\r
398 EFI_STATUS_CODE_STRING_DATA *FileName;\r
399} EFI_DEBUG_ASSERT_DATA_PAYLOAD;\r
400\r
ee65068c 401///\r
402/// System Context Data EBC/IA32/IPF\r
403///\r
404typedef union {\r
405 EFI_SYSTEM_CONTEXT_EBC SystemContextEbc;\r
406 EFI_SYSTEM_CONTEXT_IA32 SystemContextIa32;\r
407 EFI_SYSTEM_CONTEXT_IPF SystemContextIpf;\r
408} EFI_STATUS_CODE_EXCEP_SYSTEM_CONTEXT;\r
409\r
410typedef struct {\r
411 EFI_STATUS_CODE_DATA DataHeader;\r
412 EFI_STATUS_CODE_EXCEP_SYSTEM_CONTEXT Context;\r
413} EFI_STATUS_CODE_EXCEP_EXTENDED_DATA;\r
414\r
78430d7c 415typedef struct {\r
416 EFI_STATUS_CODE_EXCEP_SYSTEM_CONTEXT Context;\r
417} EFI_STATUS_CODE_EXCEP_EXTENDED_DATA_PAYLOAD;\r
418\r
ee65068c 419///\r
420/// Legacy Oprom extended data\r
421///\r
422typedef struct {\r
423 EFI_STATUS_CODE_DATA DataHeader;\r
424 EFI_HANDLE DeviceHandle;\r
425 EFI_PHYSICAL_ADDRESS RomImageBase;\r
426} EFI_LEGACY_OPROM_EXTENDED_DATA;\r
427\r
78430d7c 428typedef struct {\r
429 EFI_HANDLE DeviceHandle;\r
430 EFI_PHYSICAL_ADDRESS RomImageBase;\r
431} EFI_LEGACY_OPROM_EXTENDED_DATA_PAYLOAD;\r
432\r
ee65068c 433#endif\r