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