xref: /freebsd/sys/contrib/edk2/Include/Pi/PiStatusCode.h (revision f439973d6726c3be929c8fb3b1545b8b1744abc3)
1 /** @file
2   StatusCode related definitions in PI.
3 
4 Copyright (c) 2009 - 2018, Intel Corporation. All rights reserved.<BR>
5 Copyright (c) 2024, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
6 SPDX-License-Identifier: BSD-2-Clause-Patent
7 
8   @par Revision Reference:
9   These status codes are defined in UEFI Platform Initialization Specification 1.2,
10   Volume 3: Shared Architectural Elements.
11 
12 **/
13 
14 #ifndef __PI_STATUS_CODE_H__
15 #define __PI_STATUS_CODE_H__
16 
17 //
18 // Required for IA32, X64, IPF, ARM and EBC defines for CPU exception types
19 //
20 #include <Protocol/DebugSupport.h>
21 
22 ///
23 /// Status Code Type Definition.
24 ///
25 typedef UINT32 EFI_STATUS_CODE_TYPE;
26 
27 ///
28 /// A Status Code Type is made up of the code type and severity.
29 /// All values masked by EFI_STATUS_CODE_RESERVED_MASK are
30 /// reserved for use by this specification.
31 ///
32 ///@{
33 #define EFI_STATUS_CODE_TYPE_MASK      0x000000FF
34 #define EFI_STATUS_CODE_SEVERITY_MASK  0xFF000000
35 #define EFI_STATUS_CODE_RESERVED_MASK  0x00FFFF00
36 ///@}
37 
38 ///
39 /// Definition of code types. All other values masked by
40 /// EFI_STATUS_CODE_TYPE_MASK are reserved for use by
41 /// this specification.
42 ///
43 ///@{
44 #define EFI_PROGRESS_CODE  0x00000001
45 #define EFI_ERROR_CODE     0x00000002
46 #define EFI_DEBUG_CODE     0x00000003
47 ///@}
48 
49 ///
50 /// Definitions of severities, all other values masked by
51 /// EFI_STATUS_CODE_SEVERITY_MASK are reserved for use by
52 /// this specification.
53 /// Uncontained errors are major errors that could not contained
54 /// to the specific component that is reporting the error.
55 /// For example, if a memory error was not detected early enough,
56 /// the bad data could be consumed by other drivers.
57 ///
58 ///@{
59 #define EFI_ERROR_MINOR        0x40000000
60 #define EFI_ERROR_MAJOR        0x80000000
61 #define EFI_ERROR_UNRECOVERED  0x90000000
62 #define EFI_ERROR_UNCONTAINED  0xa0000000
63 ///@}
64 
65 ///
66 /// Status Code Value Definition.
67 ///
68 typedef UINT32 EFI_STATUS_CODE_VALUE;
69 
70 ///
71 /// A Status Code Value is made up of the class, subclass, and
72 /// an operation.
73 ///
74 ///@{
75 #define EFI_STATUS_CODE_CLASS_MASK      0xFF000000
76 #define EFI_STATUS_CODE_SUBCLASS_MASK   0x00FF0000
77 #define EFI_STATUS_CODE_OPERATION_MASK  0x0000FFFF
78 ///@}
79 
80 ///
81 /// Definition of Status Code extended data header.
82 /// The data will follow HeaderSize bytes from the beginning of
83 /// the structure and is Size bytes long.
84 ///
85 typedef struct {
86   ///
87   /// The size of the structure. This is specified to enable future expansion.
88   ///
89   UINT16      HeaderSize;
90   ///
91   /// The size of the data in bytes. This does not include the size of the header structure.
92   ///
93   UINT16      Size;
94   ///
95   /// The GUID defining the type of the data.
96   ///
97   EFI_GUID    Type;
98 } EFI_STATUS_CODE_DATA;
99 
100 ///
101 /// General partitioning scheme for Progress and Error Codes are:
102 ///   - 0x0000-0x0FFF    Shared by all sub-classes in a given class.
103 ///   - 0x1000-0x7FFF    Subclass Specific.
104 ///   - 0x8000-0xFFFF    OEM specific.
105 ///@{
106 #define EFI_SUBCLASS_SPECIFIC  0x1000
107 #define EFI_OEM_SPECIFIC       0x8000
108 ///@}
109 
110 ///
111 /// Debug Code definitions for all classes and subclass.
112 /// Only one debug code is defined at this point and should
113 /// be used for anything that is sent to the debug stream.
114 ///
115 ///@{
116 #define EFI_DC_UNSPECIFIED  0x0
117 ///@}
118 
119 ///
120 /// Class definitions.
121 /// Values of 4-127 are reserved for future use by this specification.
122 /// Values in the range 127-255 are reserved for OEM use.
123 ///
124 ///@{
125 #define EFI_COMPUTING_UNIT  0x00000000
126 #define EFI_PERIPHERAL      0x01000000
127 #define EFI_IO_BUS          0x02000000
128 #define EFI_SOFTWARE        0x03000000
129 ///@}
130 
131 ///
132 /// Computing Unit Subclass definitions.
133 /// Values of 8-127 are reserved for future use by this specification.
134 /// Values of 128-255 are reserved for OEM use.
135 ///
136 ///@{
137 #define EFI_COMPUTING_UNIT_UNSPECIFIED         (EFI_COMPUTING_UNIT | 0x00000000)
138 #define EFI_COMPUTING_UNIT_HOST_PROCESSOR      (EFI_COMPUTING_UNIT | 0x00010000)
139 #define EFI_COMPUTING_UNIT_FIRMWARE_PROCESSOR  (EFI_COMPUTING_UNIT | 0x00020000)
140 #define EFI_COMPUTING_UNIT_IO_PROCESSOR        (EFI_COMPUTING_UNIT | 0x00030000)
141 #define EFI_COMPUTING_UNIT_CACHE               (EFI_COMPUTING_UNIT | 0x00040000)
142 #define EFI_COMPUTING_UNIT_MEMORY              (EFI_COMPUTING_UNIT | 0x00050000)
143 #define EFI_COMPUTING_UNIT_CHIPSET             (EFI_COMPUTING_UNIT | 0x00060000)
144 #define EFI_COMPUTING_UNIT_MANAGEABILITY       (EFI_COMPUTING_UNIT | 0x00070000)
145 ///@}
146 
147 ///
148 /// Computing Unit Class Progress Code definitions.
149 /// These are shared by all subclasses.
150 ///
151 ///@{
152 #define EFI_CU_PC_INIT_BEGIN  0x00000000
153 #define EFI_CU_PC_INIT_END    0x00000001
154 ///@}
155 
156 //
157 // Computing Unit Unspecified Subclass Progress Code definitions.
158 //
159 
160 ///
161 /// Computing Unit Host Processor Subclass Progress Code definitions.
162 ///@{
163 #define EFI_CU_HP_PC_POWER_ON_INIT           (EFI_SUBCLASS_SPECIFIC | 0x00000000)
164 #define EFI_CU_HP_PC_CACHE_INIT              (EFI_SUBCLASS_SPECIFIC | 0x00000001)
165 #define EFI_CU_HP_PC_RAM_INIT                (EFI_SUBCLASS_SPECIFIC | 0x00000002)
166 #define EFI_CU_HP_PC_MEMORY_CONTROLLER_INIT  (EFI_SUBCLASS_SPECIFIC | 0x00000003)
167 #define EFI_CU_HP_PC_IO_INIT                 (EFI_SUBCLASS_SPECIFIC | 0x00000004)
168 #define EFI_CU_HP_PC_BSP_SELECT              (EFI_SUBCLASS_SPECIFIC | 0x00000005)
169 #define EFI_CU_HP_PC_BSP_RESELECT            (EFI_SUBCLASS_SPECIFIC | 0x00000006)
170 #define EFI_CU_HP_PC_AP_INIT                 (EFI_SUBCLASS_SPECIFIC | 0x00000007)
171 #define EFI_CU_HP_PC_SMM_INIT                (EFI_SUBCLASS_SPECIFIC | 0x00000008)
172 ///@}
173 
174 //
175 // Computing Unit Firmware Processor Subclass Progress Code definitions.
176 //
177 
178 //
179 // Computing Unit IO Processor Subclass Progress Code definitions.
180 //
181 
182 ///
183 /// Computing Unit Cache Subclass Progress Code definitions.
184 ///
185 ///@{
186 #define EFI_CU_CACHE_PC_PRESENCE_DETECT  (EFI_SUBCLASS_SPECIFIC | 0x00000000)
187 #define EFI_CU_CACHE_PC_CONFIGURATION    (EFI_SUBCLASS_SPECIFIC | 0x00000001)
188 ///@}
189 
190 ///
191 /// Computing Unit Memory Subclass Progress Code definitions.
192 ///
193 ///@{
194 #define EFI_CU_MEMORY_PC_SPD_READ         (EFI_SUBCLASS_SPECIFIC | 0x00000000)
195 #define EFI_CU_MEMORY_PC_PRESENCE_DETECT  (EFI_SUBCLASS_SPECIFIC | 0x00000001)
196 #define EFI_CU_MEMORY_PC_TIMING           (EFI_SUBCLASS_SPECIFIC | 0x00000002)
197 #define EFI_CU_MEMORY_PC_CONFIGURING      (EFI_SUBCLASS_SPECIFIC | 0x00000003)
198 #define EFI_CU_MEMORY_PC_OPTIMIZING       (EFI_SUBCLASS_SPECIFIC | 0x00000004)
199 #define EFI_CU_MEMORY_PC_INIT             (EFI_SUBCLASS_SPECIFIC | 0x00000005)
200 #define EFI_CU_MEMORY_PC_TEST             (EFI_SUBCLASS_SPECIFIC | 0x00000006)
201 ///@}
202 
203 //
204 // Computing Unit Chipset Subclass Progress Code definitions.
205 //
206 
207 ///
208 /// South Bridge initialization prior to memory detection.
209 ///
210 #define EFI_CHIPSET_PC_PEI_CAR_SB_INIT  (EFI_SUBCLASS_SPECIFIC|0x00000000)
211 
212 ///
213 /// North Bridge initialization prior to memory detection.
214 ///
215 #define EFI_CHIPSET_PC_PEI_CAR_NB_INIT  (EFI_SUBCLASS_SPECIFIC|0x00000001)
216 
217 ///
218 /// South Bridge initialization after memory detection.
219 ///
220 #define EFI_CHIPSET_PC_PEI_MEM_SB_INIT  (EFI_SUBCLASS_SPECIFIC|0x00000002)
221 
222 ///
223 /// North Bridge initialization after memory detection.
224 ///
225 #define EFI_CHIPSET_PC_PEI_MEM_NB_INIT  (EFI_SUBCLASS_SPECIFIC|0x00000003)
226 
227 ///
228 /// PCI Host Bridge DXE initialization.
229 ///
230 #define EFI_CHIPSET_PC_DXE_HB_INIT  (EFI_SUBCLASS_SPECIFIC|0x00000004)
231 
232 ///
233 /// North Bridge DXE initialization.
234 ///
235 #define EFI_CHIPSET_PC_DXE_NB_INIT  (EFI_SUBCLASS_SPECIFIC|0x00000005)
236 
237 ///
238 /// North Bridge specific SMM initialization in DXE.
239 ///
240 #define EFI_CHIPSET_PC_DXE_NB_SMM_INIT  (EFI_SUBCLASS_SPECIFIC|0x00000006)
241 
242 ///
243 /// Initialization of the South Bridge specific UEFI Runtime Services.
244 ///
245 #define EFI_CHIPSET_PC_DXE_SB_RT_INIT  (EFI_SUBCLASS_SPECIFIC|0x00000007)
246 
247 ///
248 /// South Bridge DXE initialization
249 ///
250 #define EFI_CHIPSET_PC_DXE_SB_INIT  (EFI_SUBCLASS_SPECIFIC|0x00000008)
251 
252 ///
253 /// South Bridge specific SMM initialization in DXE.
254 ///
255 #define EFI_CHIPSET_PC_DXE_SB_SMM_INIT  (EFI_SUBCLASS_SPECIFIC|0x00000009)
256 
257 ///
258 /// Initialization of the South Bridge devices.
259 ///
260 #define EFI_CHIPSET_PC_DXE_SB_DEVICES_INIT  (EFI_SUBCLASS_SPECIFIC|0x0000000a)
261 
262 ///
263 /// Computing Unit Class Error Code definitions.
264 /// These are shared by all subclasses.
265 ///
266 ///@{
267 #define EFI_CU_EC_NON_SPECIFIC    0x00000000
268 #define EFI_CU_EC_DISABLED        0x00000001
269 #define EFI_CU_EC_NOT_SUPPORTED   0x00000002
270 #define EFI_CU_EC_NOT_DETECTED    0x00000003
271 #define EFI_CU_EC_NOT_CONFIGURED  0x00000004
272 ///@}
273 
274 //
275 // Computing Unit Unspecified Subclass Error Code definitions.
276 //
277 
278 ///
279 /// Computing Unit Host Processor Subclass Error Code definitions.
280 ///
281 ///@{
282 #define EFI_CU_HP_EC_INVALID_TYPE         (EFI_SUBCLASS_SPECIFIC | 0x00000000)
283 #define EFI_CU_HP_EC_INVALID_SPEED        (EFI_SUBCLASS_SPECIFIC | 0x00000001)
284 #define EFI_CU_HP_EC_MISMATCH             (EFI_SUBCLASS_SPECIFIC | 0x00000002)
285 #define EFI_CU_HP_EC_TIMER_EXPIRED        (EFI_SUBCLASS_SPECIFIC | 0x00000003)
286 #define EFI_CU_HP_EC_SELF_TEST            (EFI_SUBCLASS_SPECIFIC | 0x00000004)
287 #define EFI_CU_HP_EC_INTERNAL             (EFI_SUBCLASS_SPECIFIC | 0x00000005)
288 #define EFI_CU_HP_EC_THERMAL              (EFI_SUBCLASS_SPECIFIC | 0x00000006)
289 #define EFI_CU_HP_EC_LOW_VOLTAGE          (EFI_SUBCLASS_SPECIFIC | 0x00000007)
290 #define EFI_CU_HP_EC_HIGH_VOLTAGE         (EFI_SUBCLASS_SPECIFIC | 0x00000008)
291 #define EFI_CU_HP_EC_CACHE                (EFI_SUBCLASS_SPECIFIC | 0x00000009)
292 #define EFI_CU_HP_EC_MICROCODE_UPDATE     (EFI_SUBCLASS_SPECIFIC | 0x0000000A)
293 #define EFI_CU_HP_EC_CORRECTABLE          (EFI_SUBCLASS_SPECIFIC | 0x0000000B)
294 #define EFI_CU_HP_EC_UNCORRECTABLE        (EFI_SUBCLASS_SPECIFIC | 0x0000000C)
295 #define EFI_CU_HP_EC_NO_MICROCODE_UPDATE  (EFI_SUBCLASS_SPECIFIC | 0x0000000D)
296 ///@}
297 
298 ///
299 /// Computing Unit Firmware Processor Subclass Error Code definitions.
300 ///
301 ///@{
302 #define EFI_CU_FP_EC_HARD_FAIL   (EFI_SUBCLASS_SPECIFIC | 0x00000000)
303 #define EFI_CU_FP_EC_SOFT_FAIL   (EFI_SUBCLASS_SPECIFIC | 0x00000001)
304 #define EFI_CU_FP_EC_COMM_ERROR  (EFI_SUBCLASS_SPECIFIC | 0x00000002)
305 ///@}
306 
307 //
308 // Computing Unit IO Processor Subclass Error Code definitions.
309 //
310 
311 ///
312 /// Computing Unit Cache Subclass Error Code definitions.
313 ///
314 ///@{
315 #define EFI_CU_CACHE_EC_INVALID_TYPE   (EFI_SUBCLASS_SPECIFIC | 0x00000000)
316 #define EFI_CU_CACHE_EC_INVALID_SPEED  (EFI_SUBCLASS_SPECIFIC | 0x00000001)
317 #define EFI_CU_CACHE_EC_INVALID_SIZE   (EFI_SUBCLASS_SPECIFIC | 0x00000002)
318 #define EFI_CU_CACHE_EC_MISMATCH       (EFI_SUBCLASS_SPECIFIC | 0x00000003)
319 ///@}
320 
321 ///
322 /// Computing Unit Memory Subclass Error Code definitions.
323 ///
324 ///@{
325 #define EFI_CU_MEMORY_EC_INVALID_TYPE    (EFI_SUBCLASS_SPECIFIC | 0x00000000)
326 #define EFI_CU_MEMORY_EC_INVALID_SPEED   (EFI_SUBCLASS_SPECIFIC | 0x00000001)
327 #define EFI_CU_MEMORY_EC_CORRECTABLE     (EFI_SUBCLASS_SPECIFIC | 0x00000002)
328 #define EFI_CU_MEMORY_EC_UNCORRECTABLE   (EFI_SUBCLASS_SPECIFIC | 0x00000003)
329 #define EFI_CU_MEMORY_EC_SPD_FAIL        (EFI_SUBCLASS_SPECIFIC | 0x00000004)
330 #define EFI_CU_MEMORY_EC_INVALID_SIZE    (EFI_SUBCLASS_SPECIFIC | 0x00000005)
331 #define EFI_CU_MEMORY_EC_MISMATCH        (EFI_SUBCLASS_SPECIFIC | 0x00000006)
332 #define EFI_CU_MEMORY_EC_S3_RESUME_FAIL  (EFI_SUBCLASS_SPECIFIC | 0x00000007)
333 #define EFI_CU_MEMORY_EC_UPDATE_FAIL     (EFI_SUBCLASS_SPECIFIC | 0x00000008)
334 #define EFI_CU_MEMORY_EC_NONE_DETECTED   (EFI_SUBCLASS_SPECIFIC | 0x00000009)
335 #define EFI_CU_MEMORY_EC_NONE_USEFUL     (EFI_SUBCLASS_SPECIFIC | 0x0000000A)
336 ///@}
337 
338 ///
339 /// Computing Unit Chipset Subclass Error Code definitions.
340 ///
341 ///@{
342 #define EFI_CHIPSET_EC_BAD_BATTERY      (EFI_SUBCLASS_SPECIFIC | 0x00000000)
343 #define EFI_CHIPSET_EC_DXE_NB_ERROR     (EFI_SUBCLASS_SPECIFIC | 0x00000001)
344 #define EFI_CHIPSET_EC_DXE_SB_ERROR     (EFI_SUBCLASS_SPECIFIC | 0x00000002)
345 #define EFI_CHIPSET_EC_INTRUDER_DETECT  (EFI_SUBCLASS_SPECIFIC | 0x00000003)
346 ///@}
347 
348 ///
349 /// Computing Unit Manageability Subclass Error Code definitions.
350 /// The detail information is reported by REPORT_STATUS_CODE_WITH_EXTENDED_DATA
351 //  with ASCII string in EFI_STATUS_CODE_STRING_DATA.
352 ///@{
353 #define EFI_MANAGEABILITY_EC_REDFISH_COMMUNICATION_ERROR         (EFI_SUBCLASS_SPECIFIC | 0x00000000)
354 #define EFI_MANAGEABILITY_EC_REDFISH_HOST_INTERFACE_ERROR        (EFI_SUBCLASS_SPECIFIC | 0x00000001)
355 #define EFI_MANAGEABILITY_EC_REDFISH_BOOTSTRAP_CREDENTIAL_ERROR  (EFI_SUBCLASS_SPECIFIC | 0x00000002)
356 ///@}
357 
358 ///
359 /// Peripheral Subclass definitions.
360 /// Values of 12-127 are reserved for future use by this specification.
361 /// Values of 128-255 are reserved for OEM use.
362 ///
363 ///@{
364 #define EFI_PERIPHERAL_UNSPECIFIED      (EFI_PERIPHERAL | 0x00000000)
365 #define EFI_PERIPHERAL_KEYBOARD         (EFI_PERIPHERAL | 0x00010000)
366 #define EFI_PERIPHERAL_MOUSE            (EFI_PERIPHERAL | 0x00020000)
367 #define EFI_PERIPHERAL_LOCAL_CONSOLE    (EFI_PERIPHERAL | 0x00030000)
368 #define EFI_PERIPHERAL_REMOTE_CONSOLE   (EFI_PERIPHERAL | 0x00040000)
369 #define EFI_PERIPHERAL_SERIAL_PORT      (EFI_PERIPHERAL | 0x00050000)
370 #define EFI_PERIPHERAL_PARALLEL_PORT    (EFI_PERIPHERAL | 0x00060000)
371 #define EFI_PERIPHERAL_FIXED_MEDIA      (EFI_PERIPHERAL | 0x00070000)
372 #define EFI_PERIPHERAL_REMOVABLE_MEDIA  (EFI_PERIPHERAL | 0x00080000)
373 #define EFI_PERIPHERAL_AUDIO_INPUT      (EFI_PERIPHERAL | 0x00090000)
374 #define EFI_PERIPHERAL_AUDIO_OUTPUT     (EFI_PERIPHERAL | 0x000A0000)
375 #define EFI_PERIPHERAL_LCD_DEVICE       (EFI_PERIPHERAL | 0x000B0000)
376 #define EFI_PERIPHERAL_NETWORK          (EFI_PERIPHERAL | 0x000C0000)
377 #define EFI_PERIPHERAL_DOCKING          (EFI_PERIPHERAL | 0x000D0000)
378 #define EFI_PERIPHERAL_TPM              (EFI_PERIPHERAL | 0x000E0000)
379 ///@}
380 
381 ///
382 /// Peripheral Class Progress Code definitions.
383 /// These are shared by all subclasses.
384 ///
385 ///@{
386 #define EFI_P_PC_INIT             0x00000000
387 #define EFI_P_PC_RESET            0x00000001
388 #define EFI_P_PC_DISABLE          0x00000002
389 #define EFI_P_PC_PRESENCE_DETECT  0x00000003
390 #define EFI_P_PC_ENABLE           0x00000004
391 #define EFI_P_PC_RECONFIG         0x00000005
392 #define EFI_P_PC_DETECTED         0x00000006
393 #define EFI_P_PC_REMOVED          0x00000007
394 ///@}
395 
396 //
397 // Peripheral Class Unspecified Subclass Progress Code definitions.
398 //
399 
400 ///
401 /// Peripheral Class Keyboard Subclass Progress Code definitions.
402 ///
403 ///@{
404 #define EFI_P_KEYBOARD_PC_CLEAR_BUFFER  (EFI_SUBCLASS_SPECIFIC | 0x00000000)
405 #define EFI_P_KEYBOARD_PC_SELF_TEST     (EFI_SUBCLASS_SPECIFIC | 0x00000001)
406 ///@}
407 
408 ///
409 /// Peripheral Class Mouse Subclass Progress Code definitions.
410 ///
411 ///@{
412 #define EFI_P_MOUSE_PC_SELF_TEST  (EFI_SUBCLASS_SPECIFIC | 0x00000000)
413 ///@}
414 
415 //
416 // Peripheral Class Local Console Subclass Progress Code definitions.
417 //
418 
419 //
420 // Peripheral Class Remote Console Subclass Progress Code definitions.
421 //
422 
423 ///
424 /// Peripheral Class Serial Port Subclass Progress Code definitions.
425 ///
426 ///@{
427 #define EFI_P_SERIAL_PORT_PC_CLEAR_BUFFER  (EFI_SUBCLASS_SPECIFIC | 0x00000000)
428 ///@}
429 
430 //
431 // Peripheral Class Parallel Port Subclass Progress Code definitions.
432 //
433 
434 //
435 // Peripheral Class Fixed Media Subclass Progress Code definitions.
436 //
437 
438 //
439 // Peripheral Class Removable Media Subclass Progress Code definitions.
440 //
441 
442 //
443 // Peripheral Class Audio Input Subclass Progress Code definitions.
444 //
445 
446 //
447 // Peripheral Class Audio Output Subclass Progress Code definitions.
448 //
449 
450 //
451 // Peripheral Class LCD Device Subclass Progress Code definitions.
452 //
453 
454 //
455 // Peripheral Class Network Subclass Progress Code definitions.
456 //
457 
458 ///
459 /// Peripheral Class Error Code definitions.
460 /// These are shared by all subclasses.
461 ///
462 ///@{
463 #define EFI_P_EC_NON_SPECIFIC       0x00000000
464 #define EFI_P_EC_DISABLED           0x00000001
465 #define EFI_P_EC_NOT_SUPPORTED      0x00000002
466 #define EFI_P_EC_NOT_DETECTED       0x00000003
467 #define EFI_P_EC_NOT_CONFIGURED     0x00000004
468 #define EFI_P_EC_INTERFACE_ERROR    0x00000005
469 #define EFI_P_EC_CONTROLLER_ERROR   0x00000006
470 #define EFI_P_EC_INPUT_ERROR        0x00000007
471 #define EFI_P_EC_OUTPUT_ERROR       0x00000008
472 #define EFI_P_EC_RESOURCE_CONFLICT  0x00000009
473 ///@}
474 
475 //
476 // Peripheral Class Unspecified Subclass Error Code definitions.
477 //
478 
479 ///
480 /// Peripheral Class Keyboard Subclass Error Code definitions.
481 ///
482 ///@{
483 #define EFI_P_KEYBOARD_EC_LOCKED       (EFI_SUBCLASS_SPECIFIC | 0x00000000)
484 #define EFI_P_KEYBOARD_EC_STUCK_KEY    (EFI_SUBCLASS_SPECIFIC | 0x00000001)
485 #define EFI_P_KEYBOARD_EC_BUFFER_FULL  (EFI_SUBCLASS_SPECIFIC | 0x00000002)
486 ///@}
487 
488 ///
489 /// Peripheral Class Mouse Subclass Error Code definitions.
490 ///
491 ///@{
492 #define EFI_P_MOUSE_EC_LOCKED  (EFI_SUBCLASS_SPECIFIC | 0x00000000)
493 ///@}
494 
495 //
496 // Peripheral Class Local Console Subclass Error Code definitions.
497 //
498 
499 //
500 // Peripheral Class Remote Console Subclass Error Code definitions.
501 //
502 
503 //
504 // Peripheral Class Serial Port Subclass Error Code definitions.
505 //
506 
507 //
508 // Peripheral Class Parallel Port Subclass Error Code definitions.
509 //
510 
511 //
512 // Peripheral Class Fixed Media Subclass Error Code definitions.
513 //
514 
515 //
516 // Peripheral Class Removable Media Subclass Error Code definitions.
517 //
518 
519 //
520 // Peripheral Class Audio Input Subclass Error Code definitions.
521 //
522 
523 //
524 // Peripheral Class Audio Output Subclass Error Code definitions.
525 //
526 
527 //
528 // Peripheral Class LCD Device Subclass Error Code definitions.
529 //
530 
531 //
532 // Peripheral Class Network Subclass Error Code definitions.
533 //
534 
535 ///
536 /// IO Bus Subclass definitions.
537 /// Values of 14-127 are reserved for future use by this specification.
538 /// Values of 128-255 are reserved for OEM use.
539 ///
540 ///@{
541 #define EFI_IO_BUS_UNSPECIFIED  (EFI_IO_BUS | 0x00000000)
542 #define EFI_IO_BUS_PCI          (EFI_IO_BUS | 0x00010000)
543 #define EFI_IO_BUS_USB          (EFI_IO_BUS | 0x00020000)
544 #define EFI_IO_BUS_IBA          (EFI_IO_BUS | 0x00030000)
545 #define EFI_IO_BUS_AGP          (EFI_IO_BUS | 0x00040000)
546 #define EFI_IO_BUS_PC_CARD      (EFI_IO_BUS | 0x00050000)
547 #define EFI_IO_BUS_LPC          (EFI_IO_BUS | 0x00060000)
548 #define EFI_IO_BUS_SCSI         (EFI_IO_BUS | 0x00070000)
549 #define EFI_IO_BUS_ATA_ATAPI    (EFI_IO_BUS | 0x00080000)
550 #define EFI_IO_BUS_FC           (EFI_IO_BUS | 0x00090000)
551 #define EFI_IO_BUS_IP_NETWORK   (EFI_IO_BUS | 0x000A0000)
552 #define EFI_IO_BUS_SMBUS        (EFI_IO_BUS | 0x000B0000)
553 #define EFI_IO_BUS_I2C          (EFI_IO_BUS | 0x000C0000)
554 ///@}
555 
556 ///
557 /// IO Bus Class Progress Code definitions.
558 /// These are shared by all subclasses.
559 ///
560 ///@{
561 #define EFI_IOB_PC_INIT      0x00000000
562 #define EFI_IOB_PC_RESET     0x00000001
563 #define EFI_IOB_PC_DISABLE   0x00000002
564 #define EFI_IOB_PC_DETECT    0x00000003
565 #define EFI_IOB_PC_ENABLE    0x00000004
566 #define EFI_IOB_PC_RECONFIG  0x00000005
567 #define EFI_IOB_PC_HOTPLUG   0x00000006
568 ///@}
569 
570 //
571 // IO Bus Class Unspecified Subclass Progress Code definitions.
572 //
573 
574 ///
575 /// IO Bus Class PCI Subclass Progress Code definitions.
576 ///
577 ///@{
578 #define EFI_IOB_PCI_BUS_ENUM   (EFI_SUBCLASS_SPECIFIC | 0x00000000)
579 #define EFI_IOB_PCI_RES_ALLOC  (EFI_SUBCLASS_SPECIFIC | 0x00000001)
580 #define EFI_IOB_PCI_HPC_INIT   (EFI_SUBCLASS_SPECIFIC | 0x00000002)
581 ///@}
582 
583 //
584 // IO Bus Class USB Subclass Progress Code definitions.
585 //
586 
587 //
588 // IO Bus Class IBA Subclass Progress Code definitions.
589 //
590 
591 //
592 // IO Bus Class AGP Subclass Progress Code definitions.
593 //
594 
595 //
596 // IO Bus Class PC Card Subclass Progress Code definitions.
597 //
598 
599 //
600 // IO Bus Class LPC Subclass Progress Code definitions.
601 //
602 
603 //
604 // IO Bus Class SCSI Subclass Progress Code definitions.
605 //
606 
607 //
608 // IO Bus Class ATA/ATAPI Subclass Progress Code definitions.
609 //
610 #define EFI_IOB_ATA_BUS_SMART_ENABLE          (EFI_SUBCLASS_SPECIFIC | 0x00000000)
611 #define EFI_IOB_ATA_BUS_SMART_DISABLE         (EFI_SUBCLASS_SPECIFIC | 0x00000001)
612 #define EFI_IOB_ATA_BUS_SMART_OVERTHRESHOLD   (EFI_SUBCLASS_SPECIFIC | 0x00000002)
613 #define EFI_IOB_ATA_BUS_SMART_UNDERTHRESHOLD  (EFI_SUBCLASS_SPECIFIC | 0x00000003)
614 //
615 // IO Bus Class FC Subclass Progress Code definitions.
616 //
617 
618 //
619 // IO Bus Class IP Network Subclass Progress Code definitions.
620 //
621 
622 //
623 // IO Bus Class SMBUS Subclass Progress Code definitions.
624 //
625 
626 //
627 // IO Bus Class I2C Subclass Progress Code definitions.
628 //
629 
630 ///
631 /// IO Bus Class Error Code definitions.
632 /// These are shared by all subclasses.
633 ///
634 ///@{
635 #define EFI_IOB_EC_NON_SPECIFIC       0x00000000
636 #define EFI_IOB_EC_DISABLED           0x00000001
637 #define EFI_IOB_EC_NOT_SUPPORTED      0x00000002
638 #define EFI_IOB_EC_NOT_DETECTED       0x00000003
639 #define EFI_IOB_EC_NOT_CONFIGURED     0x00000004
640 #define EFI_IOB_EC_INTERFACE_ERROR    0x00000005
641 #define EFI_IOB_EC_CONTROLLER_ERROR   0x00000006
642 #define EFI_IOB_EC_READ_ERROR         0x00000007
643 #define EFI_IOB_EC_WRITE_ERROR        0x00000008
644 #define EFI_IOB_EC_RESOURCE_CONFLICT  0x00000009
645 ///@}
646 
647 //
648 // IO Bus Class Unspecified Subclass Error Code definitions.
649 //
650 
651 ///
652 /// IO Bus Class PCI Subclass Error Code definitions.
653 ///
654 ///@{
655 #define EFI_IOB_PCI_EC_PERR  (EFI_SUBCLASS_SPECIFIC | 0x00000000)
656 #define EFI_IOB_PCI_EC_SERR  (EFI_SUBCLASS_SPECIFIC | 0x00000001)
657 ///@}
658 
659 //
660 // IO Bus Class USB Subclass Error Code definitions.
661 //
662 
663 //
664 // IO Bus Class IBA Subclass Error Code definitions.
665 //
666 
667 //
668 // IO Bus Class AGP Subclass Error Code definitions.
669 //
670 
671 //
672 // IO Bus Class PC Card Subclass Error Code definitions.
673 //
674 
675 //
676 // IO Bus Class LPC Subclass Error Code definitions.
677 //
678 
679 //
680 // IO Bus Class SCSI Subclass Error Code definitions.
681 //
682 
683 //
684 // IO Bus Class ATA/ATAPI Subclass Error Code definitions.
685 //
686 #define EFI_IOB_ATA_BUS_SMART_NOTSUPPORTED  (EFI_SUBCLASS_SPECIFIC | 0x00000000)
687 #define EFI_IOB_ATA_BUS_SMART_DISABLED      (EFI_SUBCLASS_SPECIFIC | 0x00000001)
688 
689 //
690 // IO Bus Class FC Subclass Error Code definitions.
691 //
692 
693 //
694 // IO Bus Class IP Network Subclass Error Code definitions.
695 //
696 
697 //
698 // IO Bus Class SMBUS Subclass Error Code definitions.
699 //
700 
701 //
702 // IO Bus Class I2C Subclass Error Code definitions.
703 //
704 
705 ///
706 /// Software Subclass definitions.
707 /// Values of 14-127 are reserved for future use by this specification.
708 /// Values of 128-255 are reserved for OEM use.
709 ///
710 ///@{
711 #define EFI_SOFTWARE_UNSPECIFIED          (EFI_SOFTWARE | 0x00000000)
712 #define EFI_SOFTWARE_SEC                  (EFI_SOFTWARE | 0x00010000)
713 #define EFI_SOFTWARE_PEI_CORE             (EFI_SOFTWARE | 0x00020000)
714 #define EFI_SOFTWARE_PEI_MODULE           (EFI_SOFTWARE | 0x00030000)
715 #define EFI_SOFTWARE_DXE_CORE             (EFI_SOFTWARE | 0x00040000)
716 #define EFI_SOFTWARE_DXE_BS_DRIVER        (EFI_SOFTWARE | 0x00050000)
717 #define EFI_SOFTWARE_DXE_RT_DRIVER        (EFI_SOFTWARE | 0x00060000)
718 #define EFI_SOFTWARE_SMM_DRIVER           (EFI_SOFTWARE | 0x00070000)
719 #define EFI_SOFTWARE_EFI_APPLICATION      (EFI_SOFTWARE | 0x00080000)
720 #define EFI_SOFTWARE_EFI_OS_LOADER        (EFI_SOFTWARE | 0x00090000)
721 #define EFI_SOFTWARE_RT                   (EFI_SOFTWARE | 0x000A0000)
722 #define EFI_SOFTWARE_AL                   (EFI_SOFTWARE | 0x000B0000)
723 #define EFI_SOFTWARE_EBC_EXCEPTION        (EFI_SOFTWARE | 0x000C0000)
724 #define EFI_SOFTWARE_IA32_EXCEPTION       (EFI_SOFTWARE | 0x000D0000)
725 #define EFI_SOFTWARE_IPF_EXCEPTION        (EFI_SOFTWARE | 0x000E0000)
726 #define EFI_SOFTWARE_PEI_SERVICE          (EFI_SOFTWARE | 0x000F0000)
727 #define EFI_SOFTWARE_EFI_BOOT_SERVICE     (EFI_SOFTWARE | 0x00100000)
728 #define EFI_SOFTWARE_EFI_RUNTIME_SERVICE  (EFI_SOFTWARE | 0x00110000)
729 #define EFI_SOFTWARE_EFI_DXE_SERVICE      (EFI_SOFTWARE | 0x00120000)
730 #define EFI_SOFTWARE_X64_EXCEPTION        (EFI_SOFTWARE | 0x00130000)
731 #define EFI_SOFTWARE_ARM_EXCEPTION        (EFI_SOFTWARE | 0x00140000)
732 
733 ///@}
734 
735 ///
736 /// Software Class Progress Code definitions.
737 /// These are shared by all subclasses.
738 ///
739 ///@{
740 #define EFI_SW_PC_INIT                0x00000000
741 #define EFI_SW_PC_LOAD                0x00000001
742 #define EFI_SW_PC_INIT_BEGIN          0x00000002
743 #define EFI_SW_PC_INIT_END            0x00000003
744 #define EFI_SW_PC_AUTHENTICATE_BEGIN  0x00000004
745 #define EFI_SW_PC_AUTHENTICATE_END    0x00000005
746 #define EFI_SW_PC_INPUT_WAIT          0x00000006
747 #define EFI_SW_PC_USER_SETUP          0x00000007
748 ///@}
749 
750 //
751 // Software Class Unspecified Subclass Progress Code definitions.
752 //
753 
754 ///
755 /// Software Class SEC Subclass Progress Code definitions.
756 ///
757 ///@{
758 #define EFI_SW_SEC_PC_ENTRY_POINT      (EFI_SUBCLASS_SPECIFIC | 0x00000000)
759 #define EFI_SW_SEC_PC_HANDOFF_TO_NEXT  (EFI_SUBCLASS_SPECIFIC | 0x00000001)
760 ///@}
761 
762 ///
763 /// Software Class PEI Core Subclass Progress Code definitions.
764 ///
765 ///@{
766 #define EFI_SW_PEI_CORE_PC_ENTRY_POINT      (EFI_SUBCLASS_SPECIFIC | 0x00000000)
767 #define EFI_SW_PEI_CORE_PC_HANDOFF_TO_NEXT  (EFI_SUBCLASS_SPECIFIC | 0x00000001)
768 #define EFI_SW_PEI_CORE_PC_RETURN_TO_LAST   (EFI_SUBCLASS_SPECIFIC | 0x00000002)
769 ///@}
770 
771 ///
772 /// Software Class PEI Module Subclass Progress Code definitions.
773 ///
774 ///@{
775 #define EFI_SW_PEI_PC_RECOVERY_BEGIN  (EFI_SUBCLASS_SPECIFIC | 0x00000000)
776 #define EFI_SW_PEI_PC_CAPSULE_LOAD    (EFI_SUBCLASS_SPECIFIC | 0x00000001)
777 #define EFI_SW_PEI_PC_CAPSULE_START   (EFI_SUBCLASS_SPECIFIC | 0x00000002)
778 #define EFI_SW_PEI_PC_RECOVERY_USER   (EFI_SUBCLASS_SPECIFIC | 0x00000003)
779 #define EFI_SW_PEI_PC_RECOVERY_AUTO   (EFI_SUBCLASS_SPECIFIC | 0x00000004)
780 #define EFI_SW_PEI_PC_S3_BOOT_SCRIPT  (EFI_SUBCLASS_SPECIFIC | 0x00000005)
781 #define EFI_SW_PEI_PC_OS_WAKE         (EFI_SUBCLASS_SPECIFIC | 0x00000006)
782 #define EFI_SW_PEI_PC_S3_STARTED      (EFI_SUBCLASS_SPECIFIC | 0x00000007)
783 ///@}
784 
785 ///
786 /// Software Class DXE Core Subclass Progress Code definitions.
787 ///
788 ///@{
789 #define EFI_SW_DXE_CORE_PC_ENTRY_POINT      (EFI_SUBCLASS_SPECIFIC | 0x00000000)
790 #define EFI_SW_DXE_CORE_PC_HANDOFF_TO_NEXT  (EFI_SUBCLASS_SPECIFIC | 0x00000001)
791 #define EFI_SW_DXE_CORE_PC_RETURN_TO_LAST   (EFI_SUBCLASS_SPECIFIC | 0x00000002)
792 #define EFI_SW_DXE_CORE_PC_START_DRIVER     (EFI_SUBCLASS_SPECIFIC | 0x00000003)
793 #define EFI_SW_DXE_CORE_PC_ARCH_READY       (EFI_SUBCLASS_SPECIFIC | 0x00000004)
794 ///@}
795 
796 ///
797 /// Software Class DXE BS Driver Subclass Progress Code definitions.
798 ///
799 ///@{
800 #define EFI_SW_DXE_BS_PC_LEGACY_OPROM_INIT             (EFI_SUBCLASS_SPECIFIC | 0x00000000)
801 #define EFI_SW_DXE_BS_PC_READY_TO_BOOT_EVENT           (EFI_SUBCLASS_SPECIFIC | 0x00000001)
802 #define EFI_SW_DXE_BS_PC_LEGACY_BOOT_EVENT             (EFI_SUBCLASS_SPECIFIC | 0x00000002)
803 #define EFI_SW_DXE_BS_PC_EXIT_BOOT_SERVICES_EVENT      (EFI_SUBCLASS_SPECIFIC | 0x00000003)
804 #define EFI_SW_DXE_BS_PC_VIRTUAL_ADDRESS_CHANGE_EVENT  (EFI_SUBCLASS_SPECIFIC | 0x00000004)
805 #define EFI_SW_DXE_BS_PC_VARIABLE_SERVICES_INIT        (EFI_SUBCLASS_SPECIFIC | 0x00000005)
806 #define EFI_SW_DXE_BS_PC_VARIABLE_RECLAIM              (EFI_SUBCLASS_SPECIFIC | 0x00000006)
807 #define EFI_SW_DXE_BS_PC_ATTEMPT_BOOT_ORDER_EVENT      (EFI_SUBCLASS_SPECIFIC | 0x00000007)
808 #define EFI_SW_DXE_BS_PC_CONFIG_RESET                  (EFI_SUBCLASS_SPECIFIC | 0x00000008)
809 #define EFI_SW_DXE_BS_PC_CSM_INIT                      (EFI_SUBCLASS_SPECIFIC | 0x00000009)
810 ///@}
811 
812 //
813 // Software Class SMM Driver Subclass Progress Code definitions.
814 //
815 
816 //
817 // Software Class EFI Application Subclass Progress Code definitions.
818 //
819 
820 //
821 // Software Class EFI OS Loader Subclass Progress Code definitions.
822 //
823 
824 ///
825 /// Software Class EFI RT Subclass Progress Code definitions.
826 ///
827 ///@{
828 #define EFI_SW_RT_PC_ENTRY_POINT      (EFI_SUBCLASS_SPECIFIC | 0x00000000)
829 #define EFI_SW_RT_PC_HANDOFF_TO_NEXT  (EFI_SUBCLASS_SPECIFIC | 0x00000001)
830 #define EFI_SW_RT_PC_RETURN_TO_LAST   (EFI_SUBCLASS_SPECIFIC | 0x00000002)
831 ///@}
832 
833 //
834 // Software Class X64 Exception Subclass Progress Code definitions.
835 //
836 
837 //
838 // Software Class ARM Exception Subclass Progress Code definitions.
839 //
840 
841 //
842 // Software Class EBC Exception Subclass Progress Code definitions.
843 //
844 
845 //
846 // Software Class IA32 Exception Subclass Progress Code definitions.
847 //
848 
849 //
850 // Software Class X64 Exception Subclass Progress Code definitions.
851 //
852 
853 //
854 // Software Class IPF Exception Subclass Progress Code definitions.
855 //
856 
857 ///
858 /// Software Class PEI Services Subclass Progress Code definitions.
859 ///
860 ///@{
861 #define EFI_SW_PS_PC_INSTALL_PPI              (EFI_SUBCLASS_SPECIFIC | 0x00000000)
862 #define EFI_SW_PS_PC_REINSTALL_PPI            (EFI_SUBCLASS_SPECIFIC | 0x00000001)
863 #define EFI_SW_PS_PC_LOCATE_PPI               (EFI_SUBCLASS_SPECIFIC | 0x00000002)
864 #define EFI_SW_PS_PC_NOTIFY_PPI               (EFI_SUBCLASS_SPECIFIC | 0x00000003)
865 #define EFI_SW_PS_PC_GET_BOOT_MODE            (EFI_SUBCLASS_SPECIFIC | 0x00000004)
866 #define EFI_SW_PS_PC_SET_BOOT_MODE            (EFI_SUBCLASS_SPECIFIC | 0x00000005)
867 #define EFI_SW_PS_PC_GET_HOB_LIST             (EFI_SUBCLASS_SPECIFIC | 0x00000006)
868 #define EFI_SW_PS_PC_CREATE_HOB               (EFI_SUBCLASS_SPECIFIC | 0x00000007)
869 #define EFI_SW_PS_PC_FFS_FIND_NEXT_VOLUME     (EFI_SUBCLASS_SPECIFIC | 0x00000008)
870 #define EFI_SW_PS_PC_FFS_FIND_NEXT_FILE       (EFI_SUBCLASS_SPECIFIC | 0x00000009)
871 #define EFI_SW_PS_PC_FFS_FIND_SECTION_DATA    (EFI_SUBCLASS_SPECIFIC | 0x0000000A)
872 #define EFI_SW_PS_PC_INSTALL_PEI_MEMORY       (EFI_SUBCLASS_SPECIFIC | 0x0000000B)
873 #define EFI_SW_PS_PC_ALLOCATE_PAGES           (EFI_SUBCLASS_SPECIFIC | 0x0000000C)
874 #define EFI_SW_PS_PC_ALLOCATE_POOL            (EFI_SUBCLASS_SPECIFIC | 0x0000000D)
875 #define EFI_SW_PS_PC_COPY_MEM                 (EFI_SUBCLASS_SPECIFIC | 0x0000000E)
876 #define EFI_SW_PS_PC_SET_MEM                  (EFI_SUBCLASS_SPECIFIC | 0x0000000F)
877 #define EFI_SW_PS_PC_RESET_SYSTEM             (EFI_SUBCLASS_SPECIFIC | 0x00000010)
878 #define EFI_SW_PS_PC_FFS_FIND_FILE_BY_NAME    (EFI_SUBCLASS_SPECIFIC | 0x00000013)
879 #define EFI_SW_PS_PC_FFS_GET_FILE_INFO        (EFI_SUBCLASS_SPECIFIC | 0x00000014)
880 #define EFI_SW_PS_PC_FFS_GET_VOLUME_INFO      (EFI_SUBCLASS_SPECIFIC | 0x00000015)
881 #define EFI_SW_PS_PC_FFS_REGISTER_FOR_SHADOW  (EFI_SUBCLASS_SPECIFIC | 0x00000016)
882 ///@}
883 
884 ///
885 /// Software Class EFI Boot Services Subclass Progress Code definitions.
886 ///
887 ///@{
888 #define EFI_SW_BS_PC_RAISE_TPL                      (EFI_SUBCLASS_SPECIFIC | 0x00000000)
889 #define EFI_SW_BS_PC_RESTORE_TPL                    (EFI_SUBCLASS_SPECIFIC | 0x00000001)
890 #define EFI_SW_BS_PC_ALLOCATE_PAGES                 (EFI_SUBCLASS_SPECIFIC | 0x00000002)
891 #define EFI_SW_BS_PC_FREE_PAGES                     (EFI_SUBCLASS_SPECIFIC | 0x00000003)
892 #define EFI_SW_BS_PC_GET_MEMORY_MAP                 (EFI_SUBCLASS_SPECIFIC | 0x00000004)
893 #define EFI_SW_BS_PC_ALLOCATE_POOL                  (EFI_SUBCLASS_SPECIFIC | 0x00000005)
894 #define EFI_SW_BS_PC_FREE_POOL                      (EFI_SUBCLASS_SPECIFIC | 0x00000006)
895 #define EFI_SW_BS_PC_CREATE_EVENT                   (EFI_SUBCLASS_SPECIFIC | 0x00000007)
896 #define EFI_SW_BS_PC_SET_TIMER                      (EFI_SUBCLASS_SPECIFIC | 0x00000008)
897 #define EFI_SW_BS_PC_WAIT_FOR_EVENT                 (EFI_SUBCLASS_SPECIFIC | 0x00000009)
898 #define EFI_SW_BS_PC_SIGNAL_EVENT                   (EFI_SUBCLASS_SPECIFIC | 0x0000000A)
899 #define EFI_SW_BS_PC_CLOSE_EVENT                    (EFI_SUBCLASS_SPECIFIC | 0x0000000B)
900 #define EFI_SW_BS_PC_CHECK_EVENT                    (EFI_SUBCLASS_SPECIFIC | 0x0000000C)
901 #define EFI_SW_BS_PC_INSTALL_PROTOCOL_INTERFACE     (EFI_SUBCLASS_SPECIFIC | 0x0000000D)
902 #define EFI_SW_BS_PC_REINSTALL_PROTOCOL_INTERFACE   (EFI_SUBCLASS_SPECIFIC | 0x0000000E)
903 #define EFI_SW_BS_PC_UNINSTALL_PROTOCOL_INTERFACE   (EFI_SUBCLASS_SPECIFIC | 0x0000000F)
904 #define EFI_SW_BS_PC_HANDLE_PROTOCOL                (EFI_SUBCLASS_SPECIFIC | 0x00000010)
905 #define EFI_SW_BS_PC_PC_HANDLE_PROTOCOL             (EFI_SUBCLASS_SPECIFIC | 0x00000011)
906 #define EFI_SW_BS_PC_REGISTER_PROTOCOL_NOTIFY       (EFI_SUBCLASS_SPECIFIC | 0x00000012)
907 #define EFI_SW_BS_PC_LOCATE_HANDLE                  (EFI_SUBCLASS_SPECIFIC | 0x00000013)
908 #define EFI_SW_BS_PC_INSTALL_CONFIGURATION_TABLE    (EFI_SUBCLASS_SPECIFIC | 0x00000014)
909 #define EFI_SW_BS_PC_LOAD_IMAGE                     (EFI_SUBCLASS_SPECIFIC | 0x00000015)
910 #define EFI_SW_BS_PC_START_IMAGE                    (EFI_SUBCLASS_SPECIFIC | 0x00000016)
911 #define EFI_SW_BS_PC_EXIT                           (EFI_SUBCLASS_SPECIFIC | 0x00000017)
912 #define EFI_SW_BS_PC_UNLOAD_IMAGE                   (EFI_SUBCLASS_SPECIFIC | 0x00000018)
913 #define EFI_SW_BS_PC_EXIT_BOOT_SERVICES             (EFI_SUBCLASS_SPECIFIC | 0x00000019)
914 #define EFI_SW_BS_PC_GET_NEXT_MONOTONIC_COUNT       (EFI_SUBCLASS_SPECIFIC | 0x0000001A)
915 #define EFI_SW_BS_PC_STALL                          (EFI_SUBCLASS_SPECIFIC | 0x0000001B)
916 #define EFI_SW_BS_PC_SET_WATCHDOG_TIMER             (EFI_SUBCLASS_SPECIFIC | 0x0000001C)
917 #define EFI_SW_BS_PC_CONNECT_CONTROLLER             (EFI_SUBCLASS_SPECIFIC | 0x0000001D)
918 #define EFI_SW_BS_PC_DISCONNECT_CONTROLLER          (EFI_SUBCLASS_SPECIFIC | 0x0000001E)
919 #define EFI_SW_BS_PC_OPEN_PROTOCOL                  (EFI_SUBCLASS_SPECIFIC | 0x0000001F)
920 #define EFI_SW_BS_PC_CLOSE_PROTOCOL                 (EFI_SUBCLASS_SPECIFIC | 0x00000020)
921 #define EFI_SW_BS_PC_OPEN_PROTOCOL_INFORMATION      (EFI_SUBCLASS_SPECIFIC | 0x00000021)
922 #define EFI_SW_BS_PC_PROTOCOLS_PER_HANDLE           (EFI_SUBCLASS_SPECIFIC | 0x00000022)
923 #define EFI_SW_BS_PC_LOCATE_HANDLE_BUFFER           (EFI_SUBCLASS_SPECIFIC | 0x00000023)
924 #define EFI_SW_BS_PC_LOCATE_PROTOCOL                (EFI_SUBCLASS_SPECIFIC | 0x00000024)
925 #define EFI_SW_BS_PC_INSTALL_MULTIPLE_INTERFACES    (EFI_SUBCLASS_SPECIFIC | 0x00000025)
926 #define EFI_SW_BS_PC_UNINSTALL_MULTIPLE_INTERFACES  (EFI_SUBCLASS_SPECIFIC | 0x00000026)
927 #define EFI_SW_BS_PC_CALCULATE_CRC_32               (EFI_SUBCLASS_SPECIFIC | 0x00000027)
928 #define EFI_SW_BS_PC_COPY_MEM                       (EFI_SUBCLASS_SPECIFIC | 0x00000028)
929 #define EFI_SW_BS_PC_SET_MEM                        (EFI_SUBCLASS_SPECIFIC | 0x00000029)
930 #define EFI_SW_BS_PC_CREATE_EVENT_EX                (EFI_SUBCLASS_SPECIFIC | 0x0000002A)
931 ///@}
932 
933 ///
934 /// Software Class EFI Runtime Services Subclass Progress Code definitions.
935 ///
936 ///@{
937 #define EFI_SW_RS_PC_GET_TIME                       (EFI_SUBCLASS_SPECIFIC | 0x00000000)
938 #define EFI_SW_RS_PC_SET_TIME                       (EFI_SUBCLASS_SPECIFIC | 0x00000001)
939 #define EFI_SW_RS_PC_GET_WAKEUP_TIME                (EFI_SUBCLASS_SPECIFIC | 0x00000002)
940 #define EFI_SW_RS_PC_SET_WAKEUP_TIME                (EFI_SUBCLASS_SPECIFIC | 0x00000003)
941 #define EFI_SW_RS_PC_SET_VIRTUAL_ADDRESS_MAP        (EFI_SUBCLASS_SPECIFIC | 0x00000004)
942 #define EFI_SW_RS_PC_CONVERT_POINTER                (EFI_SUBCLASS_SPECIFIC | 0x00000005)
943 #define EFI_SW_RS_PC_GET_VARIABLE                   (EFI_SUBCLASS_SPECIFIC | 0x00000006)
944 #define EFI_SW_RS_PC_GET_NEXT_VARIABLE_NAME         (EFI_SUBCLASS_SPECIFIC | 0x00000007)
945 #define EFI_SW_RS_PC_SET_VARIABLE                   (EFI_SUBCLASS_SPECIFIC | 0x00000008)
946 #define EFI_SW_RS_PC_GET_NEXT_HIGH_MONOTONIC_COUNT  (EFI_SUBCLASS_SPECIFIC | 0x00000009)
947 #define EFI_SW_RS_PC_RESET_SYSTEM                   (EFI_SUBCLASS_SPECIFIC | 0x0000000A)
948 #define EFI_SW_RS_PC_UPDATE_CAPSULE                 (EFI_SUBCLASS_SPECIFIC | 0x0000000B)
949 #define EFI_SW_RS_PC_QUERY_CAPSULE_CAPABILITIES     (EFI_SUBCLASS_SPECIFIC | 0x0000000C)
950 #define EFI_SW_RS_PC_QUERY_VARIABLE_INFO            (EFI_SUBCLASS_SPECIFIC | 0x0000000D)
951 ///@}
952 
953 ///
954 /// Software Class EFI DXE Services Subclass Progress Code definitions
955 ///
956 ///@{
957 #define EFI_SW_DS_PC_ADD_MEMORY_SPACE             (EFI_SUBCLASS_SPECIFIC | 0x00000000)
958 #define EFI_SW_DS_PC_ALLOCATE_MEMORY_SPACE        (EFI_SUBCLASS_SPECIFIC | 0x00000001)
959 #define EFI_SW_DS_PC_FREE_MEMORY_SPACE            (EFI_SUBCLASS_SPECIFIC | 0x00000002)
960 #define EFI_SW_DS_PC_REMOVE_MEMORY_SPACE          (EFI_SUBCLASS_SPECIFIC | 0x00000003)
961 #define EFI_SW_DS_PC_GET_MEMORY_SPACE_DESCRIPTOR  (EFI_SUBCLASS_SPECIFIC | 0x00000004)
962 #define EFI_SW_DS_PC_SET_MEMORY_SPACE_ATTRIBUTES  (EFI_SUBCLASS_SPECIFIC | 0x00000005)
963 #define EFI_SW_DS_PC_GET_MEMORY_SPACE_MAP         (EFI_SUBCLASS_SPECIFIC | 0x00000006)
964 #define EFI_SW_DS_PC_ADD_IO_SPACE                 (EFI_SUBCLASS_SPECIFIC | 0x00000007)
965 #define EFI_SW_DS_PC_ALLOCATE_IO_SPACE            (EFI_SUBCLASS_SPECIFIC | 0x00000008)
966 #define EFI_SW_DS_PC_FREE_IO_SPACE                (EFI_SUBCLASS_SPECIFIC | 0x00000009)
967 #define EFI_SW_DS_PC_REMOVE_IO_SPACE              (EFI_SUBCLASS_SPECIFIC | 0x0000000A)
968 #define EFI_SW_DS_PC_GET_IO_SPACE_DESCRIPTOR      (EFI_SUBCLASS_SPECIFIC | 0x0000000B)
969 #define EFI_SW_DS_PC_GET_IO_SPACE_MAP             (EFI_SUBCLASS_SPECIFIC | 0x0000000C)
970 #define EFI_SW_DS_PC_DISPATCH                     (EFI_SUBCLASS_SPECIFIC | 0x0000000D)
971 #define EFI_SW_DS_PC_SCHEDULE                     (EFI_SUBCLASS_SPECIFIC | 0x0000000E)
972 #define EFI_SW_DS_PC_TRUST                        (EFI_SUBCLASS_SPECIFIC | 0x0000000F)
973 #define EFI_SW_DS_PC_PROCESS_FIRMWARE_VOLUME      (EFI_SUBCLASS_SPECIFIC | 0x00000010)
974 ///@}
975 
976 ///
977 /// Software Class Error Code definitions.
978 /// These are shared by all subclasses.
979 ///
980 ///@{
981 #define EFI_SW_EC_NON_SPECIFIC             0x00000000
982 #define EFI_SW_EC_LOAD_ERROR               0x00000001
983 #define EFI_SW_EC_INVALID_PARAMETER        0x00000002
984 #define EFI_SW_EC_UNSUPPORTED              0x00000003
985 #define EFI_SW_EC_INVALID_BUFFER           0x00000004
986 #define EFI_SW_EC_OUT_OF_RESOURCES         0x00000005
987 #define EFI_SW_EC_ABORTED                  0x00000006
988 #define EFI_SW_EC_ILLEGAL_SOFTWARE_STATE   0x00000007
989 #define EFI_SW_EC_ILLEGAL_HARDWARE_STATE   0x00000008
990 #define EFI_SW_EC_START_ERROR              0x00000009
991 #define EFI_SW_EC_BAD_DATE_TIME            0x0000000A
992 #define EFI_SW_EC_CFG_INVALID              0x0000000B
993 #define EFI_SW_EC_CFG_CLR_REQUEST          0x0000000C
994 #define EFI_SW_EC_CFG_DEFAULT              0x0000000D
995 #define EFI_SW_EC_PWD_INVALID              0x0000000E
996 #define EFI_SW_EC_PWD_CLR_REQUEST          0x0000000F
997 #define EFI_SW_EC_PWD_CLEARED              0x00000010
998 #define EFI_SW_EC_EVENT_LOG_FULL           0x00000011
999 #define EFI_SW_EC_WRITE_PROTECTED          0x00000012
1000 #define EFI_SW_EC_FV_CORRUPTED             0x00000013
1001 #define EFI_SW_EC_INCONSISTENT_MEMORY_MAP  0x00000014
1002 ///@}
1003 
1004 //
1005 // Software Class Unspecified Subclass Error Code definitions.
1006 //
1007 
1008 //
1009 // Software Class SEC Subclass Error Code definitions.
1010 //
1011 
1012 ///
1013 /// Software Class PEI Core Subclass Error Code definitions.
1014 ///
1015 ///@{
1016 #define EFI_SW_PEI_CORE_EC_DXE_CORRUPT           (EFI_SUBCLASS_SPECIFIC | 0x00000000)
1017 #define EFI_SW_PEI_CORE_EC_DXEIPL_NOT_FOUND      (EFI_SUBCLASS_SPECIFIC | 0x00000001)
1018 #define EFI_SW_PEI_CORE_EC_MEMORY_NOT_INSTALLED  (EFI_SUBCLASS_SPECIFIC | 0x00000002)
1019 ///@}
1020 
1021 ///
1022 /// Software Class PEI Module Subclass Error Code definitions.
1023 ///
1024 ///@{
1025 #define EFI_SW_PEI_EC_NO_RECOVERY_CAPSULE         (EFI_SUBCLASS_SPECIFIC | 0x00000000)
1026 #define EFI_SW_PEI_EC_INVALID_CAPSULE_DESCRIPTOR  (EFI_SUBCLASS_SPECIFIC | 0x00000001)
1027 #define EFI_SW_PEI_EC_S3_RESUME_PPI_NOT_FOUND     (EFI_SUBCLASS_SPECIFIC | 0x00000002)
1028 #define EFI_SW_PEI_EC_S3_BOOT_SCRIPT_ERROR        (EFI_SUBCLASS_SPECIFIC | 0x00000003)
1029 #define EFI_SW_PEI_EC_S3_OS_WAKE_ERROR            (EFI_SUBCLASS_SPECIFIC | 0x00000004)
1030 #define EFI_SW_PEI_EC_S3_RESUME_FAILED            (EFI_SUBCLASS_SPECIFIC | 0x00000005)
1031 #define EFI_SW_PEI_EC_RECOVERY_PPI_NOT_FOUND      (EFI_SUBCLASS_SPECIFIC | 0x00000006)
1032 #define EFI_SW_PEI_EC_RECOVERY_FAILED             (EFI_SUBCLASS_SPECIFIC | 0x00000007)
1033 #define EFI_SW_PEI_EC_S3_RESUME_ERROR             (EFI_SUBCLASS_SPECIFIC | 0x00000008)
1034 #define EFI_SW_PEI_EC_INVALID_CAPSULE             (EFI_SUBCLASS_SPECIFIC | 0x00000009)
1035 ///@}
1036 
1037 ///
1038 /// Software Class DXE Foundation Subclass Error Code definitions.
1039 ///
1040 ///@{
1041 #define EFI_SW_DXE_CORE_EC_NO_ARCH  (EFI_SUBCLASS_SPECIFIC | 0x00000000)
1042 ///@}
1043 
1044 ///
1045 /// Software Class DXE Boot Service Driver Subclass Error Code definitions.
1046 ///
1047 ///@{
1048 #define EFI_SW_DXE_BS_EC_LEGACY_OPROM_NO_SPACE   (EFI_SUBCLASS_SPECIFIC | 0x00000000)
1049 #define EFI_SW_DXE_BS_EC_INVALID_PASSWORD        (EFI_SUBCLASS_SPECIFIC | 0x00000001)
1050 #define EFI_SW_DXE_BS_EC_BOOT_OPTION_LOAD_ERROR  (EFI_SUBCLASS_SPECIFIC | 0x00000002)
1051 #define EFI_SW_DXE_BS_EC_BOOT_OPTION_FAILED      (EFI_SUBCLASS_SPECIFIC | 0x00000003)
1052 #define EFI_SW_DXE_BS_EC_INVALID_IDE_PASSWORD    (EFI_SUBCLASS_SPECIFIC | 0x00000004)
1053 ///@}
1054 
1055 //
1056 // Software Class DXE Runtime Service Driver Subclass Error Code definitions.
1057 //
1058 
1059 //
1060 // Software Class SMM Driver Subclass Error Code definitions.
1061 //
1062 
1063 //
1064 // Software Class EFI Application Subclass Error Code definitions.
1065 //
1066 
1067 //
1068 // Software Class EFI OS Loader Subclass Error Code definitions.
1069 //
1070 
1071 //
1072 // Software Class EFI RT Subclass Error Code definitions.
1073 //
1074 
1075 //
1076 // Software Class EFI AL Subclass Error Code definitions.
1077 //
1078 
1079 ///
1080 /// Software Class EBC Exception Subclass Error Code definitions.
1081 /// These exceptions are derived from the debug protocol definitions in the EFI
1082 /// specification.
1083 ///
1084 ///@{
1085 #define EFI_SW_EC_EBC_UNDEFINED             0x00000000
1086 #define EFI_SW_EC_EBC_DIVIDE_ERROR          EXCEPT_EBC_DIVIDE_ERROR
1087 #define EFI_SW_EC_EBC_DEBUG                 EXCEPT_EBC_DEBUG
1088 #define EFI_SW_EC_EBC_BREAKPOINT            EXCEPT_EBC_BREAKPOINT
1089 #define EFI_SW_EC_EBC_OVERFLOW              EXCEPT_EBC_OVERFLOW
1090 #define EFI_SW_EC_EBC_INVALID_OPCODE        EXCEPT_EBC_INVALID_OPCODE
1091 #define EFI_SW_EC_EBC_STACK_FAULT           EXCEPT_EBC_STACK_FAULT
1092 #define EFI_SW_EC_EBC_ALIGNMENT_CHECK       EXCEPT_EBC_ALIGNMENT_CHECK
1093 #define EFI_SW_EC_EBC_INSTRUCTION_ENCODING  EXCEPT_EBC_INSTRUCTION_ENCODING
1094 #define EFI_SW_EC_EBC_BAD_BREAK             EXCEPT_EBC_BAD_BREAK
1095 #define EFI_SW_EC_EBC_STEP                  EXCEPT_EBC_STEP
1096 ///@}
1097 
1098 ///
1099 /// Software Class IA32 Exception Subclass Error Code definitions.
1100 /// These exceptions are derived from the debug protocol definitions in the EFI
1101 /// specification.
1102 ///
1103 ///@{
1104 #define EFI_SW_EC_IA32_DIVIDE_ERROR     EXCEPT_IA32_DIVIDE_ERROR
1105 #define EFI_SW_EC_IA32_DEBUG            EXCEPT_IA32_DEBUG
1106 #define EFI_SW_EC_IA32_NMI              EXCEPT_IA32_NMI
1107 #define EFI_SW_EC_IA32_BREAKPOINT       EXCEPT_IA32_BREAKPOINT
1108 #define EFI_SW_EC_IA32_OVERFLOW         EXCEPT_IA32_OVERFLOW
1109 #define EFI_SW_EC_IA32_BOUND            EXCEPT_IA32_BOUND
1110 #define EFI_SW_EC_IA32_INVALID_OPCODE   EXCEPT_IA32_INVALID_OPCODE
1111 #define EFI_SW_EC_IA32_DOUBLE_FAULT     EXCEPT_IA32_DOUBLE_FAULT
1112 #define EFI_SW_EC_IA32_INVALID_TSS      EXCEPT_IA32_INVALID_TSS
1113 #define EFI_SW_EC_IA32_SEG_NOT_PRESENT  EXCEPT_IA32_SEG_NOT_PRESENT
1114 #define EFI_SW_EC_IA32_STACK_FAULT      EXCEPT_IA32_STACK_FAULT
1115 #define EFI_SW_EC_IA32_GP_FAULT         EXCEPT_IA32_GP_FAULT
1116 #define EFI_SW_EC_IA32_PAGE_FAULT       EXCEPT_IA32_PAGE_FAULT
1117 #define EFI_SW_EC_IA32_FP_ERROR         EXCEPT_IA32_FP_ERROR
1118 #define EFI_SW_EC_IA32_ALIGNMENT_CHECK  EXCEPT_IA32_ALIGNMENT_CHECK
1119 #define EFI_SW_EC_IA32_MACHINE_CHECK    EXCEPT_IA32_MACHINE_CHECK
1120 #define EFI_SW_EC_IA32_SIMD             EXCEPT_IA32_SIMD
1121 ///@}
1122 
1123 ///
1124 /// Software Class IPF Exception Subclass Error Code definitions.
1125 /// These exceptions are derived from the debug protocol definitions in the EFI
1126 /// specification.
1127 ///
1128 ///@{
1129 #define EFI_SW_EC_IPF_ALT_DTLB            EXCEPT_IPF_ALT_DTLB
1130 #define EFI_SW_EC_IPF_DNESTED_TLB         EXCEPT_IPF_DNESTED_TLB
1131 #define EFI_SW_EC_IPF_BREAKPOINT          EXCEPT_IPF_BREAKPOINT
1132 #define EFI_SW_EC_IPF_EXTERNAL_INTERRUPT  EXCEPT_IPF_EXTERNAL_INTERRUPT
1133 #define EFI_SW_EC_IPF_GEN_EXCEPT          EXCEPT_IPF_GEN_EXCEPT
1134 #define EFI_SW_EC_IPF_NAT_CONSUMPTION     EXCEPT_IPF_NAT_CONSUMPTION
1135 #define EFI_SW_EC_IPF_DEBUG_EXCEPT        EXCEPT_IPF_DEBUG_EXCEPT
1136 #define EFI_SW_EC_IPF_UNALIGNED_ACCESS    EXCEPT_IPF_UNALIGNED_ACCESS
1137 #define EFI_SW_EC_IPF_FP_FAULT            EXCEPT_IPF_FP_FAULT
1138 #define EFI_SW_EC_IPF_FP_TRAP             EXCEPT_IPF_FP_TRAP
1139 #define EFI_SW_EC_IPF_TAKEN_BRANCH        EXCEPT_IPF_TAKEN_BRANCH
1140 #define EFI_SW_EC_IPF_SINGLE_STEP         EXCEPT_IPF_SINGLE_STEP
1141 ///@}
1142 
1143 ///
1144 /// Software Class PEI Service Subclass Error Code definitions.
1145 ///
1146 ///@{
1147 #define EFI_SW_PS_EC_RESET_NOT_AVAILABLE     (EFI_SUBCLASS_SPECIFIC | 0x00000000)
1148 #define EFI_SW_PS_EC_MEMORY_INSTALLED_TWICE  (EFI_SUBCLASS_SPECIFIC | 0x00000001)
1149 ///@}
1150 
1151 //
1152 // Software Class EFI Boot Service Subclass Error Code definitions.
1153 //
1154 
1155 //
1156 // Software Class EFI Runtime Service Subclass Error Code definitions.
1157 //
1158 
1159 ///
1160 /// Software Class EFI DXE Service Subclass Error Code definitions.
1161 ///
1162 ///@{
1163 #define EFI_SW_DXE_BS_PC_BEGIN_CONNECTING_DRIVERS  (EFI_SUBCLASS_SPECIFIC | 0x00000005)
1164 #define EFI_SW_DXE_BS_PC_VERIFYING_PASSWORD        (EFI_SUBCLASS_SPECIFIC | 0x00000006)
1165 ///@}
1166 
1167 ///
1168 /// Software Class DXE RT Driver Subclass Progress Code definitions.
1169 ///
1170 ///@{
1171 #define EFI_SW_DXE_RT_PC_S0  (EFI_SUBCLASS_SPECIFIC | 0x00000000)
1172 #define EFI_SW_DXE_RT_PC_S1  (EFI_SUBCLASS_SPECIFIC | 0x00000001)
1173 #define EFI_SW_DXE_RT_PC_S2  (EFI_SUBCLASS_SPECIFIC | 0x00000002)
1174 #define EFI_SW_DXE_RT_PC_S3  (EFI_SUBCLASS_SPECIFIC | 0x00000003)
1175 #define EFI_SW_DXE_RT_PC_S4  (EFI_SUBCLASS_SPECIFIC | 0x00000004)
1176 #define EFI_SW_DXE_RT_PC_S5  (EFI_SUBCLASS_SPECIFIC | 0x00000005)
1177 ///@}
1178 
1179 ///
1180 /// Software Class X64 Exception Subclass Error Code definitions.
1181 /// These exceptions are derived from the debug protocol
1182 /// definitions in the EFI specification.
1183 ///
1184 ///@{
1185 #define EFI_SW_EC_X64_DIVIDE_ERROR     EXCEPT_X64_DIVIDE_ERROR
1186 #define EFI_SW_EC_X64_DEBUG            EXCEPT_X64_DEBUG
1187 #define EFI_SW_EC_X64_NMI              EXCEPT_X64_NMI
1188 #define EFI_SW_EC_X64_BREAKPOINT       EXCEPT_X64_BREAKPOINT
1189 #define EFI_SW_EC_X64_OVERFLOW         EXCEPT_X64_OVERFLOW
1190 #define EFI_SW_EC_X64_BOUND            EXCEPT_X64_BOUND
1191 #define EFI_SW_EC_X64_INVALID_OPCODE   EXCEPT_X64_INVALID_OPCODE
1192 #define EFI_SW_EC_X64_DOUBLE_FAULT     EXCEPT_X64_DOUBLE_FAULT
1193 #define EFI_SW_EC_X64_INVALID_TSS      EXCEPT_X64_INVALID_TSS
1194 #define EFI_SW_EC_X64_SEG_NOT_PRESENT  EXCEPT_X64_SEG_NOT_PRESENT
1195 #define EFI_SW_EC_X64_STACK_FAULT      EXCEPT_X64_STACK_FAULT
1196 #define EFI_SW_EC_X64_GP_FAULT         EXCEPT_X64_GP_FAULT
1197 #define EFI_SW_EC_X64_PAGE_FAULT       EXCEPT_X64_PAGE_FAULT
1198 #define EFI_SW_EC_X64_FP_ERROR         EXCEPT_X64_FP_ERROR
1199 #define EFI_SW_EC_X64_ALIGNMENT_CHECK  EXCEPT_X64_ALIGNMENT_CHECK
1200 #define EFI_SW_EC_X64_MACHINE_CHECK    EXCEPT_X64_MACHINE_CHECK
1201 #define EFI_SW_EC_X64_SIMD             EXCEPT_X64_SIMD
1202 ///@}
1203 
1204 ///
1205 /// Software Class ARM Exception Subclass Error Code definitions.
1206 /// These exceptions are derived from the debug protocol
1207 /// definitions in the EFI specification.
1208 ///
1209 ///@{
1210 #define EFI_SW_EC_ARM_RESET                  EXCEPT_ARM_RESET
1211 #define EFI_SW_EC_ARM_UNDEFINED_INSTRUCTION  EXCEPT_ARM_UNDEFINED_INSTRUCTION
1212 #define EFI_SW_EC_ARM_SOFTWARE_INTERRUPT     EXCEPT_ARM_SOFTWARE_INTERRUPT
1213 #define EFI_SW_EC_ARM_PREFETCH_ABORT         EXCEPT_ARM_PREFETCH_ABORT
1214 #define EFI_SW_EC_ARM_DATA_ABORT             EXCEPT_ARM_DATA_ABORT
1215 #define EFI_SW_EC_ARM_RESERVED               EXCEPT_ARM_RESERVED
1216 #define EFI_SW_EC_ARM_IRQ                    EXCEPT_ARM_IRQ
1217 #define EFI_SW_EC_ARM_FIQ                    EXCEPT_ARM_FIQ
1218 ///@}
1219 
1220 #endif
1221