]> git.proxmox.com Git - mirror_edk2.git/blame - IntelFrameworkPkg/Include/Framework/StatusCodeDataTypeId.h
Remove all *_PAYLOAD structures definition in IntelFrameworkPkg/Include/Framework...
[mirror_edk2.git] / IntelFrameworkPkg / Include / Framework / StatusCodeDataTypeId.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
694b922c 24#include <Framework/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
94///\r
95/// Microcode Update Extended Error Data\r
96///\r
97typedef struct {\r
98 EFI_STATUS_CODE_DATA DataHeader;\r
99 UINT32 Version;\r
100} EFI_COMPUTING_UNIT_MICROCODE_UPDATE_ERROR_DATA;\r
101\r
78430d7c 102\r
ee65068c 103///\r
104/// Asynchronous Timer Extended Error Data\r
105///\r
106typedef struct {\r
107 EFI_STATUS_CODE_DATA DataHeader;\r
108 EFI_EXP_BASE10_DATA TimerLimit;\r
109} EFI_COMPUTING_UNIT_TIMER_EXPIRED_ERROR_DATA;\r
110\r
111///\r
112/// Host Processor Mismatch Extended Error Data\r
113///\r
114typedef struct {\r
115 EFI_STATUS_CODE_DATA DataHeader;\r
116 UINT32 Instance;\r
117 UINT16 Attributes;\r
118} EFI_HOST_PROCESSOR_MISMATCH_ERROR_DATA;\r
119\r
120//\r
121// EFI_COMPUTING_UNIT_MISMATCH_ATTRIBUTES\r
122// All other attributes are reserved for future use and\r
123// must be initialized to 0.\r
124//\r
125#define EFI_COMPUTING_UNIT_MISMATCH_SPEED 0x0001\r
126#define EFI_COMPUTING_UNIT_MISMATCH_FSB_SPEED 0x0002\r
127#define EFI_COMPUTING_UNIT_MISMATCH_FAMILY 0x0004\r
128#define EFI_COMPUTING_UNIT_MISMATCH_MODEL 0x0008\r
129#define EFI_COMPUTING_UNIT_MISMATCH_STEPPING 0x0010\r
130#define EFI_COMPUTING_UNIT_MISMATCH_CACHE_SIZE 0x0020\r
131#define EFI_COMPUTING_UNIT_MISMATCH_OEM1 0x1000\r
132#define EFI_COMPUTING_UNIT_MISMATCH_OEM2 0x2000\r
133#define EFI_COMPUTING_UNIT_MISMATCH_OEM3 0x4000\r
134#define EFI_COMPUTING_UNIT_MISMATCH_OEM4 0x8000\r
135\r
136///\r
137/// Thermal Extended Error Data\r
138///\r
139typedef struct {\r
140 EFI_STATUS_CODE_DATA DataHeader;\r
141 EFI_EXP_BASE10_DATA Temperature;\r
142 EFI_EXP_BASE10_DATA Threshold;\r
143} EFI_COMPUTING_UNIT_THERMAL_ERROR_DATA;\r
144\r
145///\r
146/// Processor Disabled Extended Error Data\r
147///\r
148typedef struct {\r
149 EFI_STATUS_CODE_DATA DataHeader;\r
150 UINT32 Cause;\r
151 BOOLEAN SoftwareDisabled;\r
152} EFI_COMPUTING_UNIT_CPU_DISABLED_ERROR_DATA;\r
153\r
78430d7c 154\r
ee65068c 155typedef enum {\r
156 EfiInitCacheDataOnly,\r
157 EfiInitCacheInstrOnly,\r
158 EfiInitCacheBoth,\r
159 EfiInitCacheUnspecified\r
160} EFI_INIT_CACHE_TYPE;\r
161\r
162///\r
163/// Embedded cache init extended data\r
164///\r
165typedef struct {\r
166 EFI_STATUS_CODE_DATA DataHeader;\r
167 UINT32 Level;\r
168 EFI_INIT_CACHE_TYPE Type;\r
169} EFI_CACHE_INIT_DATA;\r
170\r
171//\r
172// Memory Extended Error Data\r
173//\r
174\r
175///\r
176/// Memory Error Granularity Definition\r
177///\r
178typedef UINT8 EFI_MEMORY_ERROR_GRANULARITY;\r
179\r
180///\r
181/// Memory Error Operation Definition\r
182///\r
183typedef UINT8 EFI_MEMORY_ERROR_OPERATION;\r
184\r
185typedef struct {\r
186 EFI_STATUS_CODE_DATA DataHeader;\r
187 EFI_MEMORY_ERROR_GRANULARITY Granularity;\r
188 EFI_MEMORY_ERROR_OPERATION Operation;\r
189 UINTN Syndrome;\r
190 EFI_PHYSICAL_ADDRESS Address;\r
191 UINTN Resolution;\r
192} EFI_MEMORY_EXTENDED_ERROR_DATA;\r
193\r
78430d7c 194typedef struct {\r
195 EFI_MEMORY_ERROR_GRANULARITY Granularity;\r
196 EFI_MEMORY_ERROR_OPERATION Operation;\r
197 UINTN Syndrome;\r
198 EFI_PHYSICAL_ADDRESS Address;\r
199 UINTN Resolution;\r
200} EFI_MEMORY_EXTENDED_ERROR_DATA_PAYLOAD;\r
201\r
ee65068c 202//\r
203// Memory Error Granularities\r
204//\r
205#define EFI_MEMORY_ERROR_OTHER 0x01\r
206#define EFI_MEMORY_ERROR_UNKNOWN 0x02\r
207#define EFI_MEMORY_ERROR_DEVICE 0x03\r
208#define EFI_MEMORY_ERROR_PARTITION 0x04\r
209\r
210//\r
211// Memory Error Operations\r
212//\r
213#define EFI_MEMORY_OPERATION_OTHER 0x01\r
214#define EFI_MEMORY_OPERATION_UNKNOWN 0x02\r
215#define EFI_MEMORY_OPERATION_READ 0x03\r
216#define EFI_MEMORY_OPERATION_WRITE 0x04\r
217#define EFI_MEMORY_OPERATION_PARTIAL_WRITE 0x05\r
218\r
219//\r
220// Define shorthands to describe Group Operations\r
221// Many memory init operations are essentially group\r
222// operations.\r
223\r
224/// A shorthand to describe that the operation is performed\r
225/// on multiple devices within the array\r
226///\r
227#define EFI_MULTIPLE_MEMORY_DEVICE_OPERATION 0xfffe\r
228///\r
229/// A shorthand to describe that the operation is performed on all devices within the array\r
230///\r
231#define EFI_ALL_MEMORY_DEVICE_OPERATION 0xffff\r
232///\r
233/// A shorthand to describe that the operation is performed on multiple arrays\r
234///\r
235#define EFI_MULTIPLE_MEMORY_ARRAY_OPERATION 0xfffe\r
236///\r
237/// A shorthand to describe that the operation is performed on all the arrays\r
238///\r
239#define EFI_ALL_MEMORY_ARRAY_OPERATION 0xffff\r
240\r
241//\r
242// DIMM number\r
243//\r
244#pragma pack(1)\r
245typedef struct {\r
246 EFI_STATUS_CODE_DATA DataHeader;\r
247 UINT16 Array;\r
248 UINT16 Device;\r
249} EFI_STATUS_CODE_DIMM_NUMBER;\r
78430d7c 250\r
ee65068c 251#pragma pack()\r
252\r
253///\r
254/// Memory Module Mismatch Extended Error Data\r
255///\r
256typedef struct {\r
257 EFI_STATUS_CODE_DATA DataHeader;\r
258 EFI_STATUS_CODE_DIMM_NUMBER Instance;\r
259} EFI_MEMORY_MODULE_MISMATCH_ERROR_DATA;\r
260\r
78430d7c 261\r
ee65068c 262///\r
263/// Memory Range Extended Data\r
264///\r
265typedef struct {\r
266 EFI_STATUS_CODE_DATA DataHeader;\r
267 EFI_PHYSICAL_ADDRESS Start;\r
268 EFI_PHYSICAL_ADDRESS Length;\r
269} EFI_MEMORY_RANGE_EXTENDED_DATA;\r
270\r
271///\r
272/// Device handle Extended Data. Used for many\r
273/// errors and progress codes to point to the device.\r
274///\r
275typedef struct {\r
276 EFI_STATUS_CODE_DATA DataHeader;\r
277 EFI_HANDLE Handle;\r
278} EFI_DEVICE_HANDLE_EXTENDED_DATA;\r
279\r
280typedef struct {\r
281 EFI_STATUS_CODE_DATA DataHeader;\r
282 UINT8 *DevicePath;\r
283} EFI_DEVICE_PATH_EXTENDED_DATA;\r
284\r
285typedef struct {\r
286 EFI_STATUS_CODE_DATA DataHeader;\r
287 EFI_HANDLE ControllerHandle;\r
288 EFI_HANDLE DriverBindingHandle;\r
289 UINT16 DevicePathSize;\r
290 UINT8 *RemainingDevicePath;\r
291} EFI_STATUS_CODE_START_EXTENDED_DATA;\r
292\r
78430d7c 293typedef struct {\r
294 UINT8 *DevicePath;\r
295} EFI_DEVICE_PATH_EXTENDED_DATA_PAYLOAD;\r
296\r
78430d7c 297\r
ee65068c 298typedef struct {\r
299 EFI_STATUS_CODE_DATA DataHeader;\r
300 UINT32 Bar;\r
301 UINT16 DevicePathSize;\r
302 UINT16 ReqResSize;\r
303 UINT16 AllocResSize;\r
304 UINT8 *DevicePath;\r
305 UINT8 *ReqRes;\r
306 UINT8 *AllocRes;\r
307} EFI_RESOURCE_ALLOC_FAILURE_ERROR_DATA;\r
308\r
309///\r
310/// Extended Error Data for Assert\r
311///\r
312typedef struct {\r
313 EFI_STATUS_CODE_DATA DataHeader;\r
314 UINT32 LineNumber;\r
315 UINT32 FileNameSize;\r
316 EFI_STATUS_CODE_STRING_DATA *FileName;\r
317} EFI_DEBUG_ASSERT_DATA;\r
318\r
319///\r
320/// System Context Data EBC/IA32/IPF\r
321///\r
322typedef union {\r
323 EFI_SYSTEM_CONTEXT_EBC SystemContextEbc;\r
324 EFI_SYSTEM_CONTEXT_IA32 SystemContextIa32;\r
325 EFI_SYSTEM_CONTEXT_IPF SystemContextIpf;\r
326} EFI_STATUS_CODE_EXCEP_SYSTEM_CONTEXT;\r
327\r
328typedef struct {\r
329 EFI_STATUS_CODE_DATA DataHeader;\r
330 EFI_STATUS_CODE_EXCEP_SYSTEM_CONTEXT Context;\r
331} EFI_STATUS_CODE_EXCEP_EXTENDED_DATA;\r
332\r
333///\r
334/// Legacy Oprom extended data\r
335///\r
336typedef struct {\r
337 EFI_STATUS_CODE_DATA DataHeader;\r
338 EFI_HANDLE DeviceHandle;\r
339 EFI_PHYSICAL_ADDRESS RomImageBase;\r
340} EFI_LEGACY_OPROM_EXTENDED_DATA;\r
341\r
342#endif\r