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 - 2023, 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 | |
177 | #define AE_CODE_AML_MAX 0x0025 |
178 | |
179 | /* |
180 | * Internal exceptions used for control |
181 | */ |
182 | #define AE_CTRL_RETURN_VALUE EXCEP_CTL (0x0001) |
183 | #define AE_CTRL_PENDING EXCEP_CTL (0x0002) |
184 | #define AE_CTRL_TERMINATE EXCEP_CTL (0x0003) |
185 | #define AE_CTRL_TRUE EXCEP_CTL (0x0004) |
186 | #define AE_CTRL_FALSE EXCEP_CTL (0x0005) |
187 | #define AE_CTRL_DEPTH EXCEP_CTL (0x0006) |
188 | #define AE_CTRL_END EXCEP_CTL (0x0007) |
189 | #define AE_CTRL_TRANSFER EXCEP_CTL (0x0008) |
190 | #define AE_CTRL_BREAK EXCEP_CTL (0x0009) |
191 | #define AE_CTRL_CONTINUE EXCEP_CTL (0x000A) |
192 | #define AE_CTRL_PARSE_CONTINUE EXCEP_CTL (0x000B) |
193 | #define AE_CTRL_PARSE_PENDING EXCEP_CTL (0x000C) |
194 | |
195 | #define AE_CODE_CTRL_MAX 0x000C |
196 | |
197 | /* Exception strings for acpi_format_exception */ |
198 | |
199 | #ifdef ACPI_DEFINE_EXCEPTION_TABLE |
200 | |
201 | /* |
202 | * String versions of the exception codes above |
203 | * These strings must match the corresponding defines exactly |
204 | */ |
205 | static const struct acpi_exception_info acpi_gbl_exception_names_env[] = { |
206 | EXCEP_TXT("AE_OK" , "No error" ), |
207 | EXCEP_TXT("AE_ERROR" , "Unspecified error" ), |
208 | EXCEP_TXT("AE_NO_ACPI_TABLES" , "ACPI tables could not be found" ), |
209 | EXCEP_TXT("AE_NO_NAMESPACE" , "A namespace has not been loaded" ), |
210 | EXCEP_TXT("AE_NO_MEMORY" , "Insufficient dynamic memory" ), |
211 | EXCEP_TXT("AE_NOT_FOUND" , "A requested entity is not found" ), |
212 | EXCEP_TXT("AE_NOT_EXIST" , "A required entity does not exist" ), |
213 | EXCEP_TXT("AE_ALREADY_EXISTS" , "An entity already exists" ), |
214 | EXCEP_TXT("AE_TYPE" , "The object type is incorrect" ), |
215 | EXCEP_TXT("AE_NULL_OBJECT" , "A required object was missing" ), |
216 | EXCEP_TXT("AE_NULL_ENTRY" , "The requested object does not exist" ), |
217 | EXCEP_TXT("AE_BUFFER_OVERFLOW" , "The buffer provided is too small" ), |
218 | EXCEP_TXT("AE_STACK_OVERFLOW" , "An internal stack overflowed" ), |
219 | EXCEP_TXT("AE_STACK_UNDERFLOW" , "An internal stack underflowed" ), |
220 | EXCEP_TXT("AE_NOT_IMPLEMENTED" , "The feature is not implemented" ), |
221 | EXCEP_TXT("AE_SUPPORT" , "The feature is not supported" ), |
222 | EXCEP_TXT("AE_LIMIT" , "A predefined limit was exceeded" ), |
223 | EXCEP_TXT("AE_TIME" , "A time limit or timeout expired" ), |
224 | EXCEP_TXT("AE_ACQUIRE_DEADLOCK" , |
225 | "Internal error, attempt was made to acquire a mutex in improper order" ), |
226 | EXCEP_TXT("AE_RELEASE_DEADLOCK" , |
227 | "Internal error, attempt was made to release a mutex in improper order" ), |
228 | EXCEP_TXT("AE_NOT_ACQUIRED" , |
229 | "An attempt to release a mutex or Global Lock without a previous acquire" ), |
230 | EXCEP_TXT("AE_ALREADY_ACQUIRED" , |
231 | "Internal error, attempt was made to acquire a mutex twice" ), |
232 | EXCEP_TXT("AE_NO_HARDWARE_RESPONSE" , |
233 | "Hardware did not respond after an I/O operation" ), |
234 | EXCEP_TXT("AE_NO_GLOBAL_LOCK" , "There is no FACS Global Lock" ), |
235 | EXCEP_TXT("AE_ABORT_METHOD" , "A control method was aborted" ), |
236 | EXCEP_TXT("AE_SAME_HANDLER" , |
237 | "Attempt was made to install the same handler that is already installed" ), |
238 | EXCEP_TXT("AE_NO_HANDLER" , |
239 | "A handler for the operation is not installed" ), |
240 | EXCEP_TXT("AE_OWNER_ID_LIMIT" , |
241 | "There are no more Owner IDs available for ACPI tables or control methods" ), |
242 | EXCEP_TXT("AE_NOT_CONFIGURED" , |
243 | "The interface is not part of the current subsystem configuration" ), |
244 | EXCEP_TXT("AE_ACCESS" , "Permission denied for the requested operation" ), |
245 | EXCEP_TXT("AE_IO_ERROR" , "An I/O error occurred" ), |
246 | EXCEP_TXT("AE_NUMERIC_OVERFLOW" , |
247 | "Overflow during string-to-integer conversion" ), |
248 | EXCEP_TXT("AE_HEX_OVERFLOW" , |
249 | "Overflow during ASCII hex-to-binary conversion" ), |
250 | EXCEP_TXT("AE_DECIMAL_OVERFLOW" , |
251 | "Overflow during ASCII decimal-to-binary conversion" ), |
252 | EXCEP_TXT("AE_OCTAL_OVERFLOW" , |
253 | "Overflow during ASCII octal-to-binary conversion" ), |
254 | EXCEP_TXT("AE_END_OF_TABLE" , "Reached the end of table" ) |
255 | }; |
256 | |
257 | static const struct acpi_exception_info acpi_gbl_exception_names_pgm[] = { |
258 | EXCEP_TXT(NULL, NULL), |
259 | EXCEP_TXT("AE_BAD_PARAMETER" , "A parameter is out of range or invalid" ), |
260 | EXCEP_TXT("AE_BAD_CHARACTER" , |
261 | "An invalid character was found in a name" ), |
262 | EXCEP_TXT("AE_BAD_PATHNAME" , |
263 | "An invalid character was found in a pathname" ), |
264 | EXCEP_TXT("AE_BAD_DATA" , |
265 | "A package or buffer contained incorrect data" ), |
266 | EXCEP_TXT("AE_BAD_HEX_CONSTANT" , "Invalid character in a Hex constant" ), |
267 | EXCEP_TXT("AE_BAD_OCTAL_CONSTANT" , |
268 | "Invalid character in an Octal constant" ), |
269 | EXCEP_TXT("AE_BAD_DECIMAL_CONSTANT" , |
270 | "Invalid character in a Decimal constant" ), |
271 | EXCEP_TXT("AE_MISSING_ARGUMENTS" , |
272 | "Too few arguments were passed to a control method" ), |
273 | EXCEP_TXT("AE_BAD_ADDRESS" , "An illegal null I/O address" ) |
274 | }; |
275 | |
276 | static const struct acpi_exception_info acpi_gbl_exception_names_tbl[] = { |
277 | EXCEP_TXT(NULL, NULL), |
278 | EXCEP_TXT("AE_BAD_SIGNATURE" , "An ACPI table has an invalid signature" ), |
279 | EXCEP_TXT("AE_BAD_HEADER" , "Invalid field in an ACPI table header" ), |
280 | EXCEP_TXT("AE_BAD_CHECKSUM" , "An ACPI table checksum is not correct" ), |
281 | EXCEP_TXT("AE_BAD_VALUE" , "An invalid value was found in a table" ), |
282 | EXCEP_TXT("AE_INVALID_TABLE_LENGTH" , |
283 | "The FADT or FACS has improper length" ) |
284 | }; |
285 | |
286 | static const struct acpi_exception_info acpi_gbl_exception_names_aml[] = { |
287 | EXCEP_TXT(NULL, NULL), |
288 | EXCEP_TXT("AE_AML_BAD_OPCODE" , "Invalid AML opcode encountered" ), |
289 | EXCEP_TXT("AE_AML_NO_OPERAND" , "A required operand is missing" ), |
290 | EXCEP_TXT("AE_AML_OPERAND_TYPE" , |
291 | "An operand of an incorrect type was encountered" ), |
292 | EXCEP_TXT("AE_AML_OPERAND_VALUE" , |
293 | "The operand had an inappropriate or invalid value" ), |
294 | EXCEP_TXT("AE_AML_UNINITIALIZED_LOCAL" , |
295 | "Method tried to use an uninitialized local variable" ), |
296 | EXCEP_TXT("AE_AML_UNINITIALIZED_ARG" , |
297 | "Method tried to use an uninitialized argument" ), |
298 | EXCEP_TXT("AE_AML_UNINITIALIZED_ELEMENT" , |
299 | "Method tried to use an empty package element" ), |
300 | EXCEP_TXT("AE_AML_NUMERIC_OVERFLOW" , |
301 | "Overflow during BCD conversion or other" ), |
302 | EXCEP_TXT("AE_AML_REGION_LIMIT" , |
303 | "Tried to access beyond the end of an Operation Region" ), |
304 | EXCEP_TXT("AE_AML_BUFFER_LIMIT" , |
305 | "Tried to access beyond the end of a buffer" ), |
306 | EXCEP_TXT("AE_AML_PACKAGE_LIMIT" , |
307 | "Tried to access beyond the end of a package" ), |
308 | EXCEP_TXT("AE_AML_DIVIDE_BY_ZERO" , |
309 | "During execution of AML Divide operator" ), |
310 | EXCEP_TXT("AE_AML_BAD_NAME" , |
311 | "An ACPI name contains invalid character(s)" ), |
312 | EXCEP_TXT("AE_AML_NAME_NOT_FOUND" , |
313 | "Could not resolve a named reference" ), |
314 | EXCEP_TXT("AE_AML_INTERNAL" , |
315 | "An internal error within the interpreter" ), |
316 | EXCEP_TXT("AE_AML_INVALID_SPACE_ID" , |
317 | "An Operation Region SpaceID is invalid" ), |
318 | EXCEP_TXT("AE_AML_STRING_LIMIT" , |
319 | "String is longer than 200 characters" ), |
320 | EXCEP_TXT("AE_AML_NO_RETURN_VALUE" , |
321 | "A method did not return a required value" ), |
322 | EXCEP_TXT("AE_AML_METHOD_LIMIT" , |
323 | "A control method reached the maximum reentrancy limit of 255" ), |
324 | EXCEP_TXT("AE_AML_NOT_OWNER" , |
325 | "A thread tried to release a mutex that it does not own" ), |
326 | EXCEP_TXT("AE_AML_MUTEX_ORDER" , "Mutex SyncLevel release mismatch" ), |
327 | EXCEP_TXT("AE_AML_MUTEX_NOT_ACQUIRED" , |
328 | "Attempt to release a mutex that was not previously acquired" ), |
329 | EXCEP_TXT("AE_AML_INVALID_RESOURCE_TYPE" , |
330 | "Invalid resource type in resource list" ), |
331 | EXCEP_TXT("AE_AML_INVALID_INDEX" , |
332 | "Invalid Argx or Localx (x too large)" ), |
333 | EXCEP_TXT("AE_AML_REGISTER_LIMIT" , |
334 | "Bank value or Index value beyond range of register" ), |
335 | EXCEP_TXT("AE_AML_NO_WHILE" , "Break or Continue without a While" ), |
336 | EXCEP_TXT("AE_AML_ALIGNMENT" , |
337 | "Non-aligned memory transfer on platform that does not support this" ), |
338 | EXCEP_TXT("AE_AML_NO_RESOURCE_END_TAG" , |
339 | "No End Tag in a resource list" ), |
340 | EXCEP_TXT("AE_AML_BAD_RESOURCE_VALUE" , |
341 | "Invalid value of a resource element" ), |
342 | EXCEP_TXT("AE_AML_CIRCULAR_REFERENCE" , |
343 | "Two references refer to each other" ), |
344 | EXCEP_TXT("AE_AML_BAD_RESOURCE_LENGTH" , |
345 | "The length of a Resource Descriptor in the AML is incorrect" ), |
346 | EXCEP_TXT("AE_AML_ILLEGAL_ADDRESS" , |
347 | "A memory, I/O, or PCI configuration address is invalid" ), |
348 | EXCEP_TXT("AE_AML_LOOP_TIMEOUT" , |
349 | "An AML While loop exceeded the maximum execution time" ), |
350 | EXCEP_TXT("AE_AML_UNINITIALIZED_NODE" , |
351 | "A namespace node is uninitialized or unresolved" ), |
352 | EXCEP_TXT("AE_AML_TARGET_TYPE" , |
353 | "A target operand of an incorrect type was encountered" ), |
354 | EXCEP_TXT("AE_AML_PROTOCOL" , "Violation of a fixed ACPI protocol" ), |
355 | EXCEP_TXT("AE_AML_BUFFER_LENGTH" , |
356 | "The length of the buffer is invalid/incorrect" ) |
357 | }; |
358 | |
359 | static const struct acpi_exception_info acpi_gbl_exception_names_ctrl[] = { |
360 | EXCEP_TXT(NULL, NULL), |
361 | EXCEP_TXT("AE_CTRL_RETURN_VALUE" , "A Method returned a value" ), |
362 | EXCEP_TXT("AE_CTRL_PENDING" , "Method is calling another method" ), |
363 | EXCEP_TXT("AE_CTRL_TERMINATE" , "Terminate the executing method" ), |
364 | EXCEP_TXT("AE_CTRL_TRUE" , "An If or While predicate result" ), |
365 | EXCEP_TXT("AE_CTRL_FALSE" , "An If or While predicate result" ), |
366 | EXCEP_TXT("AE_CTRL_DEPTH" , "Maximum search depth has been reached" ), |
367 | EXCEP_TXT("AE_CTRL_END" , "An If or While predicate is false" ), |
368 | EXCEP_TXT("AE_CTRL_TRANSFER" , "Transfer control to called method" ), |
369 | EXCEP_TXT("AE_CTRL_BREAK" , "A Break has been executed" ), |
370 | EXCEP_TXT("AE_CTRL_CONTINUE" , "A Continue has been executed" ), |
371 | EXCEP_TXT("AE_CTRL_PARSE_CONTINUE" , "Used to skip over bad opcodes" ), |
372 | EXCEP_TXT("AE_CTRL_PARSE_PENDING" , "Used to implement AML While loops" ) |
373 | }; |
374 | |
375 | #endif /* EXCEPTION_TABLE */ |
376 | |
377 | #endif /* __ACEXCEP_H__ */ |
378 | |