utglobal.c revision 1.1 1 1.1 jruoho /******************************************************************************
2 1.1 jruoho *
3 1.1 jruoho * Module Name: utglobal - Global variables for the ACPI subsystem
4 1.1 jruoho *
5 1.1 jruoho *****************************************************************************/
6 1.1 jruoho
7 1.1 jruoho /******************************************************************************
8 1.1 jruoho *
9 1.1 jruoho * 1. Copyright Notice
10 1.1 jruoho *
11 1.1 jruoho * Some or all of this work - Copyright (c) 1999 - 2010, Intel Corp.
12 1.1 jruoho * All rights reserved.
13 1.1 jruoho *
14 1.1 jruoho * 2. License
15 1.1 jruoho *
16 1.1 jruoho * 2.1. This is your license from Intel Corp. under its intellectual property
17 1.1 jruoho * rights. You may have additional license terms from the party that provided
18 1.1 jruoho * you this software, covering your right to use that party's intellectual
19 1.1 jruoho * property rights.
20 1.1 jruoho *
21 1.1 jruoho * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
22 1.1 jruoho * copy of the source code appearing in this file ("Covered Code") an
23 1.1 jruoho * irrevocable, perpetual, worldwide license under Intel's copyrights in the
24 1.1 jruoho * base code distributed originally by Intel ("Original Intel Code") to copy,
25 1.1 jruoho * make derivatives, distribute, use and display any portion of the Covered
26 1.1 jruoho * Code in any form, with the right to sublicense such rights; and
27 1.1 jruoho *
28 1.1 jruoho * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
29 1.1 jruoho * license (with the right to sublicense), under only those claims of Intel
30 1.1 jruoho * patents that are infringed by the Original Intel Code, to make, use, sell,
31 1.1 jruoho * offer to sell, and import the Covered Code and derivative works thereof
32 1.1 jruoho * solely to the minimum extent necessary to exercise the above copyright
33 1.1 jruoho * license, and in no event shall the patent license extend to any additions
34 1.1 jruoho * to or modifications of the Original Intel Code. No other license or right
35 1.1 jruoho * is granted directly or by implication, estoppel or otherwise;
36 1.1 jruoho *
37 1.1 jruoho * The above copyright and patent license is granted only if the following
38 1.1 jruoho * conditions are met:
39 1.1 jruoho *
40 1.1 jruoho * 3. Conditions
41 1.1 jruoho *
42 1.1 jruoho * 3.1. Redistribution of Source with Rights to Further Distribute Source.
43 1.1 jruoho * Redistribution of source code of any substantial portion of the Covered
44 1.1 jruoho * Code or modification with rights to further distribute source must include
45 1.1 jruoho * the above Copyright Notice, the above License, this list of Conditions,
46 1.1 jruoho * and the following Disclaimer and Export Compliance provision. In addition,
47 1.1 jruoho * Licensee must cause all Covered Code to which Licensee contributes to
48 1.1 jruoho * contain a file documenting the changes Licensee made to create that Covered
49 1.1 jruoho * Code and the date of any change. Licensee must include in that file the
50 1.1 jruoho * documentation of any changes made by any predecessor Licensee. Licensee
51 1.1 jruoho * must include a prominent statement that the modification is derived,
52 1.1 jruoho * directly or indirectly, from Original Intel Code.
53 1.1 jruoho *
54 1.1 jruoho * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
55 1.1 jruoho * Redistribution of source code of any substantial portion of the Covered
56 1.1 jruoho * Code or modification without rights to further distribute source must
57 1.1 jruoho * include the following Disclaimer and Export Compliance provision in the
58 1.1 jruoho * documentation and/or other materials provided with distribution. In
59 1.1 jruoho * addition, Licensee may not authorize further sublicense of source of any
60 1.1 jruoho * portion of the Covered Code, and must include terms to the effect that the
61 1.1 jruoho * license from Licensee to its licensee is limited to the intellectual
62 1.1 jruoho * property embodied in the software Licensee provides to its licensee, and
63 1.1 jruoho * not to intellectual property embodied in modifications its licensee may
64 1.1 jruoho * make.
65 1.1 jruoho *
66 1.1 jruoho * 3.3. Redistribution of Executable. Redistribution in executable form of any
67 1.1 jruoho * substantial portion of the Covered Code or modification must reproduce the
68 1.1 jruoho * above Copyright Notice, and the following Disclaimer and Export Compliance
69 1.1 jruoho * provision in the documentation and/or other materials provided with the
70 1.1 jruoho * distribution.
71 1.1 jruoho *
72 1.1 jruoho * 3.4. Intel retains all right, title, and interest in and to the Original
73 1.1 jruoho * Intel Code.
74 1.1 jruoho *
75 1.1 jruoho * 3.5. Neither the name Intel nor any other trademark owned or controlled by
76 1.1 jruoho * Intel shall be used in advertising or otherwise to promote the sale, use or
77 1.1 jruoho * other dealings in products derived from or relating to the Covered Code
78 1.1 jruoho * without prior written authorization from Intel.
79 1.1 jruoho *
80 1.1 jruoho * 4. Disclaimer and Export Compliance
81 1.1 jruoho *
82 1.1 jruoho * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
83 1.1 jruoho * HERE. ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
84 1.1 jruoho * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT, ASSISTANCE,
85 1.1 jruoho * INSTALLATION, TRAINING OR OTHER SERVICES. INTEL WILL NOT PROVIDE ANY
86 1.1 jruoho * UPDATES, ENHANCEMENTS OR EXTENSIONS. INTEL SPECIFICALLY DISCLAIMS ANY
87 1.1 jruoho * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
88 1.1 jruoho * PARTICULAR PURPOSE.
89 1.1 jruoho *
90 1.1 jruoho * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
91 1.1 jruoho * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
92 1.1 jruoho * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
93 1.1 jruoho * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
94 1.1 jruoho * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
95 1.1 jruoho * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. THESE LIMITATIONS
96 1.1 jruoho * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
97 1.1 jruoho * LIMITED REMEDY.
98 1.1 jruoho *
99 1.1 jruoho * 4.3. Licensee shall not export, either directly or indirectly, any of this
100 1.1 jruoho * software or system incorporating such software without first obtaining any
101 1.1 jruoho * required license or other approval from the U. S. Department of Commerce or
102 1.1 jruoho * any other agency or department of the United States Government. In the
103 1.1 jruoho * event Licensee exports any such software from the United States or
104 1.1 jruoho * re-exports any such software from a foreign destination, Licensee shall
105 1.1 jruoho * ensure that the distribution and export/re-export of the software is in
106 1.1 jruoho * compliance with all laws, regulations, orders, or other restrictions of the
107 1.1 jruoho * U.S. Export Administration Regulations. Licensee agrees that neither it nor
108 1.1 jruoho * any of its subsidiaries will export/re-export any technical data, process,
109 1.1 jruoho * software, or service, directly or indirectly, to any country for which the
110 1.1 jruoho * United States government or any agency thereof requires an export license,
111 1.1 jruoho * other governmental approval, or letter of assurance, without first obtaining
112 1.1 jruoho * such license, approval or letter.
113 1.1 jruoho *
114 1.1 jruoho *****************************************************************************/
115 1.1 jruoho
116 1.1 jruoho #define __UTGLOBAL_C__
117 1.1 jruoho #define DEFINE_ACPI_GLOBALS
118 1.1 jruoho
119 1.1 jruoho #include "acpi.h"
120 1.1 jruoho #include "accommon.h"
121 1.1 jruoho #include "acnamesp.h"
122 1.1 jruoho
123 1.1 jruoho #define _COMPONENT ACPI_UTILITIES
124 1.1 jruoho ACPI_MODULE_NAME ("utglobal")
125 1.1 jruoho
126 1.1 jruoho
127 1.1 jruoho /*******************************************************************************
128 1.1 jruoho *
129 1.1 jruoho * Static global variable initialization.
130 1.1 jruoho *
131 1.1 jruoho ******************************************************************************/
132 1.1 jruoho
133 1.1 jruoho /*
134 1.1 jruoho * We want the debug switches statically initialized so they
135 1.1 jruoho * are already set when the debugger is entered.
136 1.1 jruoho */
137 1.1 jruoho
138 1.1 jruoho /* Debug switch - level and trace mask */
139 1.1 jruoho
140 1.1 jruoho #ifdef ACPI_DEBUG_OUTPUT
141 1.1 jruoho UINT32 AcpiDbgLevel = ACPI_DEBUG_DEFAULT;
142 1.1 jruoho #else
143 1.1 jruoho UINT32 AcpiDbgLevel = ACPI_NORMAL_DEFAULT;
144 1.1 jruoho #endif
145 1.1 jruoho
146 1.1 jruoho /* Debug switch - layer (component) mask */
147 1.1 jruoho
148 1.1 jruoho UINT32 AcpiDbgLayer = ACPI_COMPONENT_DEFAULT;
149 1.1 jruoho UINT32 AcpiGbl_NestingLevel = 0;
150 1.1 jruoho
151 1.1 jruoho /* Debugger globals */
152 1.1 jruoho
153 1.1 jruoho BOOLEAN AcpiGbl_DbTerminateThreads = FALSE;
154 1.1 jruoho BOOLEAN AcpiGbl_AbortMethod = FALSE;
155 1.1 jruoho BOOLEAN AcpiGbl_MethodExecuting = FALSE;
156 1.1 jruoho
157 1.1 jruoho /* System flags */
158 1.1 jruoho
159 1.1 jruoho UINT32 AcpiGbl_StartupFlags = 0;
160 1.1 jruoho
161 1.1 jruoho /* System starts uninitialized */
162 1.1 jruoho
163 1.1 jruoho BOOLEAN AcpiGbl_Shutdown = TRUE;
164 1.1 jruoho
165 1.1 jruoho const char *AcpiGbl_SleepStateNames[ACPI_S_STATE_COUNT] =
166 1.1 jruoho {
167 1.1 jruoho "\\_S0_",
168 1.1 jruoho "\\_S1_",
169 1.1 jruoho "\\_S2_",
170 1.1 jruoho "\\_S3_",
171 1.1 jruoho "\\_S4_",
172 1.1 jruoho "\\_S5_"
173 1.1 jruoho };
174 1.1 jruoho
175 1.1 jruoho const char *AcpiGbl_LowestDstateNames[ACPI_NUM_SxW_METHODS] =
176 1.1 jruoho {
177 1.1 jruoho "_S0W",
178 1.1 jruoho "_S1W",
179 1.1 jruoho "_S2W",
180 1.1 jruoho "_S3W",
181 1.1 jruoho "_S4W"
182 1.1 jruoho };
183 1.1 jruoho
184 1.1 jruoho const char *AcpiGbl_HighestDstateNames[ACPI_NUM_SxD_METHODS] =
185 1.1 jruoho {
186 1.1 jruoho "_S1D",
187 1.1 jruoho "_S2D",
188 1.1 jruoho "_S3D",
189 1.1 jruoho "_S4D"
190 1.1 jruoho };
191 1.1 jruoho
192 1.1 jruoho
193 1.1 jruoho /*******************************************************************************
194 1.1 jruoho *
195 1.1 jruoho * FUNCTION: AcpiFormatException
196 1.1 jruoho *
197 1.1 jruoho * PARAMETERS: Status - The ACPI_STATUS code to be formatted
198 1.1 jruoho *
199 1.1 jruoho * RETURN: A string containing the exception text. A valid pointer is
200 1.1 jruoho * always returned.
201 1.1 jruoho *
202 1.1 jruoho * DESCRIPTION: This function translates an ACPI exception into an ASCII string
203 1.1 jruoho * It is here instead of utxface.c so it is always present.
204 1.1 jruoho *
205 1.1 jruoho ******************************************************************************/
206 1.1 jruoho
207 1.1 jruoho const char *
208 1.1 jruoho AcpiFormatException (
209 1.1 jruoho ACPI_STATUS Status)
210 1.1 jruoho {
211 1.1 jruoho const char *Exception = NULL;
212 1.1 jruoho
213 1.1 jruoho
214 1.1 jruoho ACPI_FUNCTION_ENTRY ();
215 1.1 jruoho
216 1.1 jruoho
217 1.1 jruoho Exception = AcpiUtValidateException (Status);
218 1.1 jruoho if (!Exception)
219 1.1 jruoho {
220 1.1 jruoho /* Exception code was not recognized */
221 1.1 jruoho
222 1.1 jruoho ACPI_ERROR ((AE_INFO,
223 1.1 jruoho "Unknown exception code: 0x%8.8X", Status));
224 1.1 jruoho
225 1.1 jruoho Exception = "UNKNOWN_STATUS_CODE";
226 1.1 jruoho }
227 1.1 jruoho
228 1.1 jruoho return (ACPI_CAST_PTR (const char, Exception));
229 1.1 jruoho }
230 1.1 jruoho
231 1.1 jruoho ACPI_EXPORT_SYMBOL (AcpiFormatException)
232 1.1 jruoho
233 1.1 jruoho
234 1.1 jruoho /*******************************************************************************
235 1.1 jruoho *
236 1.1 jruoho * Namespace globals
237 1.1 jruoho *
238 1.1 jruoho ******************************************************************************/
239 1.1 jruoho
240 1.1 jruoho /*
241 1.1 jruoho * Predefined ACPI Names (Built-in to the Interpreter)
242 1.1 jruoho *
243 1.1 jruoho * NOTES:
244 1.1 jruoho * 1) _SB_ is defined to be a device to allow \_SB_._INI to be run
245 1.1 jruoho * during the initialization sequence.
246 1.1 jruoho * 2) _TZ_ is defined to be a thermal zone in order to allow ASL code to
247 1.1 jruoho * perform a Notify() operation on it.
248 1.1 jruoho */
249 1.1 jruoho const ACPI_PREDEFINED_NAMES AcpiGbl_PreDefinedNames[] =
250 1.1 jruoho {
251 1.1 jruoho {"_GPE", ACPI_TYPE_LOCAL_SCOPE, NULL},
252 1.1 jruoho {"_PR_", ACPI_TYPE_LOCAL_SCOPE, NULL},
253 1.1 jruoho {"_SB_", ACPI_TYPE_DEVICE, NULL},
254 1.1 jruoho {"_SI_", ACPI_TYPE_LOCAL_SCOPE, NULL},
255 1.1 jruoho {"_TZ_", ACPI_TYPE_THERMAL, NULL},
256 1.1 jruoho {"_REV", ACPI_TYPE_INTEGER, (char *) ACPI_CA_SUPPORT_LEVEL},
257 1.1 jruoho {"_OS_", ACPI_TYPE_STRING, ACPI_OS_NAME},
258 1.1 jruoho {"_GL_", ACPI_TYPE_MUTEX, (char *) 1},
259 1.1 jruoho
260 1.1 jruoho #if !defined (ACPI_NO_METHOD_EXECUTION) || defined (ACPI_CONSTANT_EVAL_ONLY)
261 1.1 jruoho {"_OSI", ACPI_TYPE_METHOD, (char *) 1},
262 1.1 jruoho #endif
263 1.1 jruoho
264 1.1 jruoho /* Table terminator */
265 1.1 jruoho
266 1.1 jruoho {NULL, ACPI_TYPE_ANY, NULL}
267 1.1 jruoho };
268 1.1 jruoho
269 1.1 jruoho /*
270 1.1 jruoho * Properties of the ACPI Object Types, both internal and external.
271 1.1 jruoho * The table is indexed by values of ACPI_OBJECT_TYPE
272 1.1 jruoho */
273 1.1 jruoho const UINT8 AcpiGbl_NsProperties[ACPI_NUM_NS_TYPES] =
274 1.1 jruoho {
275 1.1 jruoho ACPI_NS_NORMAL, /* 00 Any */
276 1.1 jruoho ACPI_NS_NORMAL, /* 01 Number */
277 1.1 jruoho ACPI_NS_NORMAL, /* 02 String */
278 1.1 jruoho ACPI_NS_NORMAL, /* 03 Buffer */
279 1.1 jruoho ACPI_NS_NORMAL, /* 04 Package */
280 1.1 jruoho ACPI_NS_NORMAL, /* 05 FieldUnit */
281 1.1 jruoho ACPI_NS_NEWSCOPE, /* 06 Device */
282 1.1 jruoho ACPI_NS_NORMAL, /* 07 Event */
283 1.1 jruoho ACPI_NS_NEWSCOPE, /* 08 Method */
284 1.1 jruoho ACPI_NS_NORMAL, /* 09 Mutex */
285 1.1 jruoho ACPI_NS_NORMAL, /* 10 Region */
286 1.1 jruoho ACPI_NS_NEWSCOPE, /* 11 Power */
287 1.1 jruoho ACPI_NS_NEWSCOPE, /* 12 Processor */
288 1.1 jruoho ACPI_NS_NEWSCOPE, /* 13 Thermal */
289 1.1 jruoho ACPI_NS_NORMAL, /* 14 BufferField */
290 1.1 jruoho ACPI_NS_NORMAL, /* 15 DdbHandle */
291 1.1 jruoho ACPI_NS_NORMAL, /* 16 Debug Object */
292 1.1 jruoho ACPI_NS_NORMAL, /* 17 DefField */
293 1.1 jruoho ACPI_NS_NORMAL, /* 18 BankField */
294 1.1 jruoho ACPI_NS_NORMAL, /* 19 IndexField */
295 1.1 jruoho ACPI_NS_NORMAL, /* 20 Reference */
296 1.1 jruoho ACPI_NS_NORMAL, /* 21 Alias */
297 1.1 jruoho ACPI_NS_NORMAL, /* 22 MethodAlias */
298 1.1 jruoho ACPI_NS_NORMAL, /* 23 Notify */
299 1.1 jruoho ACPI_NS_NORMAL, /* 24 Address Handler */
300 1.1 jruoho ACPI_NS_NEWSCOPE | ACPI_NS_LOCAL, /* 25 Resource Desc */
301 1.1 jruoho ACPI_NS_NEWSCOPE | ACPI_NS_LOCAL, /* 26 Resource Field */
302 1.1 jruoho ACPI_NS_NEWSCOPE, /* 27 Scope */
303 1.1 jruoho ACPI_NS_NORMAL, /* 28 Extra */
304 1.1 jruoho ACPI_NS_NORMAL, /* 29 Data */
305 1.1 jruoho ACPI_NS_NORMAL /* 30 Invalid */
306 1.1 jruoho };
307 1.1 jruoho
308 1.1 jruoho
309 1.1 jruoho /* Hex to ASCII conversion table */
310 1.1 jruoho
311 1.1 jruoho static const char AcpiGbl_HexToAscii[] =
312 1.1 jruoho {
313 1.1 jruoho '0','1','2','3','4','5','6','7',
314 1.1 jruoho '8','9','A','B','C','D','E','F'
315 1.1 jruoho };
316 1.1 jruoho
317 1.1 jruoho
318 1.1 jruoho /*******************************************************************************
319 1.1 jruoho *
320 1.1 jruoho * FUNCTION: AcpiUtHexToAsciiChar
321 1.1 jruoho *
322 1.1 jruoho * PARAMETERS: Integer - Contains the hex digit
323 1.1 jruoho * Position - bit position of the digit within the
324 1.1 jruoho * integer (multiple of 4)
325 1.1 jruoho *
326 1.1 jruoho * RETURN: The converted Ascii character
327 1.1 jruoho *
328 1.1 jruoho * DESCRIPTION: Convert a hex digit to an Ascii character
329 1.1 jruoho *
330 1.1 jruoho ******************************************************************************/
331 1.1 jruoho
332 1.1 jruoho char
333 1.1 jruoho AcpiUtHexToAsciiChar (
334 1.1 jruoho UINT64 Integer,
335 1.1 jruoho UINT32 Position)
336 1.1 jruoho {
337 1.1 jruoho
338 1.1 jruoho return (AcpiGbl_HexToAscii[(Integer >> Position) & 0xF]);
339 1.1 jruoho }
340 1.1 jruoho
341 1.1 jruoho
342 1.1 jruoho /******************************************************************************
343 1.1 jruoho *
344 1.1 jruoho * Event and Hardware globals
345 1.1 jruoho *
346 1.1 jruoho ******************************************************************************/
347 1.1 jruoho
348 1.1 jruoho ACPI_BIT_REGISTER_INFO AcpiGbl_BitRegisterInfo[ACPI_NUM_BITREG] =
349 1.1 jruoho {
350 1.1 jruoho /* Name Parent Register Register Bit Position Register Bit Mask */
351 1.1 jruoho
352 1.1 jruoho /* ACPI_BITREG_TIMER_STATUS */ {ACPI_REGISTER_PM1_STATUS, ACPI_BITPOSITION_TIMER_STATUS, ACPI_BITMASK_TIMER_STATUS},
353 1.1 jruoho /* ACPI_BITREG_BUS_MASTER_STATUS */ {ACPI_REGISTER_PM1_STATUS, ACPI_BITPOSITION_BUS_MASTER_STATUS, ACPI_BITMASK_BUS_MASTER_STATUS},
354 1.1 jruoho /* ACPI_BITREG_GLOBAL_LOCK_STATUS */ {ACPI_REGISTER_PM1_STATUS, ACPI_BITPOSITION_GLOBAL_LOCK_STATUS, ACPI_BITMASK_GLOBAL_LOCK_STATUS},
355 1.1 jruoho /* ACPI_BITREG_POWER_BUTTON_STATUS */ {ACPI_REGISTER_PM1_STATUS, ACPI_BITPOSITION_POWER_BUTTON_STATUS, ACPI_BITMASK_POWER_BUTTON_STATUS},
356 1.1 jruoho /* ACPI_BITREG_SLEEP_BUTTON_STATUS */ {ACPI_REGISTER_PM1_STATUS, ACPI_BITPOSITION_SLEEP_BUTTON_STATUS, ACPI_BITMASK_SLEEP_BUTTON_STATUS},
357 1.1 jruoho /* ACPI_BITREG_RT_CLOCK_STATUS */ {ACPI_REGISTER_PM1_STATUS, ACPI_BITPOSITION_RT_CLOCK_STATUS, ACPI_BITMASK_RT_CLOCK_STATUS},
358 1.1 jruoho /* ACPI_BITREG_WAKE_STATUS */ {ACPI_REGISTER_PM1_STATUS, ACPI_BITPOSITION_WAKE_STATUS, ACPI_BITMASK_WAKE_STATUS},
359 1.1 jruoho /* ACPI_BITREG_PCIEXP_WAKE_STATUS */ {ACPI_REGISTER_PM1_STATUS, ACPI_BITPOSITION_PCIEXP_WAKE_STATUS, ACPI_BITMASK_PCIEXP_WAKE_STATUS},
360 1.1 jruoho
361 1.1 jruoho /* ACPI_BITREG_TIMER_ENABLE */ {ACPI_REGISTER_PM1_ENABLE, ACPI_BITPOSITION_TIMER_ENABLE, ACPI_BITMASK_TIMER_ENABLE},
362 1.1 jruoho /* ACPI_BITREG_GLOBAL_LOCK_ENABLE */ {ACPI_REGISTER_PM1_ENABLE, ACPI_BITPOSITION_GLOBAL_LOCK_ENABLE, ACPI_BITMASK_GLOBAL_LOCK_ENABLE},
363 1.1 jruoho /* ACPI_BITREG_POWER_BUTTON_ENABLE */ {ACPI_REGISTER_PM1_ENABLE, ACPI_BITPOSITION_POWER_BUTTON_ENABLE, ACPI_BITMASK_POWER_BUTTON_ENABLE},
364 1.1 jruoho /* ACPI_BITREG_SLEEP_BUTTON_ENABLE */ {ACPI_REGISTER_PM1_ENABLE, ACPI_BITPOSITION_SLEEP_BUTTON_ENABLE, ACPI_BITMASK_SLEEP_BUTTON_ENABLE},
365 1.1 jruoho /* ACPI_BITREG_RT_CLOCK_ENABLE */ {ACPI_REGISTER_PM1_ENABLE, ACPI_BITPOSITION_RT_CLOCK_ENABLE, ACPI_BITMASK_RT_CLOCK_ENABLE},
366 1.1 jruoho /* ACPI_BITREG_PCIEXP_WAKE_DISABLE */ {ACPI_REGISTER_PM1_ENABLE, ACPI_BITPOSITION_PCIEXP_WAKE_DISABLE, ACPI_BITMASK_PCIEXP_WAKE_DISABLE},
367 1.1 jruoho
368 1.1 jruoho /* ACPI_BITREG_SCI_ENABLE */ {ACPI_REGISTER_PM1_CONTROL, ACPI_BITPOSITION_SCI_ENABLE, ACPI_BITMASK_SCI_ENABLE},
369 1.1 jruoho /* ACPI_BITREG_BUS_MASTER_RLD */ {ACPI_REGISTER_PM1_CONTROL, ACPI_BITPOSITION_BUS_MASTER_RLD, ACPI_BITMASK_BUS_MASTER_RLD},
370 1.1 jruoho /* ACPI_BITREG_GLOBAL_LOCK_RELEASE */ {ACPI_REGISTER_PM1_CONTROL, ACPI_BITPOSITION_GLOBAL_LOCK_RELEASE, ACPI_BITMASK_GLOBAL_LOCK_RELEASE},
371 1.1 jruoho /* ACPI_BITREG_SLEEP_TYPE */ {ACPI_REGISTER_PM1_CONTROL, ACPI_BITPOSITION_SLEEP_TYPE, ACPI_BITMASK_SLEEP_TYPE},
372 1.1 jruoho /* ACPI_BITREG_SLEEP_ENABLE */ {ACPI_REGISTER_PM1_CONTROL, ACPI_BITPOSITION_SLEEP_ENABLE, ACPI_BITMASK_SLEEP_ENABLE},
373 1.1 jruoho
374 1.1 jruoho /* ACPI_BITREG_ARB_DIS */ {ACPI_REGISTER_PM2_CONTROL, ACPI_BITPOSITION_ARB_DISABLE, ACPI_BITMASK_ARB_DISABLE}
375 1.1 jruoho };
376 1.1 jruoho
377 1.1 jruoho
378 1.1 jruoho ACPI_FIXED_EVENT_INFO AcpiGbl_FixedEventInfo[ACPI_NUM_FIXED_EVENTS] =
379 1.1 jruoho {
380 1.1 jruoho /* ACPI_EVENT_PMTIMER */ {ACPI_BITREG_TIMER_STATUS, ACPI_BITREG_TIMER_ENABLE, ACPI_BITMASK_TIMER_STATUS, ACPI_BITMASK_TIMER_ENABLE},
381 1.1 jruoho /* ACPI_EVENT_GLOBAL */ {ACPI_BITREG_GLOBAL_LOCK_STATUS, ACPI_BITREG_GLOBAL_LOCK_ENABLE, ACPI_BITMASK_GLOBAL_LOCK_STATUS, ACPI_BITMASK_GLOBAL_LOCK_ENABLE},
382 1.1 jruoho /* ACPI_EVENT_POWER_BUTTON */ {ACPI_BITREG_POWER_BUTTON_STATUS, ACPI_BITREG_POWER_BUTTON_ENABLE, ACPI_BITMASK_POWER_BUTTON_STATUS, ACPI_BITMASK_POWER_BUTTON_ENABLE},
383 1.1 jruoho /* ACPI_EVENT_SLEEP_BUTTON */ {ACPI_BITREG_SLEEP_BUTTON_STATUS, ACPI_BITREG_SLEEP_BUTTON_ENABLE, ACPI_BITMASK_SLEEP_BUTTON_STATUS, ACPI_BITMASK_SLEEP_BUTTON_ENABLE},
384 1.1 jruoho /* ACPI_EVENT_RTC */ {ACPI_BITREG_RT_CLOCK_STATUS, ACPI_BITREG_RT_CLOCK_ENABLE, ACPI_BITMASK_RT_CLOCK_STATUS, ACPI_BITMASK_RT_CLOCK_ENABLE},
385 1.1 jruoho };
386 1.1 jruoho
387 1.1 jruoho /*******************************************************************************
388 1.1 jruoho *
389 1.1 jruoho * FUNCTION: AcpiUtGetRegionName
390 1.1 jruoho *
391 1.1 jruoho * PARAMETERS: None.
392 1.1 jruoho *
393 1.1 jruoho * RETURN: Status
394 1.1 jruoho *
395 1.1 jruoho * DESCRIPTION: Translate a Space ID into a name string (Debug only)
396 1.1 jruoho *
397 1.1 jruoho ******************************************************************************/
398 1.1 jruoho
399 1.1 jruoho /* Region type decoding */
400 1.1 jruoho
401 1.1 jruoho const char *AcpiGbl_RegionTypes[ACPI_NUM_PREDEFINED_REGIONS] =
402 1.1 jruoho {
403 1.1 jruoho "SystemMemory",
404 1.1 jruoho "SystemIO",
405 1.1 jruoho "PCI_Config",
406 1.1 jruoho "EmbeddedControl",
407 1.1 jruoho "SMBus",
408 1.1 jruoho "SystemCMOS",
409 1.1 jruoho "PCIBARTarget",
410 1.1 jruoho "IPMI",
411 1.1 jruoho "DataTable"
412 1.1 jruoho };
413 1.1 jruoho
414 1.1 jruoho
415 1.1 jruoho char *
416 1.1 jruoho AcpiUtGetRegionName (
417 1.1 jruoho UINT8 SpaceId)
418 1.1 jruoho {
419 1.1 jruoho
420 1.1 jruoho if (SpaceId >= ACPI_USER_REGION_BEGIN)
421 1.1 jruoho {
422 1.1 jruoho return ("UserDefinedRegion");
423 1.1 jruoho }
424 1.1 jruoho else if (SpaceId >= ACPI_NUM_PREDEFINED_REGIONS)
425 1.1 jruoho {
426 1.1 jruoho return ("InvalidSpaceId");
427 1.1 jruoho }
428 1.1 jruoho
429 1.1 jruoho return (ACPI_CAST_PTR (char, AcpiGbl_RegionTypes[SpaceId]));
430 1.1 jruoho }
431 1.1 jruoho
432 1.1 jruoho
433 1.1 jruoho /*******************************************************************************
434 1.1 jruoho *
435 1.1 jruoho * FUNCTION: AcpiUtGetEventName
436 1.1 jruoho *
437 1.1 jruoho * PARAMETERS: None.
438 1.1 jruoho *
439 1.1 jruoho * RETURN: Status
440 1.1 jruoho *
441 1.1 jruoho * DESCRIPTION: Translate a Event ID into a name string (Debug only)
442 1.1 jruoho *
443 1.1 jruoho ******************************************************************************/
444 1.1 jruoho
445 1.1 jruoho /* Event type decoding */
446 1.1 jruoho
447 1.1 jruoho static const char *AcpiGbl_EventTypes[ACPI_NUM_FIXED_EVENTS] =
448 1.1 jruoho {
449 1.1 jruoho "PM_Timer",
450 1.1 jruoho "GlobalLock",
451 1.1 jruoho "PowerButton",
452 1.1 jruoho "SleepButton",
453 1.1 jruoho "RealTimeClock",
454 1.1 jruoho };
455 1.1 jruoho
456 1.1 jruoho
457 1.1 jruoho char *
458 1.1 jruoho AcpiUtGetEventName (
459 1.1 jruoho UINT32 EventId)
460 1.1 jruoho {
461 1.1 jruoho
462 1.1 jruoho if (EventId > ACPI_EVENT_MAX)
463 1.1 jruoho {
464 1.1 jruoho return ("InvalidEventID");
465 1.1 jruoho }
466 1.1 jruoho
467 1.1 jruoho return (ACPI_CAST_PTR (char, AcpiGbl_EventTypes[EventId]));
468 1.1 jruoho }
469 1.1 jruoho
470 1.1 jruoho
471 1.1 jruoho /*******************************************************************************
472 1.1 jruoho *
473 1.1 jruoho * FUNCTION: AcpiUtGetTypeName
474 1.1 jruoho *
475 1.1 jruoho * PARAMETERS: None.
476 1.1 jruoho *
477 1.1 jruoho * RETURN: Status
478 1.1 jruoho *
479 1.1 jruoho * DESCRIPTION: Translate a Type ID into a name string (Debug only)
480 1.1 jruoho *
481 1.1 jruoho ******************************************************************************/
482 1.1 jruoho
483 1.1 jruoho /*
484 1.1 jruoho * Elements of AcpiGbl_NsTypeNames below must match
485 1.1 jruoho * one-to-one with values of ACPI_OBJECT_TYPE
486 1.1 jruoho *
487 1.1 jruoho * The type ACPI_TYPE_ANY (Untyped) is used as a "don't care" when searching;
488 1.1 jruoho * when stored in a table it really means that we have thus far seen no
489 1.1 jruoho * evidence to indicate what type is actually going to be stored for this entry.
490 1.1 jruoho */
491 1.1 jruoho static const char AcpiGbl_BadType[] = "UNDEFINED";
492 1.1 jruoho
493 1.1 jruoho /* Printable names of the ACPI object types */
494 1.1 jruoho
495 1.1 jruoho static const char *AcpiGbl_NsTypeNames[] =
496 1.1 jruoho {
497 1.1 jruoho /* 00 */ "Untyped",
498 1.1 jruoho /* 01 */ "Integer",
499 1.1 jruoho /* 02 */ "String",
500 1.1 jruoho /* 03 */ "Buffer",
501 1.1 jruoho /* 04 */ "Package",
502 1.1 jruoho /* 05 */ "FieldUnit",
503 1.1 jruoho /* 06 */ "Device",
504 1.1 jruoho /* 07 */ "Event",
505 1.1 jruoho /* 08 */ "Method",
506 1.1 jruoho /* 09 */ "Mutex",
507 1.1 jruoho /* 10 */ "Region",
508 1.1 jruoho /* 11 */ "Power",
509 1.1 jruoho /* 12 */ "Processor",
510 1.1 jruoho /* 13 */ "Thermal",
511 1.1 jruoho /* 14 */ "BufferField",
512 1.1 jruoho /* 15 */ "DdbHandle",
513 1.1 jruoho /* 16 */ "DebugObject",
514 1.1 jruoho /* 17 */ "RegionField",
515 1.1 jruoho /* 18 */ "BankField",
516 1.1 jruoho /* 19 */ "IndexField",
517 1.1 jruoho /* 20 */ "Reference",
518 1.1 jruoho /* 21 */ "Alias",
519 1.1 jruoho /* 22 */ "MethodAlias",
520 1.1 jruoho /* 23 */ "Notify",
521 1.1 jruoho /* 24 */ "AddrHandler",
522 1.1 jruoho /* 25 */ "ResourceDesc",
523 1.1 jruoho /* 26 */ "ResourceFld",
524 1.1 jruoho /* 27 */ "Scope",
525 1.1 jruoho /* 28 */ "Extra",
526 1.1 jruoho /* 29 */ "Data",
527 1.1 jruoho /* 30 */ "Invalid"
528 1.1 jruoho };
529 1.1 jruoho
530 1.1 jruoho
531 1.1 jruoho char *
532 1.1 jruoho AcpiUtGetTypeName (
533 1.1 jruoho ACPI_OBJECT_TYPE Type)
534 1.1 jruoho {
535 1.1 jruoho
536 1.1 jruoho if (Type > ACPI_TYPE_INVALID)
537 1.1 jruoho {
538 1.1 jruoho return (ACPI_CAST_PTR (char, AcpiGbl_BadType));
539 1.1 jruoho }
540 1.1 jruoho
541 1.1 jruoho return (ACPI_CAST_PTR (char, AcpiGbl_NsTypeNames[Type]));
542 1.1 jruoho }
543 1.1 jruoho
544 1.1 jruoho
545 1.1 jruoho char *
546 1.1 jruoho AcpiUtGetObjectTypeName (
547 1.1 jruoho ACPI_OPERAND_OBJECT *ObjDesc)
548 1.1 jruoho {
549 1.1 jruoho
550 1.1 jruoho if (!ObjDesc)
551 1.1 jruoho {
552 1.1 jruoho return ("[NULL Object Descriptor]");
553 1.1 jruoho }
554 1.1 jruoho
555 1.1 jruoho return (AcpiUtGetTypeName (ObjDesc->Common.Type));
556 1.1 jruoho }
557 1.1 jruoho
558 1.1 jruoho
559 1.1 jruoho /*******************************************************************************
560 1.1 jruoho *
561 1.1 jruoho * FUNCTION: AcpiUtGetNodeName
562 1.1 jruoho *
563 1.1 jruoho * PARAMETERS: Object - A namespace node
564 1.1 jruoho *
565 1.1 jruoho * RETURN: Pointer to a string
566 1.1 jruoho *
567 1.1 jruoho * DESCRIPTION: Validate the node and return the node's ACPI name.
568 1.1 jruoho *
569 1.1 jruoho ******************************************************************************/
570 1.1 jruoho
571 1.1 jruoho char *
572 1.1 jruoho AcpiUtGetNodeName (
573 1.1 jruoho void *Object)
574 1.1 jruoho {
575 1.1 jruoho ACPI_NAMESPACE_NODE *Node = (ACPI_NAMESPACE_NODE *) Object;
576 1.1 jruoho
577 1.1 jruoho
578 1.1 jruoho /* Must return a string of exactly 4 characters == ACPI_NAME_SIZE */
579 1.1 jruoho
580 1.1 jruoho if (!Object)
581 1.1 jruoho {
582 1.1 jruoho return ("NULL");
583 1.1 jruoho }
584 1.1 jruoho
585 1.1 jruoho /* Check for Root node */
586 1.1 jruoho
587 1.1 jruoho if ((Object == ACPI_ROOT_OBJECT) ||
588 1.1 jruoho (Object == AcpiGbl_RootNode))
589 1.1 jruoho {
590 1.1 jruoho return ("\"\\\" ");
591 1.1 jruoho }
592 1.1 jruoho
593 1.1 jruoho /* Descriptor must be a namespace node */
594 1.1 jruoho
595 1.1 jruoho if (ACPI_GET_DESCRIPTOR_TYPE (Node) != ACPI_DESC_TYPE_NAMED)
596 1.1 jruoho {
597 1.1 jruoho return ("####");
598 1.1 jruoho }
599 1.1 jruoho
600 1.1 jruoho /*
601 1.1 jruoho * Ensure name is valid. The name was validated/repaired when the node
602 1.1 jruoho * was created, but make sure it has not been corrupted.
603 1.1 jruoho */
604 1.1 jruoho AcpiUtRepairName (Node->Name.Ascii);
605 1.1 jruoho
606 1.1 jruoho /* Return the name */
607 1.1 jruoho
608 1.1 jruoho return (Node->Name.Ascii);
609 1.1 jruoho }
610 1.1 jruoho
611 1.1 jruoho
612 1.1 jruoho /*******************************************************************************
613 1.1 jruoho *
614 1.1 jruoho * FUNCTION: AcpiUtGetDescriptorName
615 1.1 jruoho *
616 1.1 jruoho * PARAMETERS: Object - An ACPI object
617 1.1 jruoho *
618 1.1 jruoho * RETURN: Pointer to a string
619 1.1 jruoho *
620 1.1 jruoho * DESCRIPTION: Validate object and return the descriptor type
621 1.1 jruoho *
622 1.1 jruoho ******************************************************************************/
623 1.1 jruoho
624 1.1 jruoho /* Printable names of object descriptor types */
625 1.1 jruoho
626 1.1 jruoho static const char *AcpiGbl_DescTypeNames[] =
627 1.1 jruoho {
628 1.1 jruoho /* 00 */ "Not a Descriptor",
629 1.1 jruoho /* 01 */ "Cached",
630 1.1 jruoho /* 02 */ "State-Generic",
631 1.1 jruoho /* 03 */ "State-Update",
632 1.1 jruoho /* 04 */ "State-Package",
633 1.1 jruoho /* 05 */ "State-Control",
634 1.1 jruoho /* 06 */ "State-RootParseScope",
635 1.1 jruoho /* 07 */ "State-ParseScope",
636 1.1 jruoho /* 08 */ "State-WalkScope",
637 1.1 jruoho /* 09 */ "State-Result",
638 1.1 jruoho /* 10 */ "State-Notify",
639 1.1 jruoho /* 11 */ "State-Thread",
640 1.1 jruoho /* 12 */ "Walk",
641 1.1 jruoho /* 13 */ "Parser",
642 1.1 jruoho /* 14 */ "Operand",
643 1.1 jruoho /* 15 */ "Node"
644 1.1 jruoho };
645 1.1 jruoho
646 1.1 jruoho
647 1.1 jruoho char *
648 1.1 jruoho AcpiUtGetDescriptorName (
649 1.1 jruoho void *Object)
650 1.1 jruoho {
651 1.1 jruoho
652 1.1 jruoho if (!Object)
653 1.1 jruoho {
654 1.1 jruoho return ("NULL OBJECT");
655 1.1 jruoho }
656 1.1 jruoho
657 1.1 jruoho if (ACPI_GET_DESCRIPTOR_TYPE (Object) > ACPI_DESC_TYPE_MAX)
658 1.1 jruoho {
659 1.1 jruoho return ("Not a Descriptor");
660 1.1 jruoho }
661 1.1 jruoho
662 1.1 jruoho return (ACPI_CAST_PTR (char,
663 1.1 jruoho AcpiGbl_DescTypeNames[ACPI_GET_DESCRIPTOR_TYPE (Object)]));
664 1.1 jruoho
665 1.1 jruoho }
666 1.1 jruoho
667 1.1 jruoho
668 1.1 jruoho /*******************************************************************************
669 1.1 jruoho *
670 1.1 jruoho * FUNCTION: AcpiUtGetReferenceName
671 1.1 jruoho *
672 1.1 jruoho * PARAMETERS: Object - An ACPI reference object
673 1.1 jruoho *
674 1.1 jruoho * RETURN: Pointer to a string
675 1.1 jruoho *
676 1.1 jruoho * DESCRIPTION: Decode a reference object sub-type to a string.
677 1.1 jruoho *
678 1.1 jruoho ******************************************************************************/
679 1.1 jruoho
680 1.1 jruoho /* Printable names of reference object sub-types */
681 1.1 jruoho
682 1.1 jruoho static const char *AcpiGbl_RefClassNames[] =
683 1.1 jruoho {
684 1.1 jruoho /* 00 */ "Local",
685 1.1 jruoho /* 01 */ "Argument",
686 1.1 jruoho /* 02 */ "RefOf",
687 1.1 jruoho /* 03 */ "Index",
688 1.1 jruoho /* 04 */ "DdbHandle",
689 1.1 jruoho /* 05 */ "Named Object",
690 1.1 jruoho /* 06 */ "Debug"
691 1.1 jruoho };
692 1.1 jruoho
693 1.1 jruoho const char *
694 1.1 jruoho AcpiUtGetReferenceName (
695 1.1 jruoho ACPI_OPERAND_OBJECT *Object)
696 1.1 jruoho {
697 1.1 jruoho
698 1.1 jruoho if (!Object)
699 1.1 jruoho {
700 1.1 jruoho return ("NULL Object");
701 1.1 jruoho }
702 1.1 jruoho
703 1.1 jruoho if (ACPI_GET_DESCRIPTOR_TYPE (Object) != ACPI_DESC_TYPE_OPERAND)
704 1.1 jruoho {
705 1.1 jruoho return ("Not an Operand object");
706 1.1 jruoho }
707 1.1 jruoho
708 1.1 jruoho if (Object->Common.Type != ACPI_TYPE_LOCAL_REFERENCE)
709 1.1 jruoho {
710 1.1 jruoho return ("Not a Reference object");
711 1.1 jruoho }
712 1.1 jruoho
713 1.1 jruoho if (Object->Reference.Class > ACPI_REFCLASS_MAX)
714 1.1 jruoho {
715 1.1 jruoho return ("Unknown Reference class");
716 1.1 jruoho }
717 1.1 jruoho
718 1.1 jruoho return (AcpiGbl_RefClassNames[Object->Reference.Class]);
719 1.1 jruoho }
720 1.1 jruoho
721 1.1 jruoho
722 1.1 jruoho #if defined(ACPI_DEBUG_OUTPUT) || defined(ACPI_DEBUGGER)
723 1.1 jruoho /*
724 1.1 jruoho * Strings and procedures used for debug only
725 1.1 jruoho */
726 1.1 jruoho
727 1.1 jruoho /*******************************************************************************
728 1.1 jruoho *
729 1.1 jruoho * FUNCTION: AcpiUtGetMutexName
730 1.1 jruoho *
731 1.1 jruoho * PARAMETERS: MutexId - The predefined ID for this mutex.
732 1.1 jruoho *
733 1.1 jruoho * RETURN: String containing the name of the mutex. Always returns a valid
734 1.1 jruoho * pointer.
735 1.1 jruoho *
736 1.1 jruoho * DESCRIPTION: Translate a mutex ID into a name string (Debug only)
737 1.1 jruoho *
738 1.1 jruoho ******************************************************************************/
739 1.1 jruoho
740 1.1 jruoho char *
741 1.1 jruoho AcpiUtGetMutexName (
742 1.1 jruoho UINT32 MutexId)
743 1.1 jruoho {
744 1.1 jruoho
745 1.1 jruoho if (MutexId > ACPI_MAX_MUTEX)
746 1.1 jruoho {
747 1.1 jruoho return ("Invalid Mutex ID");
748 1.1 jruoho }
749 1.1 jruoho
750 1.1 jruoho return (AcpiGbl_MutexNames[MutexId]);
751 1.1 jruoho }
752 1.1 jruoho
753 1.1 jruoho
754 1.1 jruoho /*******************************************************************************
755 1.1 jruoho *
756 1.1 jruoho * FUNCTION: AcpiUtGetNotifyName
757 1.1 jruoho *
758 1.1 jruoho * PARAMETERS: NotifyValue - Value from the Notify() request
759 1.1 jruoho *
760 1.1 jruoho * RETURN: String corresponding to the Notify Value.
761 1.1 jruoho *
762 1.1 jruoho * DESCRIPTION: Translate a Notify Value to a notify namestring.
763 1.1 jruoho *
764 1.1 jruoho ******************************************************************************/
765 1.1 jruoho
766 1.1 jruoho /* Names for Notify() values, used for debug output */
767 1.1 jruoho
768 1.1 jruoho static const char *AcpiGbl_NotifyValueNames[] =
769 1.1 jruoho {
770 1.1 jruoho "Bus Check",
771 1.1 jruoho "Device Check",
772 1.1 jruoho "Device Wake",
773 1.1 jruoho "Eject Request",
774 1.1 jruoho "Device Check Light",
775 1.1 jruoho "Frequency Mismatch",
776 1.1 jruoho "Bus Mode Mismatch",
777 1.1 jruoho "Power Fault",
778 1.1 jruoho "Capabilities Check",
779 1.1 jruoho "Device PLD Check",
780 1.1 jruoho "Reserved",
781 1.1 jruoho "System Locality Update"
782 1.1 jruoho };
783 1.1 jruoho
784 1.1 jruoho const char *
785 1.1 jruoho AcpiUtGetNotifyName (
786 1.1 jruoho UINT32 NotifyValue)
787 1.1 jruoho {
788 1.1 jruoho
789 1.1 jruoho if (NotifyValue <= ACPI_NOTIFY_MAX)
790 1.1 jruoho {
791 1.1 jruoho return (AcpiGbl_NotifyValueNames[NotifyValue]);
792 1.1 jruoho }
793 1.1 jruoho else if (NotifyValue <= ACPI_MAX_SYS_NOTIFY)
794 1.1 jruoho {
795 1.1 jruoho return ("Reserved");
796 1.1 jruoho }
797 1.1 jruoho else /* Greater or equal to 0x80 */
798 1.1 jruoho {
799 1.1 jruoho return ("**Device Specific**");
800 1.1 jruoho }
801 1.1 jruoho }
802 1.1 jruoho #endif
803 1.1 jruoho
804 1.1 jruoho
805 1.1 jruoho /*******************************************************************************
806 1.1 jruoho *
807 1.1 jruoho * FUNCTION: AcpiUtValidObjectType
808 1.1 jruoho *
809 1.1 jruoho * PARAMETERS: Type - Object type to be validated
810 1.1 jruoho *
811 1.1 jruoho * RETURN: TRUE if valid object type, FALSE otherwise
812 1.1 jruoho *
813 1.1 jruoho * DESCRIPTION: Validate an object type
814 1.1 jruoho *
815 1.1 jruoho ******************************************************************************/
816 1.1 jruoho
817 1.1 jruoho BOOLEAN
818 1.1 jruoho AcpiUtValidObjectType (
819 1.1 jruoho ACPI_OBJECT_TYPE Type)
820 1.1 jruoho {
821 1.1 jruoho
822 1.1 jruoho if (Type > ACPI_TYPE_LOCAL_MAX)
823 1.1 jruoho {
824 1.1 jruoho /* Note: Assumes all TYPEs are contiguous (external/local) */
825 1.1 jruoho
826 1.1 jruoho return (FALSE);
827 1.1 jruoho }
828 1.1 jruoho
829 1.1 jruoho return (TRUE);
830 1.1 jruoho }
831 1.1 jruoho
832 1.1 jruoho
833 1.1 jruoho /*******************************************************************************
834 1.1 jruoho *
835 1.1 jruoho * FUNCTION: AcpiUtInitGlobals
836 1.1 jruoho *
837 1.1 jruoho * PARAMETERS: None
838 1.1 jruoho *
839 1.1 jruoho * RETURN: Status
840 1.1 jruoho *
841 1.1 jruoho * DESCRIPTION: Init library globals. All globals that require specific
842 1.1 jruoho * initialization should be initialized here!
843 1.1 jruoho *
844 1.1 jruoho ******************************************************************************/
845 1.1 jruoho
846 1.1 jruoho ACPI_STATUS
847 1.1 jruoho AcpiUtInitGlobals (
848 1.1 jruoho void)
849 1.1 jruoho {
850 1.1 jruoho ACPI_STATUS Status;
851 1.1 jruoho UINT32 i;
852 1.1 jruoho
853 1.1 jruoho
854 1.1 jruoho ACPI_FUNCTION_TRACE (UtInitGlobals);
855 1.1 jruoho
856 1.1 jruoho
857 1.1 jruoho /* Create all memory caches */
858 1.1 jruoho
859 1.1 jruoho Status = AcpiUtCreateCaches ();
860 1.1 jruoho if (ACPI_FAILURE (Status))
861 1.1 jruoho {
862 1.1 jruoho return_ACPI_STATUS (Status);
863 1.1 jruoho }
864 1.1 jruoho
865 1.1 jruoho /* Mutex locked flags */
866 1.1 jruoho
867 1.1 jruoho for (i = 0; i < ACPI_NUM_MUTEX; i++)
868 1.1 jruoho {
869 1.1 jruoho AcpiGbl_MutexInfo[i].Mutex = NULL;
870 1.1 jruoho AcpiGbl_MutexInfo[i].ThreadId = ACPI_MUTEX_NOT_ACQUIRED;
871 1.1 jruoho AcpiGbl_MutexInfo[i].UseCount = 0;
872 1.1 jruoho }
873 1.1 jruoho
874 1.1 jruoho for (i = 0; i < ACPI_NUM_OWNERID_MASKS; i++)
875 1.1 jruoho {
876 1.1 jruoho AcpiGbl_OwnerIdMask[i] = 0;
877 1.1 jruoho }
878 1.1 jruoho
879 1.1 jruoho /* Last OwnerID is never valid */
880 1.1 jruoho
881 1.1 jruoho AcpiGbl_OwnerIdMask[ACPI_NUM_OWNERID_MASKS - 1] = 0x80000000;
882 1.1 jruoho
883 1.1 jruoho /* Event counters */
884 1.1 jruoho
885 1.1 jruoho AcpiMethodCount = 0;
886 1.1 jruoho AcpiSciCount = 0;
887 1.1 jruoho AcpiGpeCount = 0;
888 1.1 jruoho
889 1.1 jruoho for (i = 0; i < ACPI_NUM_FIXED_EVENTS; i++)
890 1.1 jruoho {
891 1.1 jruoho AcpiFixedEventCount[i] = 0;
892 1.1 jruoho }
893 1.1 jruoho
894 1.1 jruoho /* GPE support */
895 1.1 jruoho
896 1.1 jruoho AcpiGbl_GpeXruptListHead = NULL;
897 1.1 jruoho AcpiGbl_GpeFadtBlocks[0] = NULL;
898 1.1 jruoho AcpiGbl_GpeFadtBlocks[1] = NULL;
899 1.1 jruoho AcpiCurrentGpeCount = 0;
900 1.1 jruoho
901 1.1 jruoho /* Global handlers */
902 1.1 jruoho
903 1.1 jruoho AcpiGbl_SystemNotify.Handler = NULL;
904 1.1 jruoho AcpiGbl_DeviceNotify.Handler = NULL;
905 1.1 jruoho AcpiGbl_ExceptionHandler = NULL;
906 1.1 jruoho AcpiGbl_InitHandler = NULL;
907 1.1 jruoho AcpiGbl_TableHandler = NULL;
908 1.1 jruoho
909 1.1 jruoho /* Global Lock support */
910 1.1 jruoho
911 1.1 jruoho AcpiGbl_GlobalLockSemaphore = NULL;
912 1.1 jruoho AcpiGbl_GlobalLockMutex = NULL;
913 1.1 jruoho AcpiGbl_GlobalLockAcquired = FALSE;
914 1.1 jruoho AcpiGbl_GlobalLockHandle = 0;
915 1.1 jruoho AcpiGbl_GlobalLockPresent = FALSE;
916 1.1 jruoho
917 1.1 jruoho /* Miscellaneous variables */
918 1.1 jruoho
919 1.1 jruoho AcpiGbl_DSDT = NULL;
920 1.1 jruoho AcpiGbl_CmSingleStep = FALSE;
921 1.1 jruoho AcpiGbl_DbTerminateThreads = FALSE;
922 1.1 jruoho AcpiGbl_Shutdown = FALSE;
923 1.1 jruoho AcpiGbl_NsLookupCount = 0;
924 1.1 jruoho AcpiGbl_PsFindCount = 0;
925 1.1 jruoho AcpiGbl_AcpiHardwarePresent = TRUE;
926 1.1 jruoho AcpiGbl_LastOwnerIdIndex = 0;
927 1.1 jruoho AcpiGbl_NextOwnerIdOffset = 0;
928 1.1 jruoho AcpiGbl_TraceMethodName = 0;
929 1.1 jruoho AcpiGbl_TraceDbgLevel = 0;
930 1.1 jruoho AcpiGbl_TraceDbgLayer = 0;
931 1.1 jruoho AcpiGbl_DebuggerConfiguration = DEBUGGER_THREADING;
932 1.1 jruoho AcpiGbl_DbOutputFlags = ACPI_DB_CONSOLE_OUTPUT;
933 1.1 jruoho AcpiGbl_OsiData = 0;
934 1.1 jruoho
935 1.1 jruoho /* Hardware oriented */
936 1.1 jruoho
937 1.1 jruoho AcpiGbl_EventsInitialized = FALSE;
938 1.1 jruoho AcpiGbl_SystemAwakeAndRunning = TRUE;
939 1.1 jruoho
940 1.1 jruoho /* Namespace */
941 1.1 jruoho
942 1.1 jruoho AcpiGbl_ModuleCodeList = NULL;
943 1.1 jruoho AcpiGbl_RootNode = NULL;
944 1.1 jruoho AcpiGbl_RootNodeStruct.Name.Integer = ACPI_ROOT_NAME;
945 1.1 jruoho AcpiGbl_RootNodeStruct.DescriptorType = ACPI_DESC_TYPE_NAMED;
946 1.1 jruoho AcpiGbl_RootNodeStruct.Type = ACPI_TYPE_DEVICE;
947 1.1 jruoho AcpiGbl_RootNodeStruct.Parent = NULL;
948 1.1 jruoho AcpiGbl_RootNodeStruct.Child = NULL;
949 1.1 jruoho AcpiGbl_RootNodeStruct.Peer = NULL;
950 1.1 jruoho AcpiGbl_RootNodeStruct.Object = NULL;
951 1.1 jruoho
952 1.1 jruoho
953 1.1 jruoho #ifdef ACPI_DISASSEMBLER
954 1.1 jruoho AcpiGbl_ExternalList = NULL;
955 1.1 jruoho #endif
956 1.1 jruoho
957 1.1 jruoho #ifdef ACPI_DEBUG_OUTPUT
958 1.1 jruoho AcpiGbl_LowestStackPointer = ACPI_CAST_PTR (ACPI_SIZE, ACPI_SIZE_MAX);
959 1.1 jruoho #endif
960 1.1 jruoho
961 1.1 jruoho #ifdef ACPI_DBG_TRACK_ALLOCATIONS
962 1.1 jruoho AcpiGbl_DisplayFinalMemStats = FALSE;
963 1.1 jruoho AcpiGbl_DisableMemTracking = FALSE;
964 1.1 jruoho #endif
965 1.1 jruoho
966 1.1 jruoho return_ACPI_STATUS (AE_OK);
967 1.1 jruoho }
968 1.1 jruoho
969 1.1 jruoho /* Public globals */
970 1.1 jruoho
971 1.1 jruoho ACPI_EXPORT_SYMBOL (AcpiGbl_FADT)
972 1.1 jruoho ACPI_EXPORT_SYMBOL (AcpiDbgLevel)
973 1.1 jruoho ACPI_EXPORT_SYMBOL (AcpiDbgLayer)
974 1.1 jruoho ACPI_EXPORT_SYMBOL (AcpiGpeCount)
975 1.1 jruoho ACPI_EXPORT_SYMBOL (AcpiCurrentGpeCount)
976 1.1 jruoho
977 1.1 jruoho
978