| 1 | /* SPDX-License-Identifier: BSD-3-Clause OR GPL-2.0 */ | 
|---|
| 2 | /****************************************************************************** | 
|---|
| 3 | * | 
|---|
| 4 | * Name: acexcep.h - Exception codes returned by the ACPI subsystem | 
|---|
| 5 | * | 
|---|
| 6 | * Copyright (C) 2000 - 2025, Intel Corp. | 
|---|
| 7 | * | 
|---|
| 8 | *****************************************************************************/ | 
|---|
| 9 |  | 
|---|
| 10 | #ifndef __ACEXCEP_H__ | 
|---|
| 11 | #define __ACEXCEP_H__ | 
|---|
| 12 |  | 
|---|
| 13 | /* This module contains all possible exception codes for acpi_status */ | 
|---|
| 14 |  | 
|---|
| 15 | /* | 
|---|
| 16 | * Exception code classes | 
|---|
| 17 | */ | 
|---|
| 18 | #define AE_CODE_ENVIRONMENTAL           0x0000	/* General ACPICA environment */ | 
|---|
| 19 | #define AE_CODE_PROGRAMMER              0x1000	/* External ACPICA interface caller */ | 
|---|
| 20 | #define AE_CODE_ACPI_TABLES             0x2000	/* ACPI tables */ | 
|---|
| 21 | #define AE_CODE_AML                     0x3000	/* From executing AML code */ | 
|---|
| 22 | #define AE_CODE_CONTROL                 0x4000	/* Internal control codes */ | 
|---|
| 23 |  | 
|---|
| 24 | #define AE_CODE_MAX                     0x4000 | 
|---|
| 25 | #define AE_CODE_MASK                    0xF000 | 
|---|
| 26 |  | 
|---|
| 27 | /* | 
|---|
| 28 | * Macros to insert the exception code classes | 
|---|
| 29 | */ | 
|---|
| 30 | #define EXCEP_ENV(code)                 ((acpi_status) (code | AE_CODE_ENVIRONMENTAL)) | 
|---|
| 31 | #define EXCEP_PGM(code)                 ((acpi_status) (code | AE_CODE_PROGRAMMER)) | 
|---|
| 32 | #define EXCEP_TBL(code)                 ((acpi_status) (code | AE_CODE_ACPI_TABLES)) | 
|---|
| 33 | #define EXCEP_AML(code)                 ((acpi_status) (code | AE_CODE_AML)) | 
|---|
| 34 | #define EXCEP_CTL(code)                 ((acpi_status) (code | AE_CODE_CONTROL)) | 
|---|
| 35 |  | 
|---|
| 36 | /* | 
|---|
| 37 | * Exception info table. The "Description" field is used only by the | 
|---|
| 38 | * ACPICA help application (acpihelp). | 
|---|
| 39 | */ | 
|---|
| 40 | struct acpi_exception_info { | 
|---|
| 41 | char *name; | 
|---|
| 42 |  | 
|---|
| 43 | #if defined (ACPI_HELP_APP) || defined (ACPI_ASL_COMPILER) | 
|---|
| 44 | char *description; | 
|---|
| 45 | #endif | 
|---|
| 46 | }; | 
|---|
| 47 |  | 
|---|
| 48 | #if defined (ACPI_HELP_APP) || defined (ACPI_ASL_COMPILER) | 
|---|
| 49 | #define EXCEP_TXT(name,description)     {name, description} | 
|---|
| 50 | #else | 
|---|
| 51 | #define EXCEP_TXT(name,description)     {name} | 
|---|
| 52 | #endif | 
|---|
| 53 |  | 
|---|
| 54 | /* | 
|---|
| 55 | * Success is always zero, failure is non-zero | 
|---|
| 56 | */ | 
|---|
| 57 | #define ACPI_SUCCESS(a)                 (!(a)) | 
|---|
| 58 | #define ACPI_FAILURE(a)                 (a) | 
|---|
| 59 |  | 
|---|
| 60 | #define AE_OK                           (acpi_status) 0x0000 | 
|---|
| 61 |  | 
|---|
| 62 | #define ACPI_ENV_EXCEPTION(status)      (((status) & AE_CODE_MASK) == AE_CODE_ENVIRONMENTAL) | 
|---|
| 63 | #define ACPI_AML_EXCEPTION(status)      (((status) & AE_CODE_MASK) == AE_CODE_AML) | 
|---|
| 64 | #define ACPI_PROG_EXCEPTION(status)     (((status) & AE_CODE_MASK) == AE_CODE_PROGRAMMER) | 
|---|
| 65 | #define ACPI_TABLE_EXCEPTION(status)    (((status) & AE_CODE_MASK) == AE_CODE_ACPI_TABLES) | 
|---|
| 66 | #define ACPI_CNTL_EXCEPTION(status)     (((status) & AE_CODE_MASK) == AE_CODE_CONTROL) | 
|---|
| 67 |  | 
|---|
| 68 | /* | 
|---|
| 69 | * Environmental exceptions | 
|---|
| 70 | */ | 
|---|
| 71 | #define AE_ERROR                        EXCEP_ENV (0x0001) | 
|---|
| 72 | #define AE_NO_ACPI_TABLES               EXCEP_ENV (0x0002) | 
|---|
| 73 | #define AE_NO_NAMESPACE                 EXCEP_ENV (0x0003) | 
|---|
| 74 | #define AE_NO_MEMORY                    EXCEP_ENV (0x0004) | 
|---|
| 75 | #define AE_NOT_FOUND                    EXCEP_ENV (0x0005) | 
|---|
| 76 | #define AE_NOT_EXIST                    EXCEP_ENV (0x0006) | 
|---|
| 77 | #define AE_ALREADY_EXISTS               EXCEP_ENV (0x0007) | 
|---|
| 78 | #define AE_TYPE                         EXCEP_ENV (0x0008) | 
|---|
| 79 | #define AE_NULL_OBJECT                  EXCEP_ENV (0x0009) | 
|---|
| 80 | #define AE_NULL_ENTRY                   EXCEP_ENV (0x000A) | 
|---|
| 81 | #define AE_BUFFER_OVERFLOW              EXCEP_ENV (0x000B) | 
|---|
| 82 | #define AE_STACK_OVERFLOW               EXCEP_ENV (0x000C) | 
|---|
| 83 | #define AE_STACK_UNDERFLOW              EXCEP_ENV (0x000D) | 
|---|
| 84 | #define AE_NOT_IMPLEMENTED              EXCEP_ENV (0x000E) | 
|---|
| 85 | #define AE_SUPPORT                      EXCEP_ENV (0x000F) | 
|---|
| 86 | #define AE_LIMIT                        EXCEP_ENV (0x0010) | 
|---|
| 87 | #define AE_TIME                         EXCEP_ENV (0x0011) | 
|---|
| 88 | #define AE_ACQUIRE_DEADLOCK             EXCEP_ENV (0x0012) | 
|---|
| 89 | #define AE_RELEASE_DEADLOCK             EXCEP_ENV (0x0013) | 
|---|
| 90 | #define AE_NOT_ACQUIRED                 EXCEP_ENV (0x0014) | 
|---|
| 91 | #define AE_ALREADY_ACQUIRED             EXCEP_ENV (0x0015) | 
|---|
| 92 | #define AE_NO_HARDWARE_RESPONSE         EXCEP_ENV (0x0016) | 
|---|
| 93 | #define AE_NO_GLOBAL_LOCK               EXCEP_ENV (0x0017) | 
|---|
| 94 | #define AE_ABORT_METHOD                 EXCEP_ENV (0x0018) | 
|---|
| 95 | #define AE_SAME_HANDLER                 EXCEP_ENV (0x0019) | 
|---|
| 96 | #define AE_NO_HANDLER                   EXCEP_ENV (0x001A) | 
|---|
| 97 | #define AE_OWNER_ID_LIMIT               EXCEP_ENV (0x001B) | 
|---|
| 98 | #define AE_NOT_CONFIGURED               EXCEP_ENV (0x001C) | 
|---|
| 99 | #define AE_ACCESS                       EXCEP_ENV (0x001D) | 
|---|
| 100 | #define AE_IO_ERROR                     EXCEP_ENV (0x001E) | 
|---|
| 101 | #define AE_NUMERIC_OVERFLOW             EXCEP_ENV (0x001F) | 
|---|
| 102 | #define AE_HEX_OVERFLOW                 EXCEP_ENV (0x0020) | 
|---|
| 103 | #define AE_DECIMAL_OVERFLOW             EXCEP_ENV (0x0021) | 
|---|
| 104 | #define AE_OCTAL_OVERFLOW               EXCEP_ENV (0x0022) | 
|---|
| 105 | #define AE_END_OF_TABLE                 EXCEP_ENV (0x0023) | 
|---|
| 106 |  | 
|---|
| 107 | #define AE_CODE_ENV_MAX                 0x0023 | 
|---|
| 108 |  | 
|---|
| 109 | /* | 
|---|
| 110 | * Programmer exceptions | 
|---|
| 111 | */ | 
|---|
| 112 | #define AE_BAD_PARAMETER                EXCEP_PGM (0x0001) | 
|---|
| 113 | #define AE_BAD_CHARACTER                EXCEP_PGM (0x0002) | 
|---|
| 114 | #define AE_BAD_PATHNAME                 EXCEP_PGM (0x0003) | 
|---|
| 115 | #define AE_BAD_DATA                     EXCEP_PGM (0x0004) | 
|---|
| 116 | #define AE_BAD_HEX_CONSTANT             EXCEP_PGM (0x0005) | 
|---|
| 117 | #define AE_BAD_OCTAL_CONSTANT           EXCEP_PGM (0x0006) | 
|---|
| 118 | #define AE_BAD_DECIMAL_CONSTANT         EXCEP_PGM (0x0007) | 
|---|
| 119 | #define AE_MISSING_ARGUMENTS            EXCEP_PGM (0x0008) | 
|---|
| 120 | #define AE_BAD_ADDRESS                  EXCEP_PGM (0x0009) | 
|---|
| 121 |  | 
|---|
| 122 | #define AE_CODE_PGM_MAX                 0x0009 | 
|---|
| 123 |  | 
|---|
| 124 | /* | 
|---|
| 125 | * Acpi table exceptions | 
|---|
| 126 | */ | 
|---|
| 127 | #define AE_BAD_SIGNATURE                EXCEP_TBL (0x0001) | 
|---|
| 128 | #define                    EXCEP_TBL (0x0002) | 
|---|
| 129 | #define AE_BAD_CHECKSUM                 EXCEP_TBL (0x0003) | 
|---|
| 130 | #define AE_BAD_VALUE                    EXCEP_TBL (0x0004) | 
|---|
| 131 | #define AE_INVALID_TABLE_LENGTH         EXCEP_TBL (0x0005) | 
|---|
| 132 |  | 
|---|
| 133 | #define AE_CODE_TBL_MAX                 0x0005 | 
|---|
| 134 |  | 
|---|
| 135 | /* | 
|---|
| 136 | * AML exceptions. These are caused by problems with | 
|---|
| 137 | * the actual AML byte stream | 
|---|
| 138 | */ | 
|---|
| 139 | #define AE_AML_BAD_OPCODE               EXCEP_AML (0x0001) | 
|---|
| 140 | #define AE_AML_NO_OPERAND               EXCEP_AML (0x0002) | 
|---|
| 141 | #define AE_AML_OPERAND_TYPE             EXCEP_AML (0x0003) | 
|---|
| 142 | #define AE_AML_OPERAND_VALUE            EXCEP_AML (0x0004) | 
|---|
| 143 | #define AE_AML_UNINITIALIZED_LOCAL      EXCEP_AML (0x0005) | 
|---|
| 144 | #define AE_AML_UNINITIALIZED_ARG        EXCEP_AML (0x0006) | 
|---|
| 145 | #define AE_AML_UNINITIALIZED_ELEMENT    EXCEP_AML (0x0007) | 
|---|
| 146 | #define AE_AML_NUMERIC_OVERFLOW         EXCEP_AML (0x0008) | 
|---|
| 147 | #define AE_AML_REGION_LIMIT             EXCEP_AML (0x0009) | 
|---|
| 148 | #define AE_AML_BUFFER_LIMIT             EXCEP_AML (0x000A) | 
|---|
| 149 | #define AE_AML_PACKAGE_LIMIT            EXCEP_AML (0x000B) | 
|---|
| 150 | #define AE_AML_DIVIDE_BY_ZERO           EXCEP_AML (0x000C) | 
|---|
| 151 | #define AE_AML_BAD_NAME                 EXCEP_AML (0x000D) | 
|---|
| 152 | #define AE_AML_NAME_NOT_FOUND           EXCEP_AML (0x000E) | 
|---|
| 153 | #define AE_AML_INTERNAL                 EXCEP_AML (0x000F) | 
|---|
| 154 | #define AE_AML_INVALID_SPACE_ID         EXCEP_AML (0x0010) | 
|---|
| 155 | #define AE_AML_STRING_LIMIT             EXCEP_AML (0x0011) | 
|---|
| 156 | #define AE_AML_NO_RETURN_VALUE          EXCEP_AML (0x0012) | 
|---|
| 157 | #define AE_AML_METHOD_LIMIT             EXCEP_AML (0x0013) | 
|---|
| 158 | #define AE_AML_NOT_OWNER                EXCEP_AML (0x0014) | 
|---|
| 159 | #define AE_AML_MUTEX_ORDER              EXCEP_AML (0x0015) | 
|---|
| 160 | #define AE_AML_MUTEX_NOT_ACQUIRED       EXCEP_AML (0x0016) | 
|---|
| 161 | #define AE_AML_INVALID_RESOURCE_TYPE    EXCEP_AML (0x0017) | 
|---|
| 162 | #define AE_AML_INVALID_INDEX            EXCEP_AML (0x0018) | 
|---|
| 163 | #define AE_AML_REGISTER_LIMIT           EXCEP_AML (0x0019) | 
|---|
| 164 | #define AE_AML_NO_WHILE                 EXCEP_AML (0x001A) | 
|---|
| 165 | #define AE_AML_ALIGNMENT                EXCEP_AML (0x001B) | 
|---|
| 166 | #define AE_AML_NO_RESOURCE_END_TAG      EXCEP_AML (0x001C) | 
|---|
| 167 | #define AE_AML_BAD_RESOURCE_VALUE       EXCEP_AML (0x001D) | 
|---|
| 168 | #define AE_AML_CIRCULAR_REFERENCE       EXCEP_AML (0x001E) | 
|---|
| 169 | #define AE_AML_BAD_RESOURCE_LENGTH      EXCEP_AML (0x001F) | 
|---|
| 170 | #define AE_AML_ILLEGAL_ADDRESS          EXCEP_AML (0x0020) | 
|---|
| 171 | #define AE_AML_LOOP_TIMEOUT             EXCEP_AML (0x0021) | 
|---|
| 172 | #define AE_AML_UNINITIALIZED_NODE       EXCEP_AML (0x0022) | 
|---|
| 173 | #define AE_AML_TARGET_TYPE              EXCEP_AML (0x0023) | 
|---|
| 174 | #define AE_AML_PROTOCOL                 EXCEP_AML (0x0024) | 
|---|
| 175 | #define AE_AML_BUFFER_LENGTH            EXCEP_AML (0x0025) | 
|---|
| 176 | #define AE_AML_TOO_FEW_ARGUMENTS        EXCEP_AML (0x0026) | 
|---|
| 177 | #define AE_AML_TOO_MANY_ARGUMENTS       EXCEP_AML (0x0027) | 
|---|
| 178 |  | 
|---|
| 179 | #define AE_CODE_AML_MAX                 0x0027 | 
|---|
| 180 |  | 
|---|
| 181 | /* | 
|---|
| 182 | * Internal exceptions used for control | 
|---|
| 183 | */ | 
|---|
| 184 | #define AE_CTRL_RETURN_VALUE            EXCEP_CTL (0x0001) | 
|---|
| 185 | #define AE_CTRL_PENDING                 EXCEP_CTL (0x0002) | 
|---|
| 186 | #define AE_CTRL_TERMINATE               EXCEP_CTL (0x0003) | 
|---|
| 187 | #define AE_CTRL_TRUE                    EXCEP_CTL (0x0004) | 
|---|
| 188 | #define AE_CTRL_FALSE                   EXCEP_CTL (0x0005) | 
|---|
| 189 | #define AE_CTRL_DEPTH                   EXCEP_CTL (0x0006) | 
|---|
| 190 | #define AE_CTRL_END                     EXCEP_CTL (0x0007) | 
|---|
| 191 | #define AE_CTRL_TRANSFER                EXCEP_CTL (0x0008) | 
|---|
| 192 | #define AE_CTRL_BREAK                   EXCEP_CTL (0x0009) | 
|---|
| 193 | #define AE_CTRL_CONTINUE                EXCEP_CTL (0x000A) | 
|---|
| 194 | #define AE_CTRL_PARSE_CONTINUE          EXCEP_CTL (0x000B) | 
|---|
| 195 | #define AE_CTRL_PARSE_PENDING           EXCEP_CTL (0x000C) | 
|---|
| 196 |  | 
|---|
| 197 | #define AE_CODE_CTRL_MAX                0x000C | 
|---|
| 198 |  | 
|---|
| 199 | /* Exception strings for acpi_format_exception */ | 
|---|
| 200 |  | 
|---|
| 201 | #ifdef ACPI_DEFINE_EXCEPTION_TABLE | 
|---|
| 202 |  | 
|---|
| 203 | /* | 
|---|
| 204 | * String versions of the exception codes above | 
|---|
| 205 | * These strings must match the corresponding defines exactly | 
|---|
| 206 | */ | 
|---|
| 207 | static const struct acpi_exception_info acpi_gbl_exception_names_env[] = { | 
|---|
| 208 | EXCEP_TXT( "AE_OK", "No error"), | 
|---|
| 209 | EXCEP_TXT( "AE_ERROR", "Unspecified error"), | 
|---|
| 210 | EXCEP_TXT( "AE_NO_ACPI_TABLES", "ACPI tables could not be found"), | 
|---|
| 211 | EXCEP_TXT( "AE_NO_NAMESPACE", "A namespace has not been loaded"), | 
|---|
| 212 | EXCEP_TXT( "AE_NO_MEMORY", "Insufficient dynamic memory"), | 
|---|
| 213 | EXCEP_TXT( "AE_NOT_FOUND", "A requested entity is not found"), | 
|---|
| 214 | EXCEP_TXT( "AE_NOT_EXIST", "A required entity does not exist"), | 
|---|
| 215 | EXCEP_TXT( "AE_ALREADY_EXISTS", "An entity already exists"), | 
|---|
| 216 | EXCEP_TXT( "AE_TYPE", "The object type is incorrect"), | 
|---|
| 217 | EXCEP_TXT( "AE_NULL_OBJECT", "A required object was missing"), | 
|---|
| 218 | EXCEP_TXT( "AE_NULL_ENTRY", "The requested object does not exist"), | 
|---|
| 219 | EXCEP_TXT( "AE_BUFFER_OVERFLOW", "The buffer provided is too small"), | 
|---|
| 220 | EXCEP_TXT( "AE_STACK_OVERFLOW", "An internal stack overflowed"), | 
|---|
| 221 | EXCEP_TXT( "AE_STACK_UNDERFLOW", "An internal stack underflowed"), | 
|---|
| 222 | EXCEP_TXT( "AE_NOT_IMPLEMENTED", "The feature is not implemented"), | 
|---|
| 223 | EXCEP_TXT( "AE_SUPPORT", "The feature is not supported"), | 
|---|
| 224 | EXCEP_TXT( "AE_LIMIT", "A predefined limit was exceeded"), | 
|---|
| 225 | EXCEP_TXT( "AE_TIME", "A time limit or timeout expired"), | 
|---|
| 226 | EXCEP_TXT( "AE_ACQUIRE_DEADLOCK", | 
|---|
| 227 | "Internal error, attempt was made to acquire a mutex in improper order"), | 
|---|
| 228 | EXCEP_TXT( "AE_RELEASE_DEADLOCK", | 
|---|
| 229 | "Internal error, attempt was made to release a mutex in improper order"), | 
|---|
| 230 | EXCEP_TXT( "AE_NOT_ACQUIRED", | 
|---|
| 231 | "An attempt to release a mutex or Global Lock without a previous acquire"), | 
|---|
| 232 | EXCEP_TXT( "AE_ALREADY_ACQUIRED", | 
|---|
| 233 | "Internal error, attempt was made to acquire a mutex twice"), | 
|---|
| 234 | EXCEP_TXT( "AE_NO_HARDWARE_RESPONSE", | 
|---|
| 235 | "Hardware did not respond after an I/O operation"), | 
|---|
| 236 | EXCEP_TXT( "AE_NO_GLOBAL_LOCK", "There is no FACS Global Lock"), | 
|---|
| 237 | EXCEP_TXT( "AE_ABORT_METHOD", "A control method was aborted"), | 
|---|
| 238 | EXCEP_TXT( "AE_SAME_HANDLER", | 
|---|
| 239 | "Attempt was made to install the same handler that is already installed"), | 
|---|
| 240 | EXCEP_TXT( "AE_NO_HANDLER", | 
|---|
| 241 | "A handler for the operation is not installed"), | 
|---|
| 242 | EXCEP_TXT( "AE_OWNER_ID_LIMIT", | 
|---|
| 243 | "There are no more Owner IDs available for ACPI tables or control methods"), | 
|---|
| 244 | EXCEP_TXT( "AE_NOT_CONFIGURED", | 
|---|
| 245 | "The interface is not part of the current subsystem configuration"), | 
|---|
| 246 | EXCEP_TXT( "AE_ACCESS", "Permission denied for the requested operation"), | 
|---|
| 247 | EXCEP_TXT( "AE_IO_ERROR", "An I/O error occurred"), | 
|---|
| 248 | EXCEP_TXT( "AE_NUMERIC_OVERFLOW", | 
|---|
| 249 | "Overflow during string-to-integer conversion"), | 
|---|
| 250 | EXCEP_TXT( "AE_HEX_OVERFLOW", | 
|---|
| 251 | "Overflow during ASCII hex-to-binary conversion"), | 
|---|
| 252 | EXCEP_TXT( "AE_DECIMAL_OVERFLOW", | 
|---|
| 253 | "Overflow during ASCII decimal-to-binary conversion"), | 
|---|
| 254 | EXCEP_TXT( "AE_OCTAL_OVERFLOW", | 
|---|
| 255 | "Overflow during ASCII octal-to-binary conversion"), | 
|---|
| 256 | EXCEP_TXT( "AE_END_OF_TABLE", "Reached the end of table") | 
|---|
| 257 | }; | 
|---|
| 258 |  | 
|---|
| 259 | static const struct acpi_exception_info acpi_gbl_exception_names_pgm[] = { | 
|---|
| 260 | EXCEP_TXT(NULL, NULL), | 
|---|
| 261 | EXCEP_TXT( "AE_BAD_PARAMETER", "A parameter is out of range or invalid"), | 
|---|
| 262 | EXCEP_TXT( "AE_BAD_CHARACTER", | 
|---|
| 263 | "An invalid character was found in a name"), | 
|---|
| 264 | EXCEP_TXT( "AE_BAD_PATHNAME", | 
|---|
| 265 | "An invalid character was found in a pathname"), | 
|---|
| 266 | EXCEP_TXT( "AE_BAD_DATA", | 
|---|
| 267 | "A package or buffer contained incorrect data"), | 
|---|
| 268 | EXCEP_TXT( "AE_BAD_HEX_CONSTANT", "Invalid character in a Hex constant"), | 
|---|
| 269 | EXCEP_TXT( "AE_BAD_OCTAL_CONSTANT", | 
|---|
| 270 | "Invalid character in an Octal constant"), | 
|---|
| 271 | EXCEP_TXT( "AE_BAD_DECIMAL_CONSTANT", | 
|---|
| 272 | "Invalid character in a Decimal constant"), | 
|---|
| 273 | EXCEP_TXT( "AE_MISSING_ARGUMENTS", | 
|---|
| 274 | "Too few arguments were passed to a control method"), | 
|---|
| 275 | EXCEP_TXT( "AE_BAD_ADDRESS", "An illegal null I/O address") | 
|---|
| 276 | }; | 
|---|
| 277 |  | 
|---|
| 278 | static const struct acpi_exception_info acpi_gbl_exception_names_tbl[] = { | 
|---|
| 279 | EXCEP_TXT(NULL, NULL), | 
|---|
| 280 | EXCEP_TXT( "AE_BAD_SIGNATURE", "An ACPI table has an invalid signature"), | 
|---|
| 281 | EXCEP_TXT( "AE_BAD_HEADER", "Invalid field in an ACPI table header"), | 
|---|
| 282 | EXCEP_TXT( "AE_BAD_CHECKSUM", "An ACPI table checksum is not correct"), | 
|---|
| 283 | EXCEP_TXT( "AE_BAD_VALUE", "An invalid value was found in a table"), | 
|---|
| 284 | EXCEP_TXT( "AE_INVALID_TABLE_LENGTH", | 
|---|
| 285 | "The FADT or FACS has improper length") | 
|---|
| 286 | }; | 
|---|
| 287 |  | 
|---|
| 288 | static const struct acpi_exception_info acpi_gbl_exception_names_aml[] = { | 
|---|
| 289 | EXCEP_TXT(NULL, NULL), | 
|---|
| 290 | EXCEP_TXT( "AE_AML_BAD_OPCODE", "Invalid AML opcode encountered"), | 
|---|
| 291 | EXCEP_TXT( "AE_AML_NO_OPERAND", "A required operand is missing"), | 
|---|
| 292 | EXCEP_TXT( "AE_AML_OPERAND_TYPE", | 
|---|
| 293 | "An operand of an incorrect type was encountered"), | 
|---|
| 294 | EXCEP_TXT( "AE_AML_OPERAND_VALUE", | 
|---|
| 295 | "The operand had an inappropriate or invalid value"), | 
|---|
| 296 | EXCEP_TXT( "AE_AML_UNINITIALIZED_LOCAL", | 
|---|
| 297 | "Method tried to use an uninitialized local variable"), | 
|---|
| 298 | EXCEP_TXT( "AE_AML_UNINITIALIZED_ARG", | 
|---|
| 299 | "Method tried to use an uninitialized argument"), | 
|---|
| 300 | EXCEP_TXT( "AE_AML_UNINITIALIZED_ELEMENT", | 
|---|
| 301 | "Method tried to use an empty package element"), | 
|---|
| 302 | EXCEP_TXT( "AE_AML_NUMERIC_OVERFLOW", | 
|---|
| 303 | "Overflow during BCD conversion or other"), | 
|---|
| 304 | EXCEP_TXT( "AE_AML_REGION_LIMIT", | 
|---|
| 305 | "Tried to access beyond the end of an Operation Region"), | 
|---|
| 306 | EXCEP_TXT( "AE_AML_BUFFER_LIMIT", | 
|---|
| 307 | "Tried to access beyond the end of a buffer"), | 
|---|
| 308 | EXCEP_TXT( "AE_AML_PACKAGE_LIMIT", | 
|---|
| 309 | "Tried to access beyond the end of a package"), | 
|---|
| 310 | EXCEP_TXT( "AE_AML_DIVIDE_BY_ZERO", | 
|---|
| 311 | "During execution of AML Divide operator"), | 
|---|
| 312 | EXCEP_TXT( "AE_AML_BAD_NAME", | 
|---|
| 313 | "An ACPI name contains invalid character(s)"), | 
|---|
| 314 | EXCEP_TXT( "AE_AML_NAME_NOT_FOUND", | 
|---|
| 315 | "Could not resolve a named reference"), | 
|---|
| 316 | EXCEP_TXT( "AE_AML_INTERNAL", | 
|---|
| 317 | "An internal error within the interpreter"), | 
|---|
| 318 | EXCEP_TXT( "AE_AML_INVALID_SPACE_ID", | 
|---|
| 319 | "An Operation Region SpaceID is invalid"), | 
|---|
| 320 | EXCEP_TXT( "AE_AML_STRING_LIMIT", | 
|---|
| 321 | "String is longer than 200 characters"), | 
|---|
| 322 | EXCEP_TXT( "AE_AML_NO_RETURN_VALUE", | 
|---|
| 323 | "A method did not return a required value"), | 
|---|
| 324 | EXCEP_TXT( "AE_AML_METHOD_LIMIT", | 
|---|
| 325 | "A control method reached the maximum reentrancy limit of 255"), | 
|---|
| 326 | EXCEP_TXT( "AE_AML_NOT_OWNER", | 
|---|
| 327 | "A thread tried to release a mutex that it does not own"), | 
|---|
| 328 | EXCEP_TXT( "AE_AML_MUTEX_ORDER", "Mutex SyncLevel release mismatch"), | 
|---|
| 329 | EXCEP_TXT( "AE_AML_MUTEX_NOT_ACQUIRED", | 
|---|
| 330 | "Attempt to release a mutex that was not previously acquired"), | 
|---|
| 331 | EXCEP_TXT( "AE_AML_INVALID_RESOURCE_TYPE", | 
|---|
| 332 | "Invalid resource type in resource list"), | 
|---|
| 333 | EXCEP_TXT( "AE_AML_INVALID_INDEX", | 
|---|
| 334 | "Invalid Argx or Localx (x too large)"), | 
|---|
| 335 | EXCEP_TXT( "AE_AML_REGISTER_LIMIT", | 
|---|
| 336 | "Bank value or Index value beyond range of register"), | 
|---|
| 337 | EXCEP_TXT( "AE_AML_NO_WHILE", "Break or Continue without a While"), | 
|---|
| 338 | EXCEP_TXT( "AE_AML_ALIGNMENT", | 
|---|
| 339 | "Non-aligned memory transfer on platform that does not support this"), | 
|---|
| 340 | EXCEP_TXT( "AE_AML_NO_RESOURCE_END_TAG", | 
|---|
| 341 | "No End Tag in a resource list"), | 
|---|
| 342 | EXCEP_TXT( "AE_AML_BAD_RESOURCE_VALUE", | 
|---|
| 343 | "Invalid value of a resource element"), | 
|---|
| 344 | EXCEP_TXT( "AE_AML_CIRCULAR_REFERENCE", | 
|---|
| 345 | "Two references refer to each other"), | 
|---|
| 346 | EXCEP_TXT( "AE_AML_BAD_RESOURCE_LENGTH", | 
|---|
| 347 | "The length of a Resource Descriptor in the AML is incorrect"), | 
|---|
| 348 | EXCEP_TXT( "AE_AML_ILLEGAL_ADDRESS", | 
|---|
| 349 | "A memory, I/O, or PCI configuration address is invalid"), | 
|---|
| 350 | EXCEP_TXT( "AE_AML_LOOP_TIMEOUT", | 
|---|
| 351 | "An AML While loop exceeded the maximum execution time"), | 
|---|
| 352 | EXCEP_TXT( "AE_AML_UNINITIALIZED_NODE", | 
|---|
| 353 | "A namespace node is uninitialized or unresolved"), | 
|---|
| 354 | EXCEP_TXT( "AE_AML_TARGET_TYPE", | 
|---|
| 355 | "A target operand of an incorrect type was encountered"), | 
|---|
| 356 | EXCEP_TXT( "AE_AML_PROTOCOL", "Violation of a fixed ACPI protocol"), | 
|---|
| 357 | EXCEP_TXT( "AE_AML_BUFFER_LENGTH", | 
|---|
| 358 | "The length of the buffer is invalid/incorrect"), | 
|---|
| 359 | EXCEP_TXT( "AE_AML_TOO_FEW_ARGUMENTS", | 
|---|
| 360 | "There are fewer than expected method arguments"), | 
|---|
| 361 | EXCEP_TXT( "AE_AML_TOO_MANY_ARGUMENTS", | 
|---|
| 362 | "There are too many arguments for this method") | 
|---|
| 363 | }; | 
|---|
| 364 |  | 
|---|
| 365 | static const struct acpi_exception_info acpi_gbl_exception_names_ctrl[] = { | 
|---|
| 366 | EXCEP_TXT(NULL, NULL), | 
|---|
| 367 | EXCEP_TXT( "AE_CTRL_RETURN_VALUE", "A Method returned a value"), | 
|---|
| 368 | EXCEP_TXT( "AE_CTRL_PENDING", "Method is calling another method"), | 
|---|
| 369 | EXCEP_TXT( "AE_CTRL_TERMINATE", "Terminate the executing method"), | 
|---|
| 370 | EXCEP_TXT( "AE_CTRL_TRUE", "An If or While predicate result"), | 
|---|
| 371 | EXCEP_TXT( "AE_CTRL_FALSE", "An If or While predicate result"), | 
|---|
| 372 | EXCEP_TXT( "AE_CTRL_DEPTH", "Maximum search depth has been reached"), | 
|---|
| 373 | EXCEP_TXT( "AE_CTRL_END", "An If or While predicate is false"), | 
|---|
| 374 | EXCEP_TXT( "AE_CTRL_TRANSFER", "Transfer control to called method"), | 
|---|
| 375 | EXCEP_TXT( "AE_CTRL_BREAK", "A Break has been executed"), | 
|---|
| 376 | EXCEP_TXT( "AE_CTRL_CONTINUE", "A Continue has been executed"), | 
|---|
| 377 | EXCEP_TXT( "AE_CTRL_PARSE_CONTINUE", "Used to skip over bad opcodes"), | 
|---|
| 378 | EXCEP_TXT( "AE_CTRL_PARSE_PENDING", "Used to implement AML While loops") | 
|---|
| 379 | }; | 
|---|
| 380 |  | 
|---|
| 381 | #endif				/* EXCEPTION_TABLE */ | 
|---|
| 382 |  | 
|---|
| 383 | #endif				/* __ACEXCEP_H__ */ | 
|---|
| 384 |  | 
|---|