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