diff options
author | Bob Moore <robert.moore@intel.com> | 2013-03-08 04:22:39 -0500 |
---|---|---|
committer | Rafael J. Wysocki <rafael.j.wysocki@intel.com> | 2013-03-11 19:45:05 -0400 |
commit | ae1b4769989f8707a1f092db191fa2f9a0fc8604 (patch) | |
tree | a6f05a11c411b1b2a5da2d136e5d2df3b2d7da5d | |
parent | 995b9a9d44acaf9e551be6f1fe606af179b9753f (diff) |
ACPICA: Add exception descriptions to exception info table
Descriptions to be compiled/used by the acpihelp utility only. Not
compiled for the kernel ACPICA code.
Signed-off-by: Bob Moore <robert.moore@intel.com>
Signed-off-by: Lv Zheng <lv.zheng@intel.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
-rw-r--r-- | drivers/acpi/acpica/acutils.h | 3 | ||||
-rw-r--r-- | drivers/acpi/acpica/utexcep.c | 26 | ||||
-rw-r--r-- | include/acpi/acexcep.h | 269 |
3 files changed, 183 insertions, 115 deletions
diff --git a/drivers/acpi/acpica/acutils.h b/drivers/acpi/acpica/acutils.h index 0082fa0a6139..c01f1a10a9d7 100644 --- a/drivers/acpi/acpica/acutils.h +++ b/drivers/acpi/acpica/acutils.h | |||
@@ -483,7 +483,8 @@ acpi_ut_short_divide(u64 in_dividend, | |||
483 | /* | 483 | /* |
484 | * utmisc | 484 | * utmisc |
485 | */ | 485 | */ |
486 | const char *acpi_ut_validate_exception(acpi_status status); | 486 | const struct acpi_exception_info *acpi_ut_validate_exception(acpi_status |
487 | status); | ||
487 | 488 | ||
488 | u8 acpi_ut_is_pci_root_bridge(char *id); | 489 | u8 acpi_ut_is_pci_root_bridge(char *id); |
489 | 490 | ||
diff --git a/drivers/acpi/acpica/utexcep.c b/drivers/acpi/acpica/utexcep.c index a0ab7c02e87c..b543a144941a 100644 --- a/drivers/acpi/acpica/utexcep.c +++ b/drivers/acpi/acpica/utexcep.c | |||
@@ -64,7 +64,7 @@ ACPI_MODULE_NAME("utexcep") | |||
64 | ******************************************************************************/ | 64 | ******************************************************************************/ |
65 | const char *acpi_format_exception(acpi_status status) | 65 | const char *acpi_format_exception(acpi_status status) |
66 | { | 66 | { |
67 | const char *exception = NULL; | 67 | const struct acpi_exception_info *exception; |
68 | 68 | ||
69 | ACPI_FUNCTION_ENTRY(); | 69 | ACPI_FUNCTION_ENTRY(); |
70 | 70 | ||
@@ -76,10 +76,10 @@ const char *acpi_format_exception(acpi_status status) | |||
76 | ACPI_ERROR((AE_INFO, | 76 | ACPI_ERROR((AE_INFO, |
77 | "Unknown exception code: 0x%8.8X", status)); | 77 | "Unknown exception code: 0x%8.8X", status)); |
78 | 78 | ||
79 | exception = "UNKNOWN_STATUS_CODE"; | 79 | return ("UNKNOWN_STATUS_CODE"); |
80 | } | 80 | } |
81 | 81 | ||
82 | return (ACPI_CAST_PTR(const char, exception)); | 82 | return (exception->name); |
83 | } | 83 | } |
84 | 84 | ||
85 | ACPI_EXPORT_SYMBOL(acpi_format_exception) | 85 | ACPI_EXPORT_SYMBOL(acpi_format_exception) |
@@ -97,10 +97,10 @@ ACPI_EXPORT_SYMBOL(acpi_format_exception) | |||
97 | * an ASCII string. | 97 | * an ASCII string. |
98 | * | 98 | * |
99 | ******************************************************************************/ | 99 | ******************************************************************************/ |
100 | const char *acpi_ut_validate_exception(acpi_status status) | 100 | const struct acpi_exception_info *acpi_ut_validate_exception(acpi_status status) |
101 | { | 101 | { |
102 | u32 sub_status; | 102 | u32 sub_status; |
103 | const char *exception = NULL; | 103 | const struct acpi_exception_info *exception = NULL; |
104 | 104 | ||
105 | ACPI_FUNCTION_ENTRY(); | 105 | ACPI_FUNCTION_ENTRY(); |
106 | 106 | ||
@@ -113,35 +113,35 @@ const char *acpi_ut_validate_exception(acpi_status status) | |||
113 | case AE_CODE_ENVIRONMENTAL: | 113 | case AE_CODE_ENVIRONMENTAL: |
114 | 114 | ||
115 | if (sub_status <= AE_CODE_ENV_MAX) { | 115 | if (sub_status <= AE_CODE_ENV_MAX) { |
116 | exception = acpi_gbl_exception_names_env[sub_status]; | 116 | exception = &acpi_gbl_exception_names_env[sub_status]; |
117 | } | 117 | } |
118 | break; | 118 | break; |
119 | 119 | ||
120 | case AE_CODE_PROGRAMMER: | 120 | case AE_CODE_PROGRAMMER: |
121 | 121 | ||
122 | if (sub_status <= AE_CODE_PGM_MAX) { | 122 | if (sub_status <= AE_CODE_PGM_MAX) { |
123 | exception = acpi_gbl_exception_names_pgm[sub_status]; | 123 | exception = &acpi_gbl_exception_names_pgm[sub_status]; |
124 | } | 124 | } |
125 | break; | 125 | break; |
126 | 126 | ||
127 | case AE_CODE_ACPI_TABLES: | 127 | case AE_CODE_ACPI_TABLES: |
128 | 128 | ||
129 | if (sub_status <= AE_CODE_TBL_MAX) { | 129 | if (sub_status <= AE_CODE_TBL_MAX) { |
130 | exception = acpi_gbl_exception_names_tbl[sub_status]; | 130 | exception = &acpi_gbl_exception_names_tbl[sub_status]; |
131 | } | 131 | } |
132 | break; | 132 | break; |
133 | 133 | ||
134 | case AE_CODE_AML: | 134 | case AE_CODE_AML: |
135 | 135 | ||
136 | if (sub_status <= AE_CODE_AML_MAX) { | 136 | if (sub_status <= AE_CODE_AML_MAX) { |
137 | exception = acpi_gbl_exception_names_aml[sub_status]; | 137 | exception = &acpi_gbl_exception_names_aml[sub_status]; |
138 | } | 138 | } |
139 | break; | 139 | break; |
140 | 140 | ||
141 | case AE_CODE_CONTROL: | 141 | case AE_CODE_CONTROL: |
142 | 142 | ||
143 | if (sub_status <= AE_CODE_CTRL_MAX) { | 143 | if (sub_status <= AE_CODE_CTRL_MAX) { |
144 | exception = acpi_gbl_exception_names_ctrl[sub_status]; | 144 | exception = &acpi_gbl_exception_names_ctrl[sub_status]; |
145 | } | 145 | } |
146 | break; | 146 | break; |
147 | 147 | ||
@@ -149,5 +149,9 @@ const char *acpi_ut_validate_exception(acpi_status status) | |||
149 | break; | 149 | break; |
150 | } | 150 | } |
151 | 151 | ||
152 | return (ACPI_CAST_PTR(const char, exception)); | 152 | if (!exception || !exception->name) { |
153 | return (NULL); | ||
154 | } | ||
155 | |||
156 | return (exception); | ||
153 | } | 157 | } |
diff --git a/include/acpi/acexcep.h b/include/acpi/acexcep.h index 3e6b163ee15f..cf051e05a8fe 100644 --- a/include/acpi/acexcep.h +++ b/include/acpi/acexcep.h | |||
@@ -49,11 +49,12 @@ | |||
49 | /* | 49 | /* |
50 | * Exception code classes | 50 | * Exception code classes |
51 | */ | 51 | */ |
52 | #define AE_CODE_ENVIRONMENTAL 0x0000 | 52 | #define AE_CODE_ENVIRONMENTAL 0x0000 /* General ACPICA environment */ |
53 | #define AE_CODE_PROGRAMMER 0x1000 | 53 | #define AE_CODE_PROGRAMMER 0x1000 /* External ACPICA interface caller */ |
54 | #define AE_CODE_ACPI_TABLES 0x2000 | 54 | #define AE_CODE_ACPI_TABLES 0x2000 /* ACPI tables */ |
55 | #define AE_CODE_AML 0x3000 | 55 | #define AE_CODE_AML 0x3000 /* From executing AML code */ |
56 | #define AE_CODE_CONTROL 0x4000 | 56 | #define AE_CODE_CONTROL 0x4000 /* Internal control codes */ |
57 | |||
57 | #define AE_CODE_MAX 0x4000 | 58 | #define AE_CODE_MAX 0x4000 |
58 | #define AE_CODE_MASK 0xF000 | 59 | #define AE_CODE_MASK 0xF000 |
59 | 60 | ||
@@ -67,6 +68,24 @@ | |||
67 | #define EXCEP_CTL(code) ((acpi_status) (code | AE_CODE_CONTROL)) | 68 | #define EXCEP_CTL(code) ((acpi_status) (code | AE_CODE_CONTROL)) |
68 | 69 | ||
69 | /* | 70 | /* |
71 | * Exception info table. The "Description" field is used only by the | ||
72 | * ACPICA help application (acpihelp). | ||
73 | */ | ||
74 | struct acpi_exception_info { | ||
75 | char *name; | ||
76 | |||
77 | #ifdef ACPI_HELP_APP | ||
78 | char *description; | ||
79 | #endif | ||
80 | }; | ||
81 | |||
82 | #ifdef ACPI_HELP_APP | ||
83 | #define EXCEP_TXT(name,description) {name, description} | ||
84 | #else | ||
85 | #define EXCEP_TXT(name,description) {name} | ||
86 | #endif | ||
87 | |||
88 | /* | ||
70 | * Success is always zero, failure is non-zero | 89 | * Success is always zero, failure is non-zero |
71 | */ | 90 | */ |
72 | #define ACPI_SUCCESS(a) (!(a)) | 91 | #define ACPI_SUCCESS(a) (!(a)) |
@@ -202,112 +221,156 @@ | |||
202 | * String versions of the exception codes above | 221 | * String versions of the exception codes above |
203 | * These strings must match the corresponding defines exactly | 222 | * These strings must match the corresponding defines exactly |
204 | */ | 223 | */ |
205 | char const *acpi_gbl_exception_names_env[] = { | 224 | static const struct acpi_exception_info acpi_gbl_exception_names_env[] = { |
206 | "AE_OK", | 225 | EXCEP_TXT("AE_OK", "No error"), |
207 | "AE_ERROR", | 226 | EXCEP_TXT("AE_ERROR", "Unspecified error"), |
208 | "AE_NO_ACPI_TABLES", | 227 | EXCEP_TXT("AE_NO_ACPI_TABLES", "ACPI tables could not be found"), |
209 | "AE_NO_NAMESPACE", | 228 | EXCEP_TXT("AE_NO_NAMESPACE", "A namespace has not been loaded"), |
210 | "AE_NO_MEMORY", | 229 | EXCEP_TXT("AE_NO_MEMORY", "Insufficient dynamic memory"), |
211 | "AE_NOT_FOUND", | 230 | EXCEP_TXT("AE_NOT_FOUND", "The name was not found in the namespace"), |
212 | "AE_NOT_EXIST", | 231 | EXCEP_TXT("AE_NOT_EXIST", "A required entity does not exist"), |
213 | "AE_ALREADY_EXISTS", | 232 | EXCEP_TXT("AE_ALREADY_EXISTS", "An entity already exists"), |
214 | "AE_TYPE", | 233 | EXCEP_TXT("AE_TYPE", "The object type is incorrect"), |
215 | "AE_NULL_OBJECT", | 234 | EXCEP_TXT("AE_NULL_OBJECT", "A required object was missing"), |
216 | "AE_NULL_ENTRY", | 235 | EXCEP_TXT("AE_NULL_ENTRY", "The requested object does not exist"), |
217 | "AE_BUFFER_OVERFLOW", | 236 | EXCEP_TXT("AE_BUFFER_OVERFLOW", "The buffer provided is too small"), |
218 | "AE_STACK_OVERFLOW", | 237 | EXCEP_TXT("AE_STACK_OVERFLOW", "An internal stack overflowed"), |
219 | "AE_STACK_UNDERFLOW", | 238 | EXCEP_TXT("AE_STACK_UNDERFLOW", "An internal stack underflowed"), |
220 | "AE_NOT_IMPLEMENTED", | 239 | EXCEP_TXT("AE_NOT_IMPLEMENTED", "The feature is not implemented"), |
221 | "AE_SUPPORT", | 240 | EXCEP_TXT("AE_SUPPORT", "The feature is not supported"), |
222 | "AE_LIMIT", | 241 | EXCEP_TXT("AE_LIMIT", "A predefined limit was exceeded"), |
223 | "AE_TIME", | 242 | EXCEP_TXT("AE_TIME", "A time limit or timeout expired"), |
224 | "AE_ACQUIRE_DEADLOCK", | 243 | EXCEP_TXT("AE_ACQUIRE_DEADLOCK", |
225 | "AE_RELEASE_DEADLOCK", | 244 | "Internal error, attempt was made to acquire a mutex in improper order"), |
226 | "AE_NOT_ACQUIRED", | 245 | EXCEP_TXT("AE_RELEASE_DEADLOCK", |
227 | "AE_ALREADY_ACQUIRED", | 246 | "Internal error, attempt was made to release a mutex in improper order"), |
228 | "AE_NO_HARDWARE_RESPONSE", | 247 | EXCEP_TXT("AE_NOT_ACQUIRED", |
229 | "AE_NO_GLOBAL_LOCK", | 248 | "An attempt to release a mutex or Global Lock without a previous acquire"), |
230 | "AE_ABORT_METHOD", | 249 | EXCEP_TXT("AE_ALREADY_ACQUIRED", |
231 | "AE_SAME_HANDLER", | 250 | "Internal error, attempt was made to acquire a mutex twice"), |
232 | "AE_NO_HANDLER", | 251 | EXCEP_TXT("AE_NO_HARDWARE_RESPONSE", |
233 | "AE_OWNER_ID_LIMIT", | 252 | "Hardware did not respond after an I/O operation"), |
234 | "AE_NOT_CONFIGURED" | 253 | EXCEP_TXT("AE_NO_GLOBAL_LOCK", "There is no FACS Global Lock"), |
254 | EXCEP_TXT("AE_ABORT_METHOD", "A control method was aborted"), | ||
255 | EXCEP_TXT("AE_SAME_HANDLER", | ||
256 | "Attempt was made to install the same handler that is already installed"), | ||
257 | EXCEP_TXT("AE_NO_HANDLER", | ||
258 | "A handler for the operation is not installed"), | ||
259 | EXCEP_TXT("AE_OWNER_ID_LIMIT", | ||
260 | "There are no more Owner IDs available for ACPI tables or control methods"), | ||
261 | EXCEP_TXT("AE_NOT_CONFIGURED", | ||
262 | "The interface is not part of the current subsystem configuration") | ||
235 | }; | 263 | }; |
236 | 264 | ||
237 | char const *acpi_gbl_exception_names_pgm[] = { | 265 | static const struct acpi_exception_info acpi_gbl_exception_names_pgm[] = { |
238 | NULL, | 266 | EXCEP_TXT(NULL, NULL), |
239 | "AE_BAD_PARAMETER", | 267 | EXCEP_TXT("AE_BAD_PARAMETER", "A parameter is out of range or invalid"), |
240 | "AE_BAD_CHARACTER", | 268 | EXCEP_TXT("AE_BAD_CHARACTER", |
241 | "AE_BAD_PATHNAME", | 269 | "An invalid character was found in a name"), |
242 | "AE_BAD_DATA", | 270 | EXCEP_TXT("AE_BAD_PATHNAME", |
243 | "AE_BAD_HEX_CONSTANT", | 271 | "An invalid character was found in a pathname"), |
244 | "AE_BAD_OCTAL_CONSTANT", | 272 | EXCEP_TXT("AE_BAD_DATA", |
245 | "AE_BAD_DECIMAL_CONSTANT", | 273 | "A package or buffer contained incorrect data"), |
246 | "AE_MISSING_ARGUMENTS", | 274 | EXCEP_TXT("AE_BAD_HEX_CONSTANT", "Invalid character in a Hex constant"), |
247 | "AE_BAD_ADDRESS" | 275 | EXCEP_TXT("AE_BAD_OCTAL_CONSTANT", |
276 | "Invalid character in an Octal constant"), | ||
277 | EXCEP_TXT("AE_BAD_DECIMAL_CONSTANT", | ||
278 | "Invalid character in a Decimal constant"), | ||
279 | EXCEP_TXT("AE_MISSING_ARGUMENTS", | ||
280 | "Too few arguments were passed to a control method"), | ||
281 | EXCEP_TXT("AE_BAD_ADDRESS", "An illegal null I/O address") | ||
248 | }; | 282 | }; |
249 | 283 | ||
250 | char const *acpi_gbl_exception_names_tbl[] = { | 284 | static const struct acpi_exception_info acpi_gbl_exception_names_tbl[] = { |
251 | NULL, | 285 | EXCEP_TXT(NULL, NULL), |
252 | "AE_BAD_SIGNATURE", | 286 | EXCEP_TXT("AE_BAD_SIGNATURE", "An ACPI table has an invalid signature"), |
253 | "AE_BAD_HEADER", | 287 | EXCEP_TXT("AE_BAD_HEADER", "Invalid field in an ACPI table header"), |
254 | "AE_BAD_CHECKSUM", | 288 | EXCEP_TXT("AE_BAD_CHECKSUM", "An ACPI table checksum is not correct"), |
255 | "AE_BAD_VALUE", | 289 | EXCEP_TXT("AE_BAD_VALUE", "An invalid value was found in a table"), |
256 | "AE_INVALID_TABLE_LENGTH" | 290 | EXCEP_TXT("AE_INVALID_TABLE_LENGTH", |
291 | "The FADT or FACS has improper length") | ||
257 | }; | 292 | }; |
258 | 293 | ||
259 | char const *acpi_gbl_exception_names_aml[] = { | 294 | static const struct acpi_exception_info acpi_gbl_exception_names_aml[] = { |
260 | NULL, | 295 | EXCEP_TXT(NULL, NULL), |
261 | "AE_AML_BAD_OPCODE", | 296 | EXCEP_TXT("AE_AML_BAD_OPCODE", "Invalid AML opcode encountered"), |
262 | "AE_AML_NO_OPERAND", | 297 | EXCEP_TXT("AE_AML_NO_OPERAND", "A required operand is missing"), |
263 | "AE_AML_OPERAND_TYPE", | 298 | EXCEP_TXT("AE_AML_OPERAND_TYPE", |
264 | "AE_AML_OPERAND_VALUE", | 299 | "An operand of an incorrect type was encountered"), |
265 | "AE_AML_UNINITIALIZED_LOCAL", | 300 | EXCEP_TXT("AE_AML_OPERAND_VALUE", |
266 | "AE_AML_UNINITIALIZED_ARG", | 301 | "The operand had an inappropriate or invalid value"), |
267 | "AE_AML_UNINITIALIZED_ELEMENT", | 302 | EXCEP_TXT("AE_AML_UNINITIALIZED_LOCAL", |
268 | "AE_AML_NUMERIC_OVERFLOW", | 303 | "Method tried to use an uninitialized local variable"), |
269 | "AE_AML_REGION_LIMIT", | 304 | EXCEP_TXT("AE_AML_UNINITIALIZED_ARG", |
270 | "AE_AML_BUFFER_LIMIT", | 305 | "Method tried to use an uninitialized argument"), |
271 | "AE_AML_PACKAGE_LIMIT", | 306 | EXCEP_TXT("AE_AML_UNINITIALIZED_ELEMENT", |
272 | "AE_AML_DIVIDE_BY_ZERO", | 307 | "Method tried to use an empty package element"), |
273 | "AE_AML_BAD_NAME", | 308 | EXCEP_TXT("AE_AML_NUMERIC_OVERFLOW", |
274 | "AE_AML_NAME_NOT_FOUND", | 309 | "Overflow during BCD conversion or other"), |
275 | "AE_AML_INTERNAL", | 310 | EXCEP_TXT("AE_AML_REGION_LIMIT", |
276 | "AE_AML_INVALID_SPACE_ID", | 311 | "Tried to access beyond the end of an Operation Region"), |
277 | "AE_AML_STRING_LIMIT", | 312 | EXCEP_TXT("AE_AML_BUFFER_LIMIT", |
278 | "AE_AML_NO_RETURN_VALUE", | 313 | "Tried to access beyond the end of a buffer"), |
279 | "AE_AML_METHOD_LIMIT", | 314 | EXCEP_TXT("AE_AML_PACKAGE_LIMIT", |
280 | "AE_AML_NOT_OWNER", | 315 | "Tried to access beyond the end of a package"), |
281 | "AE_AML_MUTEX_ORDER", | 316 | EXCEP_TXT("AE_AML_DIVIDE_BY_ZERO", |
282 | "AE_AML_MUTEX_NOT_ACQUIRED", | 317 | "During execution of AML Divide operator"), |
283 | "AE_AML_INVALID_RESOURCE_TYPE", | 318 | EXCEP_TXT("AE_AML_BAD_NAME", |
284 | "AE_AML_INVALID_INDEX", | 319 | "An ACPI name contains invalid character(s)"), |
285 | "AE_AML_REGISTER_LIMIT", | 320 | EXCEP_TXT("AE_AML_NAME_NOT_FOUND", |
286 | "AE_AML_NO_WHILE", | 321 | "Could not resolve a named reference"), |
287 | "AE_AML_ALIGNMENT", | 322 | EXCEP_TXT("AE_AML_INTERNAL", "An internal error within the interprete"), |
288 | "AE_AML_NO_RESOURCE_END_TAG", | 323 | EXCEP_TXT("AE_AML_INVALID_SPACE_ID", |
289 | "AE_AML_BAD_RESOURCE_VALUE", | 324 | "An Operation Region SpaceID is invalid"), |
290 | "AE_AML_CIRCULAR_REFERENCE", | 325 | EXCEP_TXT("AE_AML_STRING_LIMIT", |
291 | "AE_AML_BAD_RESOURCE_LENGTH", | 326 | "String is longer than 200 characters"), |
292 | "AE_AML_ILLEGAL_ADDRESS", | 327 | EXCEP_TXT("AE_AML_NO_RETURN_VALUE", |
293 | "AE_AML_INFINITE_LOOP" | 328 | "A method did not return a required value"), |
329 | EXCEP_TXT("AE_AML_METHOD_LIMIT", | ||
330 | "A control method reached the maximum reentrancy limit of 255"), | ||
331 | EXCEP_TXT("AE_AML_NOT_OWNER", | ||
332 | "A thread tried to release a mutex that it does not own"), | ||
333 | EXCEP_TXT("AE_AML_MUTEX_ORDER", "Mutex SyncLevel release mismatch"), | ||
334 | EXCEP_TXT("AE_AML_MUTEX_NOT_ACQUIRED", | ||
335 | "Attempt to release a mutex that was not previously acquired"), | ||
336 | EXCEP_TXT("AE_AML_INVALID_RESOURCE_TYPE", | ||
337 | "Invalid resource type in resource list"), | ||
338 | EXCEP_TXT("AE_AML_INVALID_INDEX", | ||
339 | "Invalid Argx or Localx (x too large)"), | ||
340 | EXCEP_TXT("AE_AML_REGISTER_LIMIT", | ||
341 | "Bank value or Index value beyond range of register"), | ||
342 | EXCEP_TXT("AE_AML_NO_WHILE", "Break or Continue without a While"), | ||
343 | EXCEP_TXT("AE_AML_ALIGNMENT", | ||
344 | "Non-aligned memory transfer on platform that does not support this"), | ||
345 | EXCEP_TXT("AE_AML_NO_RESOURCE_END_TAG", | ||
346 | "No End Tag in a resource list"), | ||
347 | EXCEP_TXT("AE_AML_BAD_RESOURCE_VALUE", | ||
348 | "Invalid value of a resource element"), | ||
349 | EXCEP_TXT("AE_AML_CIRCULAR_REFERENCE", | ||
350 | "Two references refer to each other"), | ||
351 | EXCEP_TXT("AE_AML_BAD_RESOURCE_LENGTH", | ||
352 | "The length of a Resource Descriptor in the AML is incorrect"), | ||
353 | EXCEP_TXT("AE_AML_ILLEGAL_ADDRESS", | ||
354 | "A memory, I/O, or PCI configuration address is invalid"), | ||
355 | EXCEP_TXT("AE_AML_INFINITE_LOOP", | ||
356 | "An apparent infinite AML While loop, method was aborted") | ||
294 | }; | 357 | }; |
295 | 358 | ||
296 | char const *acpi_gbl_exception_names_ctrl[] = { | 359 | static const struct acpi_exception_info acpi_gbl_exception_names_ctrl[] = { |
297 | NULL, | 360 | EXCEP_TXT(NULL, NULL), |
298 | "AE_CTRL_RETURN_VALUE", | 361 | EXCEP_TXT("AE_CTRL_RETURN_VALUE", "A Method returned a value"), |
299 | "AE_CTRL_PENDING", | 362 | EXCEP_TXT("AE_CTRL_PENDING", "Method is calling another method"), |
300 | "AE_CTRL_TERMINATE", | 363 | EXCEP_TXT("AE_CTRL_TERMINATE", "Terminate the executing method"), |
301 | "AE_CTRL_TRUE", | 364 | EXCEP_TXT("AE_CTRL_TRUE", "An If or While predicate result"), |
302 | "AE_CTRL_FALSE", | 365 | EXCEP_TXT("AE_CTRL_FALSE", "An If or While predicate result"), |
303 | "AE_CTRL_DEPTH", | 366 | EXCEP_TXT("AE_CTRL_DEPTH", "Maximum search depth has been reached"), |
304 | "AE_CTRL_END", | 367 | EXCEP_TXT("AE_CTRL_END", "An If or While predicate is false"), |
305 | "AE_CTRL_TRANSFER", | 368 | EXCEP_TXT("AE_CTRL_TRANSFER", "Transfer control to called method"), |
306 | "AE_CTRL_BREAK", | 369 | EXCEP_TXT("AE_CTRL_BREAK", "A Break has been executed"), |
307 | "AE_CTRL_CONTINUE", | 370 | EXCEP_TXT("AE_CTRL_CONTINUE", "A Continue has been executed"), |
308 | "AE_CTRL_SKIP", | 371 | EXCEP_TXT("AE_CTRL_SKIP", "Not currently used"), |
309 | "AE_CTRL_PARSE_CONTINUE", | 372 | EXCEP_TXT("AE_CTRL_PARSE_CONTINUE", "Used to skip over bad opcodes"), |
310 | "AE_CTRL_PARSE_PENDING" | 373 | EXCEP_TXT("AE_CTRL_PARSE_PENDING", "Used to implement AML While loops") |
311 | }; | 374 | }; |
312 | 375 | ||
313 | #endif /* EXCEPTION_TABLE */ | 376 | #endif /* EXCEPTION_TABLE */ |