Home | History | Annotate | Download | only in Framework
      1 /** @file
      2   Status Code Definitions, according to Intel Platform Innovation Framework
      3   for EFI Status Codes Specification
      4 
      5 Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>
      6 This program and the accompanying materials are licensed and made available under
      7 the terms and conditions of the BSD License that accompanies this distribution.
      8 The full text of the license may be found at
      9 http://opensource.org/licenses/bsd-license.php.
     10 
     11 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
     12 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
     13 
     14   @par Revision Reference:
     15   Intel Platform Innovation Framework for EFI Status Codes Specification
     16   Version 0.92.
     17 
     18 **/
     19 
     20 #ifndef _FRAMEWORK_STATUS_CODE_H_
     21 #define _FRAMEWORK_STATUS_CODE_H_
     22 
     23 //
     24 // Required for X64 defines for CPU exception types
     25 //
     26 #include <Protocol/DebugSupport.h>
     27 
     28 ///
     29 /// Software Class DXE BS Driver Subclass Progress Code definitions.
     30 ///
     31 /// Inconsistent with specification here:
     32 /// The Framework Specification, StatusCodes 0.92, does not define the macros.
     33 ///
     34 ///@{
     35 #define EFI_SW_DXE_BS_PC_BEGIN_CONNECTING_DRIVERS     (EFI_SUBCLASS_SPECIFIC | 0x00000005)
     36 #define EFI_SW_DXE_BS_PC_VERIFYING_PASSWORD           (EFI_SUBCLASS_SPECIFIC | 0x00000006)
     37 ///@}
     38 
     39 ///
     40 /// Software Class DXE RT Driver Subclass Progress Code definitions.
     41 ///
     42 /// Inconsistent with specification here:
     43 /// The Framework Specification, StatusCodes 0.92, does not define the macros.
     44 ///
     45 ///@{
     46 #define EFI_SW_DXE_RT_PC_S0 (EFI_SUBCLASS_SPECIFIC | 0x00000000)
     47 #define EFI_SW_DXE_RT_PC_S1 (EFI_SUBCLASS_SPECIFIC | 0x00000001)
     48 #define EFI_SW_DXE_RT_PC_S2 (EFI_SUBCLASS_SPECIFIC | 0x00000002)
     49 #define EFI_SW_DXE_RT_PC_S3 (EFI_SUBCLASS_SPECIFIC | 0x00000003)
     50 #define EFI_SW_DXE_RT_PC_S4 (EFI_SUBCLASS_SPECIFIC | 0x00000004)
     51 #define EFI_SW_DXE_RT_PC_S5 (EFI_SUBCLASS_SPECIFIC | 0x00000005)
     52 ///@}
     53 
     54 ///
     55 /// Software Subclass definitions.
     56 ///
     57 /// Inconsistent with specification here:
     58 /// The Framework Specification, StatusCodes 0.92, does not define the macros.
     59 ///
     60 #define EFI_SOFTWARE_X64_EXCEPTION        (EFI_SOFTWARE | 0x00130000)
     61 
     62 ///
     63 /// Software Class X64 Exception Subclass Error Code definitions.
     64 /// These exceptions are derived from the debug protocol definitions in the EFI
     65 /// specification.
     66 ///
     67 /// Inconsistent with specification here:
     68 /// The Framework Specification, StatusCodes 0.92, does not define the macros.
     69 ///
     70 ///@{
     71 #define EFI_SW_EC_X64_DIVIDE_ERROR      EXCEPT_X64_DIVIDE_ERROR
     72 #define EFI_SW_EC_X64_DEBUG             EXCEPT_X64_DEBUG
     73 #define EFI_SW_EC_X64_NMI               EXCEPT_X64_NMI
     74 #define EFI_SW_EC_X64_BREAKPOINT        EXCEPT_X64_BREAKPOINT
     75 #define EFI_SW_EC_X64_OVERFLOW          EXCEPT_X64_OVERFLOW
     76 #define EFI_SW_EC_X64_BOUND             EXCEPT_X64_BOUND
     77 #define EFI_SW_EC_X64_INVALID_OPCODE    EXCEPT_X64_INVALID_OPCODE
     78 #define EFI_SW_EC_X64_DOUBLE_FAULT      EXCEPT_X64_DOUBLE_FAULT
     79 #define EFI_SW_EC_X64_INVALID_TSS       EXCEPT_X64_INVALID_TSS
     80 #define EFI_SW_EC_X64_SEG_NOT_PRESENT   EXCEPT_X64_SEG_NOT_PRESENT
     81 #define EFI_SW_EC_X64_STACK_FAULT       EXCEPT_X64_STACK_FAULT
     82 #define EFI_SW_EC_X64_GP_FAULT          EXCEPT_X64_GP_FAULT
     83 #define EFI_SW_EC_X64_PAGE_FAULT        EXCEPT_X64_PAGE_FAULT
     84 #define EFI_SW_EC_X64_FP_ERROR          EXCEPT_X64_FP_ERROR
     85 #define EFI_SW_EC_X64_ALIGNMENT_CHECK   EXCEPT_X64_ALIGNMENT_CHECK
     86 #define EFI_SW_EC_X64_MACHINE_CHECK     EXCEPT_X64_MACHINE_CHECK
     87 #define EFI_SW_EC_X64_SIMD              EXCEPT_X64_SIMD
     88 ///@}
     89 
     90 ///
     91 /// Software Class EFI After Life Subclass Progress Code definitions.
     92 ///
     93 ///@{
     94 #define EFI_SW_AL_PC_ENTRY_POINT    (EFI_SUBCLASS_SPECIFIC | 0x00000000)
     95 #define EFI_SW_AL_PC_RETURN_TO_LAST (EFI_SUBCLASS_SPECIFIC | 0x00000001)
     96 ///@}
     97 
     98 ///
     99 /// Software Class DXE Core Subclass Error Code definitions.
    100 ///
    101 /// Inconsistent with specification here:
    102 /// The Framework Specification, StatusCodes 0.92, does not define the macros.
    103 ///
    104 #define EFI_SW_CSM_LEGACY_ROM_INIT                (EFI_SUBCLASS_SPECIFIC | 0x00000000)
    105 
    106 ///
    107 /// IO Bus Class ATA/ATAPI Subclass Progress Code definitions.
    108 ///
    109 ///
    110 /// Inconsistent with specification here:
    111 /// The Framework Specification, StatusCodes 0.92, does not define the macros.
    112 ///
    113 ///@{
    114 #define EFI_IOB_ATA_BUS_SMART_ENABLE          (EFI_SUBCLASS_SPECIFIC | 0x00000000)
    115 #define EFI_IOB_ATA_BUS_SMART_DISABLE         (EFI_SUBCLASS_SPECIFIC | 0x00000001)
    116 #define EFI_IOB_ATA_BUS_SMART_OVERTHRESHOLD   (EFI_SUBCLASS_SPECIFIC | 0x00000002)
    117 #define EFI_IOB_ATA_BUS_SMART_UNDERTHRESHOLD  (EFI_SUBCLASS_SPECIFIC | 0x00000003)
    118 ///@}
    119 
    120 ///
    121 /// IO Bus Class ATA/ATAPI Subclass Error Code definitions.
    122 ///
    123 ///
    124 /// Inconsistent with specification here:
    125 /// The Framework Specification, StatusCodes 0.92, does not define the macros.
    126 ///
    127 ///@{
    128 #define EFI_IOB_ATA_BUS_SMART_NOTSUPPORTED  (EFI_SUBCLASS_SPECIFIC | 0x00000000)
    129 #define EFI_IOB_ATA_BUS_SMART_DISABLED      (EFI_SUBCLASS_SPECIFIC | 0x00000001)
    130 ///@}
    131 
    132 ///
    133 /// The reason that the processor was disabled.
    134 ///
    135 /// Inconsistent with specification here:
    136 /// The Framework Specification, StatusCodes 0.92, does not define the macros.
    137 ///
    138 ///@{
    139 #define EFI_CPU_CAUSE_NOT_DISABLED              0x0000
    140 ///@}
    141 
    142 ///
    143 /// Software Class PEI Module Subclass Progress Code definitions.
    144 ///
    145 ///@{
    146 #define EFI_SW_PEIM_PC_RECOVERY_BEGIN  EFI_SW_PEI_PC_RECOVERY_BEGIN
    147 #define EFI_SW_PEIM_PC_CAPSULE_LOAD    EFI_SW_PEI_PC_CAPSULE_LOAD
    148 #define EFI_SW_PEIM_PC_CAPSULE_START   EFI_SW_PEI_PC_CAPSULE_START
    149 #define EFI_SW_PEIM_PC_RECOVERY_USER   EFI_SW_PEI_PC_RECOVERY_USER
    150 #define EFI_SW_PEIM_PC_RECOVERY_AUTO   EFI_SW_PEI_PC_RECOVERY_AUTO
    151 ///@}
    152 
    153 ///
    154 /// Software Class PEI Core Subclass Error Code definitions.
    155 ///
    156 ///@{
    157 #define EFI_SW_PEIM_CORE_EC_DXE_CORRUPT       EFI_SW_PEI_CORE_EC_DXE_CORRUPT
    158 #define EFI_SW_PEIM_CORE_EC_DXEIPL_NOT_FOUND  EFI_SW_PEI_CORE_EC_DXEIPL_NOT_FOUND
    159 ///@}
    160 
    161 #endif
    162