utglobal.c revision 1.8 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.3 jruoho /*
8 1.7 christos * Copyright (C) 2000 - 2016, Intel Corp.
9 1.1 jruoho * All rights reserved.
10 1.1 jruoho *
11 1.3 jruoho * Redistribution and use in source and binary forms, with or without
12 1.3 jruoho * modification, are permitted provided that the following conditions
13 1.3 jruoho * are met:
14 1.3 jruoho * 1. Redistributions of source code must retain the above copyright
15 1.3 jruoho * notice, this list of conditions, and the following disclaimer,
16 1.3 jruoho * without modification.
17 1.3 jruoho * 2. Redistributions in binary form must reproduce at minimum a disclaimer
18 1.3 jruoho * substantially similar to the "NO WARRANTY" disclaimer below
19 1.3 jruoho * ("Disclaimer") and any redistribution must be conditioned upon
20 1.3 jruoho * including a substantially similar Disclaimer requirement for further
21 1.3 jruoho * binary redistribution.
22 1.3 jruoho * 3. Neither the names of the above-listed copyright holders nor the names
23 1.3 jruoho * of any contributors may be used to endorse or promote products derived
24 1.3 jruoho * from this software without specific prior written permission.
25 1.3 jruoho *
26 1.3 jruoho * Alternatively, this software may be distributed under the terms of the
27 1.3 jruoho * GNU General Public License ("GPL") version 2 as published by the Free
28 1.3 jruoho * Software Foundation.
29 1.3 jruoho *
30 1.3 jruoho * NO WARRANTY
31 1.3 jruoho * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
32 1.3 jruoho * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
33 1.3 jruoho * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
34 1.3 jruoho * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
35 1.3 jruoho * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
36 1.3 jruoho * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
37 1.3 jruoho * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
38 1.3 jruoho * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
39 1.3 jruoho * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
40 1.3 jruoho * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
41 1.3 jruoho * POSSIBILITY OF SUCH DAMAGES.
42 1.3 jruoho */
43 1.1 jruoho
44 1.4 christos #define EXPORT_ACPI_INTERFACES
45 1.1 jruoho #define DEFINE_ACPI_GLOBALS
46 1.1 jruoho
47 1.1 jruoho #include "acpi.h"
48 1.1 jruoho #include "accommon.h"
49 1.1 jruoho
50 1.1 jruoho #define _COMPONENT ACPI_UTILITIES
51 1.1 jruoho ACPI_MODULE_NAME ("utglobal")
52 1.1 jruoho
53 1.1 jruoho
54 1.1 jruoho /*******************************************************************************
55 1.1 jruoho *
56 1.1 jruoho * Static global variable initialization.
57 1.1 jruoho *
58 1.1 jruoho ******************************************************************************/
59 1.1 jruoho
60 1.5 christos /* Various state name strings */
61 1.1 jruoho
62 1.1 jruoho const char *AcpiGbl_SleepStateNames[ACPI_S_STATE_COUNT] =
63 1.1 jruoho {
64 1.1 jruoho "\\_S0_",
65 1.1 jruoho "\\_S1_",
66 1.1 jruoho "\\_S2_",
67 1.1 jruoho "\\_S3_",
68 1.1 jruoho "\\_S4_",
69 1.1 jruoho "\\_S5_"
70 1.1 jruoho };
71 1.1 jruoho
72 1.1 jruoho const char *AcpiGbl_LowestDstateNames[ACPI_NUM_SxW_METHODS] =
73 1.1 jruoho {
74 1.1 jruoho "_S0W",
75 1.1 jruoho "_S1W",
76 1.1 jruoho "_S2W",
77 1.1 jruoho "_S3W",
78 1.1 jruoho "_S4W"
79 1.1 jruoho };
80 1.1 jruoho
81 1.1 jruoho const char *AcpiGbl_HighestDstateNames[ACPI_NUM_SxD_METHODS] =
82 1.1 jruoho {
83 1.1 jruoho "_S1D",
84 1.1 jruoho "_S2D",
85 1.1 jruoho "_S3D",
86 1.1 jruoho "_S4D"
87 1.1 jruoho };
88 1.1 jruoho
89 1.1 jruoho
90 1.8 christos /* Hex-to-ascii */
91 1.8 christos
92 1.8 christos const char AcpiGbl_LowerHexDigits[] = "0123456789abcdef";
93 1.8 christos const char AcpiGbl_UpperHexDigits[] = "0123456789ABCDEF";
94 1.8 christos
95 1.8 christos
96 1.1 jruoho /*******************************************************************************
97 1.1 jruoho *
98 1.1 jruoho * Namespace globals
99 1.1 jruoho *
100 1.1 jruoho ******************************************************************************/
101 1.1 jruoho
102 1.1 jruoho /*
103 1.1 jruoho * Predefined ACPI Names (Built-in to the Interpreter)
104 1.1 jruoho *
105 1.1 jruoho * NOTES:
106 1.1 jruoho * 1) _SB_ is defined to be a device to allow \_SB_._INI to be run
107 1.1 jruoho * during the initialization sequence.
108 1.1 jruoho * 2) _TZ_ is defined to be a thermal zone in order to allow ASL code to
109 1.3 jruoho * perform a Notify() operation on it. 09/2010: Changed to type Device.
110 1.3 jruoho * This still allows notifies, but does not confuse host code that
111 1.3 jruoho * searches for valid ThermalZone objects.
112 1.1 jruoho */
113 1.1 jruoho const ACPI_PREDEFINED_NAMES AcpiGbl_PreDefinedNames[] =
114 1.1 jruoho {
115 1.1 jruoho {"_GPE", ACPI_TYPE_LOCAL_SCOPE, NULL},
116 1.1 jruoho {"_PR_", ACPI_TYPE_LOCAL_SCOPE, NULL},
117 1.1 jruoho {"_SB_", ACPI_TYPE_DEVICE, NULL},
118 1.1 jruoho {"_SI_", ACPI_TYPE_LOCAL_SCOPE, NULL},
119 1.3 jruoho {"_TZ_", ACPI_TYPE_DEVICE, NULL},
120 1.6 christos /*
121 1.6 christos * March, 2015:
122 1.6 christos * The _REV object is in the process of being deprecated, because
123 1.6 christos * other ACPI implementations permanently return 2. Thus, it
124 1.6 christos * has little or no value. Return 2 for compatibility with
125 1.6 christos * other ACPI implementations.
126 1.6 christos */
127 1.6 christos {"_REV", ACPI_TYPE_INTEGER, ACPI_CAST_PTR (char, 2)},
128 1.1 jruoho {"_OS_", ACPI_TYPE_STRING, ACPI_OS_NAME},
129 1.6 christos {"_GL_", ACPI_TYPE_MUTEX, ACPI_CAST_PTR (char, 1)},
130 1.1 jruoho
131 1.1 jruoho #if !defined (ACPI_NO_METHOD_EXECUTION) || defined (ACPI_CONSTANT_EVAL_ONLY)
132 1.6 christos {"_OSI", ACPI_TYPE_METHOD, ACPI_CAST_PTR (char, 1)},
133 1.1 jruoho #endif
134 1.1 jruoho
135 1.1 jruoho /* Table terminator */
136 1.1 jruoho
137 1.1 jruoho {NULL, ACPI_TYPE_ANY, NULL}
138 1.1 jruoho };
139 1.1 jruoho
140 1.1 jruoho
141 1.4 christos #if (!ACPI_REDUCED_HARDWARE)
142 1.1 jruoho /******************************************************************************
143 1.1 jruoho *
144 1.1 jruoho * Event and Hardware globals
145 1.1 jruoho *
146 1.1 jruoho ******************************************************************************/
147 1.1 jruoho
148 1.1 jruoho ACPI_BIT_REGISTER_INFO AcpiGbl_BitRegisterInfo[ACPI_NUM_BITREG] =
149 1.1 jruoho {
150 1.1 jruoho /* Name Parent Register Register Bit Position Register Bit Mask */
151 1.1 jruoho
152 1.1 jruoho /* ACPI_BITREG_TIMER_STATUS */ {ACPI_REGISTER_PM1_STATUS, ACPI_BITPOSITION_TIMER_STATUS, ACPI_BITMASK_TIMER_STATUS},
153 1.1 jruoho /* ACPI_BITREG_BUS_MASTER_STATUS */ {ACPI_REGISTER_PM1_STATUS, ACPI_BITPOSITION_BUS_MASTER_STATUS, ACPI_BITMASK_BUS_MASTER_STATUS},
154 1.1 jruoho /* ACPI_BITREG_GLOBAL_LOCK_STATUS */ {ACPI_REGISTER_PM1_STATUS, ACPI_BITPOSITION_GLOBAL_LOCK_STATUS, ACPI_BITMASK_GLOBAL_LOCK_STATUS},
155 1.1 jruoho /* ACPI_BITREG_POWER_BUTTON_STATUS */ {ACPI_REGISTER_PM1_STATUS, ACPI_BITPOSITION_POWER_BUTTON_STATUS, ACPI_BITMASK_POWER_BUTTON_STATUS},
156 1.1 jruoho /* ACPI_BITREG_SLEEP_BUTTON_STATUS */ {ACPI_REGISTER_PM1_STATUS, ACPI_BITPOSITION_SLEEP_BUTTON_STATUS, ACPI_BITMASK_SLEEP_BUTTON_STATUS},
157 1.1 jruoho /* ACPI_BITREG_RT_CLOCK_STATUS */ {ACPI_REGISTER_PM1_STATUS, ACPI_BITPOSITION_RT_CLOCK_STATUS, ACPI_BITMASK_RT_CLOCK_STATUS},
158 1.1 jruoho /* ACPI_BITREG_WAKE_STATUS */ {ACPI_REGISTER_PM1_STATUS, ACPI_BITPOSITION_WAKE_STATUS, ACPI_BITMASK_WAKE_STATUS},
159 1.1 jruoho /* ACPI_BITREG_PCIEXP_WAKE_STATUS */ {ACPI_REGISTER_PM1_STATUS, ACPI_BITPOSITION_PCIEXP_WAKE_STATUS, ACPI_BITMASK_PCIEXP_WAKE_STATUS},
160 1.1 jruoho
161 1.1 jruoho /* ACPI_BITREG_TIMER_ENABLE */ {ACPI_REGISTER_PM1_ENABLE, ACPI_BITPOSITION_TIMER_ENABLE, ACPI_BITMASK_TIMER_ENABLE},
162 1.1 jruoho /* ACPI_BITREG_GLOBAL_LOCK_ENABLE */ {ACPI_REGISTER_PM1_ENABLE, ACPI_BITPOSITION_GLOBAL_LOCK_ENABLE, ACPI_BITMASK_GLOBAL_LOCK_ENABLE},
163 1.1 jruoho /* ACPI_BITREG_POWER_BUTTON_ENABLE */ {ACPI_REGISTER_PM1_ENABLE, ACPI_BITPOSITION_POWER_BUTTON_ENABLE, ACPI_BITMASK_POWER_BUTTON_ENABLE},
164 1.1 jruoho /* ACPI_BITREG_SLEEP_BUTTON_ENABLE */ {ACPI_REGISTER_PM1_ENABLE, ACPI_BITPOSITION_SLEEP_BUTTON_ENABLE, ACPI_BITMASK_SLEEP_BUTTON_ENABLE},
165 1.1 jruoho /* ACPI_BITREG_RT_CLOCK_ENABLE */ {ACPI_REGISTER_PM1_ENABLE, ACPI_BITPOSITION_RT_CLOCK_ENABLE, ACPI_BITMASK_RT_CLOCK_ENABLE},
166 1.1 jruoho /* ACPI_BITREG_PCIEXP_WAKE_DISABLE */ {ACPI_REGISTER_PM1_ENABLE, ACPI_BITPOSITION_PCIEXP_WAKE_DISABLE, ACPI_BITMASK_PCIEXP_WAKE_DISABLE},
167 1.1 jruoho
168 1.1 jruoho /* ACPI_BITREG_SCI_ENABLE */ {ACPI_REGISTER_PM1_CONTROL, ACPI_BITPOSITION_SCI_ENABLE, ACPI_BITMASK_SCI_ENABLE},
169 1.1 jruoho /* ACPI_BITREG_BUS_MASTER_RLD */ {ACPI_REGISTER_PM1_CONTROL, ACPI_BITPOSITION_BUS_MASTER_RLD, ACPI_BITMASK_BUS_MASTER_RLD},
170 1.1 jruoho /* ACPI_BITREG_GLOBAL_LOCK_RELEASE */ {ACPI_REGISTER_PM1_CONTROL, ACPI_BITPOSITION_GLOBAL_LOCK_RELEASE, ACPI_BITMASK_GLOBAL_LOCK_RELEASE},
171 1.1 jruoho /* ACPI_BITREG_SLEEP_TYPE */ {ACPI_REGISTER_PM1_CONTROL, ACPI_BITPOSITION_SLEEP_TYPE, ACPI_BITMASK_SLEEP_TYPE},
172 1.1 jruoho /* ACPI_BITREG_SLEEP_ENABLE */ {ACPI_REGISTER_PM1_CONTROL, ACPI_BITPOSITION_SLEEP_ENABLE, ACPI_BITMASK_SLEEP_ENABLE},
173 1.1 jruoho
174 1.1 jruoho /* ACPI_BITREG_ARB_DIS */ {ACPI_REGISTER_PM2_CONTROL, ACPI_BITPOSITION_ARB_DISABLE, ACPI_BITMASK_ARB_DISABLE}
175 1.1 jruoho };
176 1.1 jruoho
177 1.1 jruoho
178 1.1 jruoho ACPI_FIXED_EVENT_INFO AcpiGbl_FixedEventInfo[ACPI_NUM_FIXED_EVENTS] =
179 1.1 jruoho {
180 1.1 jruoho /* ACPI_EVENT_PMTIMER */ {ACPI_BITREG_TIMER_STATUS, ACPI_BITREG_TIMER_ENABLE, ACPI_BITMASK_TIMER_STATUS, ACPI_BITMASK_TIMER_ENABLE},
181 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},
182 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},
183 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},
184 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},
185 1.1 jruoho };
186 1.4 christos #endif /* !ACPI_REDUCED_HARDWARE */
187 1.1 jruoho
188 1.8 christos
189 1.8 christos #if defined (ACPI_DISASSEMBLER) || defined (ACPI_ASL_COMPILER)
190 1.8 christos
191 1.8 christos /* ToPld macro: compile/disassemble strings */
192 1.8 christos
193 1.8 christos const char *AcpiGbl_PldPanelList[] =
194 1.8 christos {
195 1.8 christos "TOP",
196 1.8 christos "BOTTOM",
197 1.8 christos "LEFT",
198 1.8 christos "RIGHT",
199 1.8 christos "FRONT",
200 1.8 christos "BACK",
201 1.8 christos "UNKNOWN",
202 1.8 christos NULL
203 1.8 christos };
204 1.8 christos
205 1.8 christos const char *AcpiGbl_PldVerticalPositionList[] =
206 1.8 christos {
207 1.8 christos "UPPER",
208 1.8 christos "CENTER",
209 1.8 christos "LOWER",
210 1.8 christos NULL
211 1.8 christos };
212 1.8 christos
213 1.8 christos const char *AcpiGbl_PldHorizontalPositionList[] =
214 1.8 christos {
215 1.8 christos "LEFT",
216 1.8 christos "CENTER",
217 1.8 christos "RIGHT",
218 1.8 christos NULL
219 1.8 christos };
220 1.8 christos
221 1.8 christos const char *AcpiGbl_PldShapeList[] =
222 1.8 christos {
223 1.8 christos "ROUND",
224 1.8 christos "OVAL",
225 1.8 christos "SQUARE",
226 1.8 christos "VERTICALRECTANGLE",
227 1.8 christos "HORIZONTALRECTANGLE",
228 1.8 christos "VERTICALTRAPEZOID",
229 1.8 christos "HORIZONTALTRAPEZOID",
230 1.8 christos "UNKNOWN",
231 1.8 christos "CHAMFERED",
232 1.8 christos NULL
233 1.8 christos };
234 1.8 christos #endif
235 1.8 christos
236 1.8 christos
237 1.1 jruoho /* Public globals */
238 1.1 jruoho
239 1.1 jruoho ACPI_EXPORT_SYMBOL (AcpiGbl_FADT)
240 1.1 jruoho ACPI_EXPORT_SYMBOL (AcpiDbgLevel)
241 1.1 jruoho ACPI_EXPORT_SYMBOL (AcpiDbgLayer)
242 1.1 jruoho ACPI_EXPORT_SYMBOL (AcpiGpeCount)
243 1.1 jruoho ACPI_EXPORT_SYMBOL (AcpiCurrentGpeCount)
244