Palacios Public Git Repository

To checkout Palacios execute

  git clone http://v3vee.org/palacios/palacios.web/palacios.git
This will give you the master branch. You probably want the devel branch or one of the release branches. To switch to the devel branch, simply execute
  cd palacios
  git checkout --track -b devel origin/devel
The other branches are similar.


797ca1ea5214612ab8bb2c593f11441eac7b38f3
[palacios-OLD.git] / kitten / include / acpi / acexcep.h
1 /******************************************************************************
2  *
3  * Name: acexcep.h - Exception codes returned by the ACPI subsystem
4  *
5  *****************************************************************************/
6
7 /*
8  * Copyright (C) 2000 - 2006, 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  * Exceptions returned by external ACPI interfaces
49  */
50 #define AE_CODE_ENVIRONMENTAL           0x0000
51 #define AE_CODE_PROGRAMMER              0x1000
52 #define AE_CODE_ACPI_TABLES             0x2000
53 #define AE_CODE_AML                     0x3000
54 #define AE_CODE_CONTROL                 0x4000
55 #define AE_CODE_MASK                    0xF000
56
57 #define ACPI_SUCCESS(a)                 (!(a))
58 #define ACPI_FAILURE(a)                 (a)
59
60 #define AE_OK                           (acpi_status) 0x0000
61
62 /*
63  * Environmental exceptions
64  */
65 #define AE_ERROR                        (acpi_status) (0x0001 | AE_CODE_ENVIRONMENTAL)
66 #define AE_NO_ACPI_TABLES               (acpi_status) (0x0002 | AE_CODE_ENVIRONMENTAL)
67 #define AE_NO_NAMESPACE                 (acpi_status) (0x0003 | AE_CODE_ENVIRONMENTAL)
68 #define AE_NO_MEMORY                    (acpi_status) (0x0004 | AE_CODE_ENVIRONMENTAL)
69 #define AE_NOT_FOUND                    (acpi_status) (0x0005 | AE_CODE_ENVIRONMENTAL)
70 #define AE_NOT_EXIST                    (acpi_status) (0x0006 | AE_CODE_ENVIRONMENTAL)
71 #define AE_ALREADY_EXISTS               (acpi_status) (0x0007 | AE_CODE_ENVIRONMENTAL)
72 #define AE_TYPE                         (acpi_status) (0x0008 | AE_CODE_ENVIRONMENTAL)
73 #define AE_NULL_OBJECT                  (acpi_status) (0x0009 | AE_CODE_ENVIRONMENTAL)
74 #define AE_NULL_ENTRY                   (acpi_status) (0x000A | AE_CODE_ENVIRONMENTAL)
75 #define AE_BUFFER_OVERFLOW              (acpi_status) (0x000B | AE_CODE_ENVIRONMENTAL)
76 #define AE_STACK_OVERFLOW               (acpi_status) (0x000C | AE_CODE_ENVIRONMENTAL)
77 #define AE_STACK_UNDERFLOW              (acpi_status) (0x000D | AE_CODE_ENVIRONMENTAL)
78 #define AE_NOT_IMPLEMENTED              (acpi_status) (0x000E | AE_CODE_ENVIRONMENTAL)
79 #define AE_VERSION_MISMATCH             (acpi_status) (0x000F | AE_CODE_ENVIRONMENTAL)
80 #define AE_SUPPORT                      (acpi_status) (0x0010 | AE_CODE_ENVIRONMENTAL)
81 #define AE_SHARE                        (acpi_status) (0x0011 | AE_CODE_ENVIRONMENTAL)
82 #define AE_LIMIT                        (acpi_status) (0x0012 | AE_CODE_ENVIRONMENTAL)
83 #define AE_TIME                         (acpi_status) (0x0013 | AE_CODE_ENVIRONMENTAL)
84 #define AE_UNKNOWN_STATUS               (acpi_status) (0x0014 | AE_CODE_ENVIRONMENTAL)
85 #define AE_ACQUIRE_DEADLOCK             (acpi_status) (0x0015 | AE_CODE_ENVIRONMENTAL)
86 #define AE_RELEASE_DEADLOCK             (acpi_status) (0x0016 | AE_CODE_ENVIRONMENTAL)
87 #define AE_NOT_ACQUIRED                 (acpi_status) (0x0017 | AE_CODE_ENVIRONMENTAL)
88 #define AE_ALREADY_ACQUIRED             (acpi_status) (0x0018 | AE_CODE_ENVIRONMENTAL)
89 #define AE_NO_HARDWARE_RESPONSE         (acpi_status) (0x0019 | AE_CODE_ENVIRONMENTAL)
90 #define AE_NO_GLOBAL_LOCK               (acpi_status) (0x001A | AE_CODE_ENVIRONMENTAL)
91 #define AE_LOGICAL_ADDRESS              (acpi_status) (0x001B | AE_CODE_ENVIRONMENTAL)
92 #define AE_ABORT_METHOD                 (acpi_status) (0x001C | AE_CODE_ENVIRONMENTAL)
93 #define AE_SAME_HANDLER                 (acpi_status) (0x001D | AE_CODE_ENVIRONMENTAL)
94 #define AE_WAKE_ONLY_GPE                (acpi_status) (0x001E | AE_CODE_ENVIRONMENTAL)
95 #define AE_OWNER_ID_LIMIT               (acpi_status) (0x001F | AE_CODE_ENVIRONMENTAL)
96
97 #define AE_CODE_ENV_MAX                 0x001F
98
99 /*
100  * Programmer exceptions
101  */
102 #define AE_BAD_PARAMETER                (acpi_status) (0x0001 | AE_CODE_PROGRAMMER)
103 #define AE_BAD_CHARACTER                (acpi_status) (0x0002 | AE_CODE_PROGRAMMER)
104 #define AE_BAD_PATHNAME                 (acpi_status) (0x0003 | AE_CODE_PROGRAMMER)
105 #define AE_BAD_DATA                     (acpi_status) (0x0004 | AE_CODE_PROGRAMMER)
106 #define AE_BAD_ADDRESS                  (acpi_status) (0x0005 | AE_CODE_PROGRAMMER)
107 #define AE_ALIGNMENT                    (acpi_status) (0x0006 | AE_CODE_PROGRAMMER)
108 #define AE_BAD_HEX_CONSTANT             (acpi_status) (0x0007 | AE_CODE_PROGRAMMER)
109 #define AE_BAD_OCTAL_CONSTANT           (acpi_status) (0x0008 | AE_CODE_PROGRAMMER)
110 #define AE_BAD_DECIMAL_CONSTANT         (acpi_status) (0x0009 | AE_CODE_PROGRAMMER)
111
112 #define AE_CODE_PGM_MAX                 0x0009
113
114 /*
115  * Acpi table exceptions
116  */
117 #define AE_BAD_SIGNATURE                (acpi_status) (0x0001 | AE_CODE_ACPI_TABLES)
118 #define AE_BAD_HEADER                   (acpi_status) (0x0002 | AE_CODE_ACPI_TABLES)
119 #define AE_BAD_CHECKSUM                 (acpi_status) (0x0003 | AE_CODE_ACPI_TABLES)
120 #define AE_BAD_VALUE                    (acpi_status) (0x0004 | AE_CODE_ACPI_TABLES)
121 #define AE_TABLE_NOT_SUPPORTED          (acpi_status) (0x0005 | AE_CODE_ACPI_TABLES)
122 #define AE_INVALID_TABLE_LENGTH         (acpi_status) (0x0006 | AE_CODE_ACPI_TABLES)
123
124 #define AE_CODE_TBL_MAX                 0x0006
125
126 /*
127  * AML exceptions.  These are caused by problems with
128  * the actual AML byte stream
129  */
130 #define AE_AML_ERROR                    (acpi_status) (0x0001 | AE_CODE_AML)
131 #define AE_AML_PARSE                    (acpi_status) (0x0002 | AE_CODE_AML)
132 #define AE_AML_BAD_OPCODE               (acpi_status) (0x0003 | AE_CODE_AML)
133 #define AE_AML_NO_OPERAND               (acpi_status) (0x0004 | AE_CODE_AML)
134 #define AE_AML_OPERAND_TYPE             (acpi_status) (0x0005 | AE_CODE_AML)
135 #define AE_AML_OPERAND_VALUE            (acpi_status) (0x0006 | AE_CODE_AML)
136 #define AE_AML_UNINITIALIZED_LOCAL      (acpi_status) (0x0007 | AE_CODE_AML)
137 #define AE_AML_UNINITIALIZED_ARG        (acpi_status) (0x0008 | AE_CODE_AML)
138 #define AE_AML_UNINITIALIZED_ELEMENT    (acpi_status) (0x0009 | AE_CODE_AML)
139 #define AE_AML_NUMERIC_OVERFLOW         (acpi_status) (0x000A | AE_CODE_AML)
140 #define AE_AML_REGION_LIMIT             (acpi_status) (0x000B | AE_CODE_AML)
141 #define AE_AML_BUFFER_LIMIT             (acpi_status) (0x000C | AE_CODE_AML)
142 #define AE_AML_PACKAGE_LIMIT            (acpi_status) (0x000D | AE_CODE_AML)
143 #define AE_AML_DIVIDE_BY_ZERO           (acpi_status) (0x000E | AE_CODE_AML)
144 #define AE_AML_BAD_NAME                 (acpi_status) (0x000F | AE_CODE_AML)
145 #define AE_AML_NAME_NOT_FOUND           (acpi_status) (0x0010 | AE_CODE_AML)
146 #define AE_AML_INTERNAL                 (acpi_status) (0x0011 | AE_CODE_AML)
147 #define AE_AML_INVALID_SPACE_ID         (acpi_status) (0x0012 | AE_CODE_AML)
148 #define AE_AML_STRING_LIMIT             (acpi_status) (0x0013 | AE_CODE_AML)
149 #define AE_AML_NO_RETURN_VALUE          (acpi_status) (0x0014 | AE_CODE_AML)
150 #define AE_AML_METHOD_LIMIT             (acpi_status) (0x0015 | AE_CODE_AML)
151 #define AE_AML_NOT_OWNER                (acpi_status) (0x0016 | AE_CODE_AML)
152 #define AE_AML_MUTEX_ORDER              (acpi_status) (0x0017 | AE_CODE_AML)
153 #define AE_AML_MUTEX_NOT_ACQUIRED       (acpi_status) (0x0018 | AE_CODE_AML)
154 #define AE_AML_INVALID_RESOURCE_TYPE    (acpi_status) (0x0019 | AE_CODE_AML)
155 #define AE_AML_INVALID_INDEX            (acpi_status) (0x001A | AE_CODE_AML)
156 #define AE_AML_REGISTER_LIMIT           (acpi_status) (0x001B | AE_CODE_AML)
157 #define AE_AML_NO_WHILE                 (acpi_status) (0x001C | AE_CODE_AML)
158 #define AE_AML_ALIGNMENT                (acpi_status) (0x001D | AE_CODE_AML)
159 #define AE_AML_NO_RESOURCE_END_TAG      (acpi_status) (0x001E | AE_CODE_AML)
160 #define AE_AML_BAD_RESOURCE_VALUE       (acpi_status) (0x001F | AE_CODE_AML)
161 #define AE_AML_CIRCULAR_REFERENCE       (acpi_status) (0x0020 | AE_CODE_AML)
162 #define AE_AML_BAD_RESOURCE_LENGTH      (acpi_status) (0x0021 | AE_CODE_AML)
163 #define AE_AML_ILLEGAL_ADDRESS          (acpi_status) (0x0022 | AE_CODE_AML)
164
165 #define AE_CODE_AML_MAX                 0x0022
166
167 /*
168  * Internal exceptions used for control
169  */
170 #define AE_CTRL_RETURN_VALUE            (acpi_status) (0x0001 | AE_CODE_CONTROL)
171 #define AE_CTRL_PENDING                 (acpi_status) (0x0002 | AE_CODE_CONTROL)
172 #define AE_CTRL_TERMINATE               (acpi_status) (0x0003 | AE_CODE_CONTROL)
173 #define AE_CTRL_TRUE                    (acpi_status) (0x0004 | AE_CODE_CONTROL)
174 #define AE_CTRL_FALSE                   (acpi_status) (0x0005 | AE_CODE_CONTROL)
175 #define AE_CTRL_DEPTH                   (acpi_status) (0x0006 | AE_CODE_CONTROL)
176 #define AE_CTRL_END                     (acpi_status) (0x0007 | AE_CODE_CONTROL)
177 #define AE_CTRL_TRANSFER                (acpi_status) (0x0008 | AE_CODE_CONTROL)
178 #define AE_CTRL_BREAK                   (acpi_status) (0x0009 | AE_CODE_CONTROL)
179 #define AE_CTRL_CONTINUE                (acpi_status) (0x000A | AE_CODE_CONTROL)
180 #define AE_CTRL_SKIP                    (acpi_status) (0x000B | AE_CODE_CONTROL)
181
182 #define AE_CODE_CTRL_MAX                0x000B
183
184 #ifdef DEFINE_ACPI_GLOBALS
185
186 /*
187  * String versions of the exception codes above
188  * These strings must match the corresponding defines exactly
189  */
190 char const *acpi_gbl_exception_names_env[] = {
191         "AE_OK",
192         "AE_ERROR",
193         "AE_NO_ACPI_TABLES",
194         "AE_NO_NAMESPACE",
195         "AE_NO_MEMORY",
196         "AE_NOT_FOUND",
197         "AE_NOT_EXIST",
198         "AE_ALREADY_EXISTS",
199         "AE_TYPE",
200         "AE_NULL_OBJECT",
201         "AE_NULL_ENTRY",
202         "AE_BUFFER_OVERFLOW",
203         "AE_STACK_OVERFLOW",
204         "AE_STACK_UNDERFLOW",
205         "AE_NOT_IMPLEMENTED",
206         "AE_VERSION_MISMATCH",
207         "AE_SUPPORT",
208         "AE_SHARE",
209         "AE_LIMIT",
210         "AE_TIME",
211         "AE_UNKNOWN_STATUS",
212         "AE_ACQUIRE_DEADLOCK",
213         "AE_RELEASE_DEADLOCK",
214         "AE_NOT_ACQUIRED",
215         "AE_ALREADY_ACQUIRED",
216         "AE_NO_HARDWARE_RESPONSE",
217         "AE_NO_GLOBAL_LOCK",
218         "AE_LOGICAL_ADDRESS",
219         "AE_ABORT_METHOD",
220         "AE_SAME_HANDLER",
221         "AE_WAKE_ONLY_GPE",
222         "AE_OWNER_ID_LIMIT"
223 };
224
225 char const *acpi_gbl_exception_names_pgm[] = {
226         "AE_BAD_PARAMETER",
227         "AE_BAD_CHARACTER",
228         "AE_BAD_PATHNAME",
229         "AE_BAD_DATA",
230         "AE_BAD_ADDRESS",
231         "AE_ALIGNMENT",
232         "AE_BAD_HEX_CONSTANT",
233         "AE_BAD_OCTAL_CONSTANT",
234         "AE_BAD_DECIMAL_CONSTANT"
235 };
236
237 char const *acpi_gbl_exception_names_tbl[] = {
238         "AE_BAD_SIGNATURE",
239         "AE_BAD_HEADER",
240         "AE_BAD_CHECKSUM",
241         "AE_BAD_VALUE",
242         "AE_TABLE_NOT_SUPPORTED",
243         "AE_INVALID_TABLE_LENGTH"
244 };
245
246 char const *acpi_gbl_exception_names_aml[] = {
247         "AE_AML_ERROR",
248         "AE_AML_PARSE",
249         "AE_AML_BAD_OPCODE",
250         "AE_AML_NO_OPERAND",
251         "AE_AML_OPERAND_TYPE",
252         "AE_AML_OPERAND_VALUE",
253         "AE_AML_UNINITIALIZED_LOCAL",
254         "AE_AML_UNINITIALIZED_ARG",
255         "AE_AML_UNINITIALIZED_ELEMENT",
256         "AE_AML_NUMERIC_OVERFLOW",
257         "AE_AML_REGION_LIMIT",
258         "AE_AML_BUFFER_LIMIT",
259         "AE_AML_PACKAGE_LIMIT",
260         "AE_AML_DIVIDE_BY_ZERO",
261         "AE_AML_BAD_NAME",
262         "AE_AML_NAME_NOT_FOUND",
263         "AE_AML_INTERNAL",
264         "AE_AML_INVALID_SPACE_ID",
265         "AE_AML_STRING_LIMIT",
266         "AE_AML_NO_RETURN_VALUE",
267         "AE_AML_METHOD_LIMIT",
268         "AE_AML_NOT_OWNER",
269         "AE_AML_MUTEX_ORDER",
270         "AE_AML_MUTEX_NOT_ACQUIRED",
271         "AE_AML_INVALID_RESOURCE_TYPE",
272         "AE_AML_INVALID_INDEX",
273         "AE_AML_REGISTER_LIMIT",
274         "AE_AML_NO_WHILE",
275         "AE_AML_ALIGNMENT",
276         "AE_AML_NO_RESOURCE_END_TAG",
277         "AE_AML_BAD_RESOURCE_VALUE",
278         "AE_AML_CIRCULAR_REFERENCE",
279         "AE_AML_BAD_RESOURCE_LENGTH",
280         "AE_AML_ILLEGAL_ADDRESS"
281 };
282
283 char const *acpi_gbl_exception_names_ctrl[] = {
284         "AE_CTRL_RETURN_VALUE",
285         "AE_CTRL_PENDING",
286         "AE_CTRL_TERMINATE",
287         "AE_CTRL_TRUE",
288         "AE_CTRL_FALSE",
289         "AE_CTRL_DEPTH",
290         "AE_CTRL_END",
291         "AE_CTRL_TRANSFER",
292         "AE_CTRL_BREAK",
293         "AE_CTRL_CONTINUE",
294         "AE_CTRL_SKIP"
295 };
296
297 #endif                          /* ACPI GLOBALS */
298
299 #endif                          /* __ACEXCEP_H__ */