]> git.proxmox.com Git - mirror_edk2.git/blame - IntelFrameworkPkg/Include/Common/FrameworkStatusCodeDataTypeId.h
Modified header files to make them compile
[mirror_edk2.git] / IntelFrameworkPkg / Include / Common / 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
24#include <Protocol/DebugSupport.h>\r
25\r
26///\r
27/// The size of string\r
28///\r
29#define EFI_STATUS_CODE_DATA_MAX_STRING_SIZE 150\r
30\r
31///\r
32/// This is the max data size including all the headers which can be passed\r
33/// as Status Code data. This data should be multiple of 8 byte\r
34/// to avoid any kind of boundary issue. Also, sum of this data size (inclusive\r
35/// of size of EFI_STATUS_CODE_DATA should not exceed the max record size of\r
36/// data hub\r
37///\r
38#define EFI_STATUS_CODE_DATA_MAX_SIZE 200\r
39\r
40#pragma pack(1)\r
41typedef enum {\r
42 EfiStringAscii,\r
43 EfiStringUnicode,\r
44 EfiStringToken\r
45} EFI_STRING_TYPE;\r
46\r
47typedef struct {\r
48 EFI_HII_HANDLE Handle;\r
49 STRING_REF Token;\r
50} EFI_STATUS_CODE_STRING_TOKEN;\r
51\r
52typedef union {\r
53 CHAR8 *Ascii;\r
54 CHAR16 *Unicode;\r
55 EFI_STATUS_CODE_STRING_TOKEN Hii;\r
56} EFI_STATUS_CODE_STRING;\r
57\r
58typedef struct {\r
59 EFI_STATUS_CODE_DATA DataHeader;\r
60 EFI_STRING_TYPE StringType;\r
61 EFI_STATUS_CODE_STRING String;\r
62} EFI_STATUS_CODE_STRING_DATA;\r
63\r
64#pragma pack()\r
65\r
66#pragma pack(1)\r
67\r
68typedef struct {\r
69 UINT32 ErrorLevel;\r
70 //\r
71 // 12 * sizeof (UINT64) Var Arg stack\r
72 //\r
73 // ascii DEBUG () Format string\r
74 //\r
75} EFI_DEBUG_INFO;\r
76\r
77#pragma pack()\r
78\r
79//\r
80// declaration for EFI_EXP_DATA. This may change\r
81//\r
82// typedef UINTN EFI_EXP_DATA;\r
83\r
84///\r
85/// Voltage Extended Error Data\r
86///\r
87typedef struct {\r
88 EFI_STATUS_CODE_DATA DataHeader;\r
89 EFI_EXP_BASE10_DATA Voltage;\r
90 EFI_EXP_BASE10_DATA Threshold;\r
91} EFI_COMPUTING_UNIT_VOLTAGE_ERROR_DATA;\r
92\r
93///\r
94/// Microcode Update Extended Error Data\r
95///\r
96typedef struct {\r
97 EFI_STATUS_CODE_DATA DataHeader;\r
98 UINT32 Version;\r
99} EFI_COMPUTING_UNIT_MICROCODE_UPDATE_ERROR_DATA;\r
100\r
101///\r
102/// Asynchronous Timer Extended Error Data\r
103///\r
104typedef struct {\r
105 EFI_STATUS_CODE_DATA DataHeader;\r
106 EFI_EXP_BASE10_DATA TimerLimit;\r
107} EFI_COMPUTING_UNIT_TIMER_EXPIRED_ERROR_DATA;\r
108\r
109///\r
110/// Host Processor Mismatch Extended Error Data\r
111///\r
112typedef struct {\r
113 EFI_STATUS_CODE_DATA DataHeader;\r
114 UINT32 Instance;\r
115 UINT16 Attributes;\r
116} EFI_HOST_PROCESSOR_MISMATCH_ERROR_DATA;\r
117\r
118//\r
119// EFI_COMPUTING_UNIT_MISMATCH_ATTRIBUTES\r
120// All other attributes are reserved for future use and\r
121// must be initialized to 0.\r
122//\r
123#define EFI_COMPUTING_UNIT_MISMATCH_SPEED 0x0001\r
124#define EFI_COMPUTING_UNIT_MISMATCH_FSB_SPEED 0x0002\r
125#define EFI_COMPUTING_UNIT_MISMATCH_FAMILY 0x0004\r
126#define EFI_COMPUTING_UNIT_MISMATCH_MODEL 0x0008\r
127#define EFI_COMPUTING_UNIT_MISMATCH_STEPPING 0x0010\r
128#define EFI_COMPUTING_UNIT_MISMATCH_CACHE_SIZE 0x0020\r
129#define EFI_COMPUTING_UNIT_MISMATCH_OEM1 0x1000\r
130#define EFI_COMPUTING_UNIT_MISMATCH_OEM2 0x2000\r
131#define EFI_COMPUTING_UNIT_MISMATCH_OEM3 0x4000\r
132#define EFI_COMPUTING_UNIT_MISMATCH_OEM4 0x8000\r
133\r
134///\r
135/// Thermal Extended Error Data\r
136///\r
137typedef struct {\r
138 EFI_STATUS_CODE_DATA DataHeader;\r
139 EFI_EXP_BASE10_DATA Temperature;\r
140 EFI_EXP_BASE10_DATA Threshold;\r
141} EFI_COMPUTING_UNIT_THERMAL_ERROR_DATA;\r
142\r
143///\r
144/// Processor Disabled Extended Error Data\r
145///\r
146typedef struct {\r
147 EFI_STATUS_CODE_DATA DataHeader;\r
148 UINT32 Cause;\r
149 BOOLEAN SoftwareDisabled;\r
150} EFI_COMPUTING_UNIT_CPU_DISABLED_ERROR_DATA;\r
151\r
152typedef enum {\r
153 EfiInitCacheDataOnly,\r
154 EfiInitCacheInstrOnly,\r
155 EfiInitCacheBoth,\r
156 EfiInitCacheUnspecified\r
157} EFI_INIT_CACHE_TYPE;\r
158\r
159///\r
160/// Embedded cache init extended data\r
161///\r
162typedef struct {\r
163 EFI_STATUS_CODE_DATA DataHeader;\r
164 UINT32 Level;\r
165 EFI_INIT_CACHE_TYPE Type;\r
166} EFI_CACHE_INIT_DATA;\r
167\r
168//\r
169// Memory Extended Error Data\r
170//\r
171\r
172///\r
173/// Memory Error Granularity Definition\r
174///\r
175typedef UINT8 EFI_MEMORY_ERROR_GRANULARITY;\r
176\r
177///\r
178/// Memory Error Operation Definition\r
179///\r
180typedef UINT8 EFI_MEMORY_ERROR_OPERATION;\r
181\r
182typedef struct {\r
183 EFI_STATUS_CODE_DATA DataHeader;\r
184 EFI_MEMORY_ERROR_GRANULARITY Granularity;\r
185 EFI_MEMORY_ERROR_OPERATION Operation;\r
186 UINTN Syndrome;\r
187 EFI_PHYSICAL_ADDRESS Address;\r
188 UINTN Resolution;\r
189} EFI_MEMORY_EXTENDED_ERROR_DATA;\r
190\r
191//\r
192// Memory Error Granularities\r
193//\r
194#define EFI_MEMORY_ERROR_OTHER 0x01\r
195#define EFI_MEMORY_ERROR_UNKNOWN 0x02\r
196#define EFI_MEMORY_ERROR_DEVICE 0x03\r
197#define EFI_MEMORY_ERROR_PARTITION 0x04\r
198\r
199//\r
200// Memory Error Operations\r
201//\r
202#define EFI_MEMORY_OPERATION_OTHER 0x01\r
203#define EFI_MEMORY_OPERATION_UNKNOWN 0x02\r
204#define EFI_MEMORY_OPERATION_READ 0x03\r
205#define EFI_MEMORY_OPERATION_WRITE 0x04\r
206#define EFI_MEMORY_OPERATION_PARTIAL_WRITE 0x05\r
207\r
208//\r
209// Define shorthands to describe Group Operations\r
210// Many memory init operations are essentially group\r
211// operations.\r
212\r
213/// A shorthand to describe that the operation is performed\r
214/// on multiple devices within the array\r
215///\r
216#define EFI_MULTIPLE_MEMORY_DEVICE_OPERATION 0xfffe\r
217///\r
218/// A shorthand to describe that the operation is performed on all devices within the array\r
219///\r
220#define EFI_ALL_MEMORY_DEVICE_OPERATION 0xffff\r
221///\r
222/// A shorthand to describe that the operation is performed on multiple arrays\r
223///\r
224#define EFI_MULTIPLE_MEMORY_ARRAY_OPERATION 0xfffe\r
225///\r
226/// A shorthand to describe that the operation is performed on all the arrays\r
227///\r
228#define EFI_ALL_MEMORY_ARRAY_OPERATION 0xffff\r
229\r
230//\r
231// DIMM number\r
232//\r
233#pragma pack(1)\r
234typedef struct {\r
235 EFI_STATUS_CODE_DATA DataHeader;\r
236 UINT16 Array;\r
237 UINT16 Device;\r
238} EFI_STATUS_CODE_DIMM_NUMBER;\r
239#pragma pack()\r
240\r
241///\r
242/// Memory Module Mismatch Extended Error Data\r
243///\r
244typedef struct {\r
245 EFI_STATUS_CODE_DATA DataHeader;\r
246 EFI_STATUS_CODE_DIMM_NUMBER Instance;\r
247} EFI_MEMORY_MODULE_MISMATCH_ERROR_DATA;\r
248\r
249///\r
250/// Memory Range Extended Data\r
251///\r
252typedef struct {\r
253 EFI_STATUS_CODE_DATA DataHeader;\r
254 EFI_PHYSICAL_ADDRESS Start;\r
255 EFI_PHYSICAL_ADDRESS Length;\r
256} EFI_MEMORY_RANGE_EXTENDED_DATA;\r
257\r
258///\r
259/// Device handle Extended Data. Used for many\r
260/// errors and progress codes to point to the device.\r
261///\r
262typedef struct {\r
263 EFI_STATUS_CODE_DATA DataHeader;\r
264 EFI_HANDLE Handle;\r
265} EFI_DEVICE_HANDLE_EXTENDED_DATA;\r
266\r
267typedef struct {\r
268 EFI_STATUS_CODE_DATA DataHeader;\r
269 UINT8 *DevicePath;\r
270} EFI_DEVICE_PATH_EXTENDED_DATA;\r
271\r
272typedef struct {\r
273 EFI_STATUS_CODE_DATA DataHeader;\r
274 EFI_HANDLE ControllerHandle;\r
275 EFI_HANDLE DriverBindingHandle;\r
276 UINT16 DevicePathSize;\r
277 UINT8 *RemainingDevicePath;\r
278} EFI_STATUS_CODE_START_EXTENDED_DATA;\r
279\r
280///\r
281/// Resource Allocation Failure Extended Error Data\r
282///\r
283\r
284/*\r
285typedef struct {\r
286 EFI_STATUS_CODE_DATA DataHeader;\r
287 EFI_DEVICE_PATH_PROTOCOL *DevicePath;\r
288 UINT32 Bar;\r
289 VOID *ReqRes;\r
290 VOID *AllocRes;\r
291} EFI_RESOURCE_ALLOC_FAILURE_ERROR_DATA;\r
292*/\r
293typedef struct {\r
294 EFI_STATUS_CODE_DATA DataHeader;\r
295 UINT32 Bar;\r
296 UINT16 DevicePathSize;\r
297 UINT16 ReqResSize;\r
298 UINT16 AllocResSize;\r
299 UINT8 *DevicePath;\r
300 UINT8 *ReqRes;\r
301 UINT8 *AllocRes;\r
302} EFI_RESOURCE_ALLOC_FAILURE_ERROR_DATA;\r
303\r
304///\r
305/// Extended Error Data for Assert\r
306///\r
307typedef struct {\r
308 EFI_STATUS_CODE_DATA DataHeader;\r
309 UINT32 LineNumber;\r
310 UINT32 FileNameSize;\r
311 EFI_STATUS_CODE_STRING_DATA *FileName;\r
312} EFI_DEBUG_ASSERT_DATA;\r
313\r
314///\r
315/// System Context Data EBC/IA32/IPF\r
316///\r
317typedef union {\r
318 EFI_SYSTEM_CONTEXT_EBC SystemContextEbc;\r
319 EFI_SYSTEM_CONTEXT_IA32 SystemContextIa32;\r
320 EFI_SYSTEM_CONTEXT_IPF SystemContextIpf;\r
321} EFI_STATUS_CODE_EXCEP_SYSTEM_CONTEXT;\r
322\r
323typedef struct {\r
324 EFI_STATUS_CODE_DATA DataHeader;\r
325 EFI_STATUS_CODE_EXCEP_SYSTEM_CONTEXT Context;\r
326} EFI_STATUS_CODE_EXCEP_EXTENDED_DATA;\r
327\r
328///\r
329/// Legacy Oprom extended data\r
330///\r
331typedef struct {\r
332 EFI_STATUS_CODE_DATA DataHeader;\r
333 EFI_HANDLE DeviceHandle;\r
334 EFI_PHYSICAL_ADDRESS RomImageBase;\r
335} EFI_LEGACY_OPROM_EXTENDED_DATA;\r
336\r
337#endif\r