Details | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
434 | giacomo | 1 | /****************************************************************************** |
2 | * |
||
3 | * Name: acexcep.h - Exception codes returned by the ACPI subsystem |
||
4 | * |
||
5 | *****************************************************************************/ |
||
6 | |||
7 | /* |
||
8 | * Copyright (C) 2000 - 2003, R. Byron Moore |
||
9 | * All rights reserved. |
||
10 | * |
||
11 | * Redistribution and use in source and binary forms, with or without |
||
12 | * modification, are permitted provided that the following conditions |
||
13 | * are met: |
||
14 | * 1. Redistributions of source code must retain the above copyright |
||
15 | * notice, this list of conditions, and the following disclaimer, |
||
16 | * without modification. |
||
17 | * 2. Redistributions in binary form must reproduce at minimum a disclaimer |
||
18 | * substantially similar to the "NO WARRANTY" disclaimer below |
||
19 | * ("Disclaimer") and any redistribution must be conditioned upon |
||
20 | * including a substantially similar Disclaimer requirement for further |
||
21 | * binary redistribution. |
||
22 | * 3. Neither the names of the above-listed copyright holders nor the names |
||
23 | * of any contributors may be used to endorse or promote products derived |
||
24 | * from this software without specific prior written permission. |
||
25 | * |
||
26 | * Alternatively, this software may be distributed under the terms of the |
||
27 | * GNU General Public License ("GPL") version 2 as published by the Free |
||
28 | * Software Foundation. |
||
29 | * |
||
30 | * NO WARRANTY |
||
31 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
||
32 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |
||
33 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR |
||
34 | * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT |
||
35 | * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL |
||
36 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS |
||
37 | * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) |
||
38 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, |
||
39 | * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING |
||
40 | * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE |
||
41 | * POSSIBILITY OF SUCH DAMAGES. |
||
42 | */ |
||
43 | |||
44 | #ifndef __ACEXCEP_H__ |
||
45 | #define __ACEXCEP_H__ |
||
46 | |||
47 | |||
48 | /* |
||
49 | * Exceptions returned by external ACPI interfaces |
||
50 | */ |
||
51 | |||
52 | #define AE_CODE_ENVIRONMENTAL 0x0000 |
||
53 | #define AE_CODE_PROGRAMMER 0x1000 |
||
54 | #define AE_CODE_ACPI_TABLES 0x2000 |
||
55 | #define AE_CODE_AML 0x3000 |
||
56 | #define AE_CODE_CONTROL 0x4000 |
||
57 | #define AE_CODE_MASK 0xF000 |
||
58 | |||
59 | |||
60 | #define ACPI_SUCCESS(a) (!(a)) |
||
61 | #define ACPI_FAILURE(a) (a) |
||
62 | |||
63 | |||
64 | #define AE_OK (acpi_status) 0x0000 |
||
65 | |||
66 | /* |
||
67 | * Environmental exceptions |
||
68 | */ |
||
69 | #define AE_ERROR (acpi_status) (0x0001 | AE_CODE_ENVIRONMENTAL) |
||
70 | #define AE_NO_ACPI_TABLES (acpi_status) (0x0002 | AE_CODE_ENVIRONMENTAL) |
||
71 | #define AE_NO_NAMESPACE (acpi_status) (0x0003 | AE_CODE_ENVIRONMENTAL) |
||
72 | #define AE_NO_MEMORY (acpi_status) (0x0004 | AE_CODE_ENVIRONMENTAL) |
||
73 | #define AE_NOT_FOUND (acpi_status) (0x0005 | AE_CODE_ENVIRONMENTAL) |
||
74 | #define AE_NOT_EXIST (acpi_status) (0x0006 | AE_CODE_ENVIRONMENTAL) |
||
75 | #define AE_ALREADY_EXISTS (acpi_status) (0x0007 | AE_CODE_ENVIRONMENTAL) |
||
76 | #define AE_TYPE (acpi_status) (0x0008 | AE_CODE_ENVIRONMENTAL) |
||
77 | #define AE_NULL_OBJECT (acpi_status) (0x0009 | AE_CODE_ENVIRONMENTAL) |
||
78 | #define AE_NULL_ENTRY (acpi_status) (0x000A | AE_CODE_ENVIRONMENTAL) |
||
79 | #define AE_BUFFER_OVERFLOW (acpi_status) (0x000B | AE_CODE_ENVIRONMENTAL) |
||
80 | #define AE_STACK_OVERFLOW (acpi_status) (0x000C | AE_CODE_ENVIRONMENTAL) |
||
81 | #define AE_STACK_UNDERFLOW (acpi_status) (0x000D | AE_CODE_ENVIRONMENTAL) |
||
82 | #define AE_NOT_IMPLEMENTED (acpi_status) (0x000E | AE_CODE_ENVIRONMENTAL) |
||
83 | #define AE_VERSION_MISMATCH (acpi_status) (0x000F | AE_CODE_ENVIRONMENTAL) |
||
84 | #define AE_SUPPORT (acpi_status) (0x0010 | AE_CODE_ENVIRONMENTAL) |
||
85 | #define AE_SHARE (acpi_status) (0x0011 | AE_CODE_ENVIRONMENTAL) |
||
86 | #define AE_LIMIT (acpi_status) (0x0012 | AE_CODE_ENVIRONMENTAL) |
||
87 | #define AE_TIME (acpi_status) (0x0013 | AE_CODE_ENVIRONMENTAL) |
||
88 | #define AE_UNKNOWN_STATUS (acpi_status) (0x0014 | AE_CODE_ENVIRONMENTAL) |
||
89 | #define AE_ACQUIRE_DEADLOCK (acpi_status) (0x0015 | AE_CODE_ENVIRONMENTAL) |
||
90 | #define AE_RELEASE_DEADLOCK (acpi_status) (0x0016 | AE_CODE_ENVIRONMENTAL) |
||
91 | #define AE_NOT_ACQUIRED (acpi_status) (0x0017 | AE_CODE_ENVIRONMENTAL) |
||
92 | #define AE_ALREADY_ACQUIRED (acpi_status) (0x0018 | AE_CODE_ENVIRONMENTAL) |
||
93 | #define AE_NO_HARDWARE_RESPONSE (acpi_status) (0x0019 | AE_CODE_ENVIRONMENTAL) |
||
94 | #define AE_NO_GLOBAL_LOCK (acpi_status) (0x001A | AE_CODE_ENVIRONMENTAL) |
||
95 | #define AE_LOGICAL_ADDRESS (acpi_status) (0x001B | AE_CODE_ENVIRONMENTAL) |
||
96 | #define AE_ABORT_METHOD (acpi_status) (0x001C | AE_CODE_ENVIRONMENTAL) |
||
97 | #define AE_SAME_HANDLER (acpi_status) (0x001D | AE_CODE_ENVIRONMENTAL) |
||
98 | |||
99 | #define AE_CODE_ENV_MAX 0x001D |
||
100 | |||
101 | /* |
||
102 | * Programmer exceptions |
||
103 | */ |
||
104 | #define AE_BAD_PARAMETER (acpi_status) (0x0001 | AE_CODE_PROGRAMMER) |
||
105 | #define AE_BAD_CHARACTER (acpi_status) (0x0002 | AE_CODE_PROGRAMMER) |
||
106 | #define AE_BAD_PATHNAME (acpi_status) (0x0003 | AE_CODE_PROGRAMMER) |
||
107 | #define AE_BAD_DATA (acpi_status) (0x0004 | AE_CODE_PROGRAMMER) |
||
108 | #define AE_BAD_ADDRESS (acpi_status) (0x0005 | AE_CODE_PROGRAMMER) |
||
109 | #define AE_ALIGNMENT (acpi_status) (0x0006 | AE_CODE_PROGRAMMER) |
||
110 | #define AE_BAD_HEX_CONSTANT (acpi_status) (0x0007 | AE_CODE_PROGRAMMER) |
||
111 | #define AE_BAD_OCTAL_CONSTANT (acpi_status) (0x0008 | AE_CODE_PROGRAMMER) |
||
112 | #define AE_BAD_DECIMAL_CONSTANT (acpi_status) (0x0009 | AE_CODE_PROGRAMMER) |
||
113 | |||
114 | #define AE_CODE_PGM_MAX 0x0009 |
||
115 | |||
116 | |||
117 | /* |
||
118 | * Acpi table exceptions |
||
119 | */ |
||
120 | #define AE_BAD_SIGNATURE (acpi_status) (0x0001 | AE_CODE_ACPI_TABLES) |
||
121 | #define AE_BAD_HEADER (acpi_status) (0x0002 | AE_CODE_ACPI_TABLES) |
||
122 | #define AE_BAD_CHECKSUM (acpi_status) (0x0003 | AE_CODE_ACPI_TABLES) |
||
123 | #define AE_BAD_VALUE (acpi_status) (0x0004 | AE_CODE_ACPI_TABLES) |
||
124 | #define AE_TABLE_NOT_SUPPORTED (acpi_status) (0x0005 | AE_CODE_ACPI_TABLES) |
||
125 | #define AE_INVALID_TABLE_LENGTH (acpi_status) (0x0006 | AE_CODE_ACPI_TABLES) |
||
126 | |||
127 | #define AE_CODE_TBL_MAX 0x0006 |
||
128 | |||
129 | |||
130 | /* |
||
131 | * AML exceptions. These are caused by problems with |
||
132 | * the actual AML byte stream |
||
133 | */ |
||
134 | #define AE_AML_ERROR (acpi_status) (0x0001 | AE_CODE_AML) |
||
135 | #define AE_AML_PARSE (acpi_status) (0x0002 | AE_CODE_AML) |
||
136 | #define AE_AML_BAD_OPCODE (acpi_status) (0x0003 | AE_CODE_AML) |
||
137 | #define AE_AML_NO_OPERAND (acpi_status) (0x0004 | AE_CODE_AML) |
||
138 | #define AE_AML_OPERAND_TYPE (acpi_status) (0x0005 | AE_CODE_AML) |
||
139 | #define AE_AML_OPERAND_VALUE (acpi_status) (0x0006 | AE_CODE_AML) |
||
140 | #define AE_AML_UNINITIALIZED_LOCAL (acpi_status) (0x0007 | AE_CODE_AML) |
||
141 | #define AE_AML_UNINITIALIZED_ARG (acpi_status) (0x0008 | AE_CODE_AML) |
||
142 | #define AE_AML_UNINITIALIZED_ELEMENT (acpi_status) (0x0009 | AE_CODE_AML) |
||
143 | #define AE_AML_NUMERIC_OVERFLOW (acpi_status) (0x000A | AE_CODE_AML) |
||
144 | #define AE_AML_REGION_LIMIT (acpi_status) (0x000B | AE_CODE_AML) |
||
145 | #define AE_AML_BUFFER_LIMIT (acpi_status) (0x000C | AE_CODE_AML) |
||
146 | #define AE_AML_PACKAGE_LIMIT (acpi_status) (0x000D | AE_CODE_AML) |
||
147 | #define AE_AML_DIVIDE_BY_ZERO (acpi_status) (0x000E | AE_CODE_AML) |
||
148 | #define AE_AML_BAD_NAME (acpi_status) (0x000F | AE_CODE_AML) |
||
149 | #define AE_AML_NAME_NOT_FOUND (acpi_status) (0x0010 | AE_CODE_AML) |
||
150 | #define AE_AML_INTERNAL (acpi_status) (0x0011 | AE_CODE_AML) |
||
151 | #define AE_AML_INVALID_SPACE_ID (acpi_status) (0x0012 | AE_CODE_AML) |
||
152 | #define AE_AML_STRING_LIMIT (acpi_status) (0x0013 | AE_CODE_AML) |
||
153 | #define AE_AML_NO_RETURN_VALUE (acpi_status) (0x0014 | AE_CODE_AML) |
||
154 | #define AE_AML_METHOD_LIMIT (acpi_status) (0x0015 | AE_CODE_AML) |
||
155 | #define AE_AML_NOT_OWNER (acpi_status) (0x0016 | AE_CODE_AML) |
||
156 | #define AE_AML_MUTEX_ORDER (acpi_status) (0x0017 | AE_CODE_AML) |
||
157 | #define AE_AML_MUTEX_NOT_ACQUIRED (acpi_status) (0x0018 | AE_CODE_AML) |
||
158 | #define AE_AML_INVALID_RESOURCE_TYPE (acpi_status) (0x0019 | AE_CODE_AML) |
||
159 | #define AE_AML_INVALID_INDEX (acpi_status) (0x001A | AE_CODE_AML) |
||
160 | #define AE_AML_REGISTER_LIMIT (acpi_status) (0x001B | AE_CODE_AML) |
||
161 | #define AE_AML_NO_WHILE (acpi_status) (0x001C | AE_CODE_AML) |
||
162 | #define AE_AML_ALIGNMENT (acpi_status) (0x001D | AE_CODE_AML) |
||
163 | #define AE_AML_NO_RESOURCE_END_TAG (acpi_status) (0x001E | AE_CODE_AML) |
||
164 | #define AE_AML_BAD_RESOURCE_VALUE (acpi_status) (0x001F | AE_CODE_AML) |
||
165 | #define AE_AML_CIRCULAR_REFERENCE (acpi_status) (0x0020 | AE_CODE_AML) |
||
166 | #define AE_AML_BAD_RESOURCE_LENGTH (acpi_status) (0x0021 | AE_CODE_AML) |
||
167 | |||
168 | #define AE_CODE_AML_MAX 0x0020 |
||
169 | |||
170 | /* |
||
171 | * Internal exceptions used for control |
||
172 | */ |
||
173 | #define AE_CTRL_RETURN_VALUE (acpi_status) (0x0001 | AE_CODE_CONTROL) |
||
174 | #define AE_CTRL_PENDING (acpi_status) (0x0002 | AE_CODE_CONTROL) |
||
175 | #define AE_CTRL_TERMINATE (acpi_status) (0x0003 | AE_CODE_CONTROL) |
||
176 | #define AE_CTRL_TRUE (acpi_status) (0x0004 | AE_CODE_CONTROL) |
||
177 | #define AE_CTRL_FALSE (acpi_status) (0x0005 | AE_CODE_CONTROL) |
||
178 | #define AE_CTRL_DEPTH (acpi_status) (0x0006 | AE_CODE_CONTROL) |
||
179 | #define AE_CTRL_END (acpi_status) (0x0007 | AE_CODE_CONTROL) |
||
180 | #define AE_CTRL_TRANSFER (acpi_status) (0x0008 | AE_CODE_CONTROL) |
||
181 | #define AE_CTRL_BREAK (acpi_status) (0x0009 | AE_CODE_CONTROL) |
||
182 | #define AE_CTRL_CONTINUE (acpi_status) (0x000A | AE_CODE_CONTROL) |
||
183 | #define AE_CTRL_SKIP (acpi_status) (0x000B | AE_CODE_CONTROL) |
||
184 | |||
185 | #define AE_CODE_CTRL_MAX 0x000B |
||
186 | |||
187 | |||
188 | #ifdef DEFINE_ACPI_GLOBALS |
||
189 | |||
190 | /* |
||
191 | * String versions of the exception codes above |
||
192 | * These strings must match the corresponding defines exactly |
||
193 | */ |
||
194 | char const *acpi_gbl_exception_names_env[] = |
||
195 | { |
||
196 | "AE_OK", |
||
197 | "AE_ERROR", |
||
198 | "AE_NO_ACPI_TABLES", |
||
199 | "AE_NO_NAMESPACE", |
||
200 | "AE_NO_MEMORY", |
||
201 | "AE_NOT_FOUND", |
||
202 | "AE_NOT_EXIST", |
||
203 | "AE_ALREADY_EXISTS", |
||
204 | "AE_TYPE", |
||
205 | "AE_NULL_OBJECT", |
||
206 | "AE_NULL_ENTRY", |
||
207 | "AE_BUFFER_OVERFLOW", |
||
208 | "AE_STACK_OVERFLOW", |
||
209 | "AE_STACK_UNDERFLOW", |
||
210 | "AE_NOT_IMPLEMENTED", |
||
211 | "AE_VERSION_MISMATCH", |
||
212 | "AE_SUPPORT", |
||
213 | "AE_SHARE", |
||
214 | "AE_LIMIT", |
||
215 | "AE_TIME", |
||
216 | "AE_UNKNOWN_STATUS", |
||
217 | "AE_ACQUIRE_DEADLOCK", |
||
218 | "AE_RELEASE_DEADLOCK", |
||
219 | "AE_NOT_ACQUIRED", |
||
220 | "AE_ALREADY_ACQUIRED", |
||
221 | "AE_NO_HARDWARE_RESPONSE", |
||
222 | "AE_NO_GLOBAL_LOCK", |
||
223 | "AE_LOGICAL_ADDRESS", |
||
224 | "AE_ABORT_METHOD", |
||
225 | "AE_SAME_HANDLER" |
||
226 | }; |
||
227 | |||
228 | char const *acpi_gbl_exception_names_pgm[] = |
||
229 | { |
||
230 | "AE_BAD_PARAMETER", |
||
231 | "AE_BAD_CHARACTER", |
||
232 | "AE_BAD_PATHNAME", |
||
233 | "AE_BAD_DATA", |
||
234 | "AE_BAD_ADDRESS", |
||
235 | "AE_ALIGNMENT", |
||
236 | "AE_BAD_HEX_CONSTANT", |
||
237 | "AE_BAD_OCTAL_CONSTANT", |
||
238 | "AE_BAD_DECIMAL_CONSTANT" |
||
239 | }; |
||
240 | |||
241 | char const *acpi_gbl_exception_names_tbl[] = |
||
242 | { |
||
243 | "AE_BAD_SIGNATURE", |
||
244 | "AE_BAD_HEADER", |
||
245 | "AE_BAD_CHECKSUM", |
||
246 | "AE_BAD_VALUE", |
||
247 | "AE_TABLE_NOT_SUPPORTED", |
||
248 | "AE_INVALID_TABLE_LENGTH" |
||
249 | }; |
||
250 | |||
251 | char const *acpi_gbl_exception_names_aml[] = |
||
252 | { |
||
253 | "AE_AML_ERROR", |
||
254 | "AE_AML_PARSE", |
||
255 | "AE_AML_BAD_OPCODE", |
||
256 | "AE_AML_NO_OPERAND", |
||
257 | "AE_AML_OPERAND_TYPE", |
||
258 | "AE_AML_OPERAND_VALUE", |
||
259 | "AE_AML_UNINITIALIZED_LOCAL", |
||
260 | "AE_AML_UNINITIALIZED_ARG", |
||
261 | "AE_AML_UNINITIALIZED_ELEMENT", |
||
262 | "AE_AML_NUMERIC_OVERFLOW", |
||
263 | "AE_AML_REGION_LIMIT", |
||
264 | "AE_AML_BUFFER_LIMIT", |
||
265 | "AE_AML_PACKAGE_LIMIT", |
||
266 | "AE_AML_DIVIDE_BY_ZERO", |
||
267 | "AE_AML_BAD_NAME", |
||
268 | "AE_AML_NAME_NOT_FOUND", |
||
269 | "AE_AML_INTERNAL", |
||
270 | "AE_AML_INVALID_SPACE_ID", |
||
271 | "AE_AML_STRING_LIMIT", |
||
272 | "AE_AML_NO_RETURN_VALUE", |
||
273 | "AE_AML_METHOD_LIMIT", |
||
274 | "AE_AML_NOT_OWNER", |
||
275 | "AE_AML_MUTEX_ORDER", |
||
276 | "AE_AML_MUTEX_NOT_ACQUIRED", |
||
277 | "AE_AML_INVALID_RESOURCE_TYPE", |
||
278 | "AE_AML_INVALID_INDEX", |
||
279 | "AE_AML_REGISTER_LIMIT", |
||
280 | "AE_AML_NO_WHILE", |
||
281 | "AE_AML_ALIGNMENT", |
||
282 | "AE_AML_NO_RESOURCE_END_TAG", |
||
283 | "AE_AML_BAD_RESOURCE_VALUE", |
||
284 | "AE_AML_CIRCULAR_REFERENCE", |
||
285 | "AE_AML_BAD_RESOURCE_LENGTH" |
||
286 | }; |
||
287 | |||
288 | char const *acpi_gbl_exception_names_ctrl[] = |
||
289 | { |
||
290 | "AE_CTRL_RETURN_VALUE", |
||
291 | "AE_CTRL_PENDING", |
||
292 | "AE_CTRL_TERMINATE", |
||
293 | "AE_CTRL_TRUE", |
||
294 | "AE_CTRL_FALSE", |
||
295 | "AE_CTRL_DEPTH", |
||
296 | "AE_CTRL_END", |
||
297 | "AE_CTRL_TRANSFER", |
||
298 | "AE_CTRL_BREAK", |
||
299 | "AE_CTRL_CONTINUE", |
||
300 | "AE_CTRL_SKIP" |
||
301 | }; |
||
302 | |||
303 | #endif /* ACPI GLOBALS */ |
||
304 | |||
305 | |||
306 | #endif /* __ACEXCEP_H__ */ |