Commit | Line | Data |
---|---|---|
1da177e4 LT |
1 | /****************************************************************************** |
2 | * | |
3 | * Module Name: utglobal - Global variables for the ACPI subsystem | |
4 | * | |
5 | *****************************************************************************/ | |
6 | ||
7 | /* | |
c8100dc4 | 8 | * Copyright (C) 2000 - 2016, Intel Corp. |
1da177e4 LT |
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 | ||
839e928f | 44 | #define EXPORT_ACPI_INTERFACES |
1da177e4 LT |
45 | #define DEFINE_ACPI_GLOBALS |
46 | ||
1da177e4 | 47 | #include <acpi/acpi.h> |
e2f7a777 | 48 | #include "accommon.h" |
1da177e4 LT |
49 | |
50 | #define _COMPONENT ACPI_UTILITIES | |
e97d6bf1 | 51 | ACPI_MODULE_NAME("utglobal") |
1da177e4 | 52 | |
44f6c012 | 53 | /******************************************************************************* |
1da177e4 LT |
54 | * |
55 | * Static global variable initialization. | |
56 | * | |
57 | ******************************************************************************/ | |
3aa0b085 | 58 | /* Various state name strings */ |
4be44fcd | 59 | const char *acpi_gbl_sleep_state_names[ACPI_S_STATE_COUNT] = { |
1da177e4 LT |
60 | "\\_S0_", |
61 | "\\_S1_", | |
62 | "\\_S2_", | |
63 | "\\_S3_", | |
64 | "\\_S4_", | |
65 | "\\_S5_" | |
66 | }; | |
67 | ||
15b8dd53 BM |
68 | const char *acpi_gbl_lowest_dstate_names[ACPI_NUM_sx_w_METHODS] = { |
69 | "_S0W", | |
70 | "_S1W", | |
71 | "_S2W", | |
72 | "_S3W", | |
73 | "_S4W" | |
74 | }; | |
75 | ||
76 | const char *acpi_gbl_highest_dstate_names[ACPI_NUM_sx_d_METHODS] = { | |
1da177e4 LT |
77 | "_S1D", |
78 | "_S2D", | |
79 | "_S3D", | |
80 | "_S4D" | |
81 | }; | |
82 | ||
0dfaaa3d BM |
83 | /* Hex-to-ascii */ |
84 | ||
85 | const char acpi_gbl_lower_hex_digits[] = "0123456789abcdef"; | |
86 | const char acpi_gbl_upper_hex_digits[] = "0123456789ABCDEF"; | |
87 | ||
84fb2c97 BM |
88 | /******************************************************************************* |
89 | * | |
90 | * Namespace globals | |
91 | * | |
92 | ******************************************************************************/ | |
1da177e4 LT |
93 | /* |
94 | * Predefined ACPI Names (Built-in to the Interpreter) | |
95 | * | |
96 | * NOTES: | |
97 | * 1) _SB_ is defined to be a device to allow \_SB_._INI to be run | |
98 | * during the initialization sequence. | |
99 | * 2) _TZ_ is defined to be a thermal zone in order to allow ASL code to | |
81256669 BM |
100 | * perform a Notify() operation on it. 09/2010: Changed to type Device. |
101 | * This still allows notifies, but does not confuse host code that | |
102 | * searches for valid thermal_zone objects. | |
1da177e4 | 103 | */ |
0897831b BM |
104 | const struct acpi_predefined_names acpi_gbl_pre_defined_names[] = { |
105 | {"_GPE", ACPI_TYPE_LOCAL_SCOPE, NULL}, | |
106 | {"_PR_", ACPI_TYPE_LOCAL_SCOPE, NULL}, | |
107 | {"_SB_", ACPI_TYPE_DEVICE, NULL}, | |
108 | {"_SI_", ACPI_TYPE_LOCAL_SCOPE, NULL}, | |
81256669 | 109 | {"_TZ_", ACPI_TYPE_DEVICE, NULL}, |
ea7d5215 RW |
110 | /* |
111 | * March, 2015: | |
112 | * The _REV object is in the process of being deprecated, because | |
113 | * other ACPI implementations permanently return 2. Thus, it | |
114 | * has little or no value. Return 2 for compatibility with | |
115 | * other ACPI implementations. | |
116 | */ | |
117 | {"_REV", ACPI_TYPE_INTEGER, ACPI_CAST_PTR(char, 2)}, | |
0897831b | 118 | {"_OS_", ACPI_TYPE_STRING, ACPI_OS_NAME}, |
ea7d5215 | 119 | {"_GL_", ACPI_TYPE_MUTEX, ACPI_CAST_PTR(char, 1)}, |
1da177e4 LT |
120 | |
121 | #if !defined (ACPI_NO_METHOD_EXECUTION) || defined (ACPI_CONSTANT_EVAL_ONLY) | |
ea7d5215 | 122 | {"_OSI", ACPI_TYPE_METHOD, ACPI_CAST_PTR(char, 1)}, |
1da177e4 | 123 | #endif |
1da177e4 | 124 | |
44f6c012 RM |
125 | /* Table terminator */ |
126 | ||
0897831b | 127 | {NULL, ACPI_TYPE_ANY, NULL} |
44f6c012 | 128 | }; |
1da177e4 | 129 | |
33620c54 | 130 | #if (!ACPI_REDUCED_HARDWARE) |
1da177e4 LT |
131 | /****************************************************************************** |
132 | * | |
133 | * Event and Hardware globals | |
134 | * | |
135 | ******************************************************************************/ | |
136 | ||
4be44fcd | 137 | struct acpi_bit_register_info acpi_gbl_bit_register_info[ACPI_NUM_BITREG] = { |
1da177e4 LT |
138 | /* Name Parent Register Register Bit Position Register Bit Mask */ |
139 | ||
4be44fcd LB |
140 | /* ACPI_BITREG_TIMER_STATUS */ {ACPI_REGISTER_PM1_STATUS, |
141 | ACPI_BITPOSITION_TIMER_STATUS, | |
142 | ACPI_BITMASK_TIMER_STATUS}, | |
143 | /* ACPI_BITREG_BUS_MASTER_STATUS */ {ACPI_REGISTER_PM1_STATUS, | |
144 | ACPI_BITPOSITION_BUS_MASTER_STATUS, | |
145 | ACPI_BITMASK_BUS_MASTER_STATUS}, | |
146 | /* ACPI_BITREG_GLOBAL_LOCK_STATUS */ {ACPI_REGISTER_PM1_STATUS, | |
147 | ACPI_BITPOSITION_GLOBAL_LOCK_STATUS, | |
148 | ACPI_BITMASK_GLOBAL_LOCK_STATUS}, | |
149 | /* ACPI_BITREG_POWER_BUTTON_STATUS */ {ACPI_REGISTER_PM1_STATUS, | |
150 | ACPI_BITPOSITION_POWER_BUTTON_STATUS, | |
151 | ACPI_BITMASK_POWER_BUTTON_STATUS}, | |
152 | /* ACPI_BITREG_SLEEP_BUTTON_STATUS */ {ACPI_REGISTER_PM1_STATUS, | |
153 | ACPI_BITPOSITION_SLEEP_BUTTON_STATUS, | |
154 | ACPI_BITMASK_SLEEP_BUTTON_STATUS}, | |
155 | /* ACPI_BITREG_RT_CLOCK_STATUS */ {ACPI_REGISTER_PM1_STATUS, | |
156 | ACPI_BITPOSITION_RT_CLOCK_STATUS, | |
157 | ACPI_BITMASK_RT_CLOCK_STATUS}, | |
158 | /* ACPI_BITREG_WAKE_STATUS */ {ACPI_REGISTER_PM1_STATUS, | |
159 | ACPI_BITPOSITION_WAKE_STATUS, | |
160 | ACPI_BITMASK_WAKE_STATUS}, | |
161 | /* ACPI_BITREG_PCIEXP_WAKE_STATUS */ {ACPI_REGISTER_PM1_STATUS, | |
162 | ACPI_BITPOSITION_PCIEXP_WAKE_STATUS, | |
163 | ACPI_BITMASK_PCIEXP_WAKE_STATUS}, | |
164 | ||
165 | /* ACPI_BITREG_TIMER_ENABLE */ {ACPI_REGISTER_PM1_ENABLE, | |
166 | ACPI_BITPOSITION_TIMER_ENABLE, | |
167 | ACPI_BITMASK_TIMER_ENABLE}, | |
168 | /* ACPI_BITREG_GLOBAL_LOCK_ENABLE */ {ACPI_REGISTER_PM1_ENABLE, | |
169 | ACPI_BITPOSITION_GLOBAL_LOCK_ENABLE, | |
170 | ACPI_BITMASK_GLOBAL_LOCK_ENABLE}, | |
171 | /* ACPI_BITREG_POWER_BUTTON_ENABLE */ {ACPI_REGISTER_PM1_ENABLE, | |
172 | ACPI_BITPOSITION_POWER_BUTTON_ENABLE, | |
173 | ACPI_BITMASK_POWER_BUTTON_ENABLE}, | |
174 | /* ACPI_BITREG_SLEEP_BUTTON_ENABLE */ {ACPI_REGISTER_PM1_ENABLE, | |
175 | ACPI_BITPOSITION_SLEEP_BUTTON_ENABLE, | |
176 | ACPI_BITMASK_SLEEP_BUTTON_ENABLE}, | |
177 | /* ACPI_BITREG_RT_CLOCK_ENABLE */ {ACPI_REGISTER_PM1_ENABLE, | |
178 | ACPI_BITPOSITION_RT_CLOCK_ENABLE, | |
179 | ACPI_BITMASK_RT_CLOCK_ENABLE}, | |
4be44fcd LB |
180 | /* ACPI_BITREG_PCIEXP_WAKE_DISABLE */ {ACPI_REGISTER_PM1_ENABLE, |
181 | ACPI_BITPOSITION_PCIEXP_WAKE_DISABLE, | |
182 | ACPI_BITMASK_PCIEXP_WAKE_DISABLE}, | |
183 | ||
184 | /* ACPI_BITREG_SCI_ENABLE */ {ACPI_REGISTER_PM1_CONTROL, | |
185 | ACPI_BITPOSITION_SCI_ENABLE, | |
186 | ACPI_BITMASK_SCI_ENABLE}, | |
187 | /* ACPI_BITREG_BUS_MASTER_RLD */ {ACPI_REGISTER_PM1_CONTROL, | |
188 | ACPI_BITPOSITION_BUS_MASTER_RLD, | |
189 | ACPI_BITMASK_BUS_MASTER_RLD}, | |
190 | /* ACPI_BITREG_GLOBAL_LOCK_RELEASE */ {ACPI_REGISTER_PM1_CONTROL, | |
191 | ACPI_BITPOSITION_GLOBAL_LOCK_RELEASE, | |
192 | ACPI_BITMASK_GLOBAL_LOCK_RELEASE}, | |
82d79b86 BM |
193 | /* ACPI_BITREG_SLEEP_TYPE */ {ACPI_REGISTER_PM1_CONTROL, |
194 | ACPI_BITPOSITION_SLEEP_TYPE, | |
195 | ACPI_BITMASK_SLEEP_TYPE}, | |
4be44fcd LB |
196 | /* ACPI_BITREG_SLEEP_ENABLE */ {ACPI_REGISTER_PM1_CONTROL, |
197 | ACPI_BITPOSITION_SLEEP_ENABLE, | |
198 | ACPI_BITMASK_SLEEP_ENABLE}, | |
199 | ||
200 | /* ACPI_BITREG_ARB_DIS */ {ACPI_REGISTER_PM2_CONTROL, | |
201 | ACPI_BITPOSITION_ARB_DISABLE, | |
202 | ACPI_BITMASK_ARB_DISABLE} | |
1da177e4 LT |
203 | }; |
204 | ||
4be44fcd LB |
205 | struct acpi_fixed_event_info acpi_gbl_fixed_event_info[ACPI_NUM_FIXED_EVENTS] = { |
206 | /* ACPI_EVENT_PMTIMER */ {ACPI_BITREG_TIMER_STATUS, | |
207 | ACPI_BITREG_TIMER_ENABLE, | |
208 | ACPI_BITMASK_TIMER_STATUS, | |
209 | ACPI_BITMASK_TIMER_ENABLE}, | |
210 | /* ACPI_EVENT_GLOBAL */ {ACPI_BITREG_GLOBAL_LOCK_STATUS, | |
211 | ACPI_BITREG_GLOBAL_LOCK_ENABLE, | |
212 | ACPI_BITMASK_GLOBAL_LOCK_STATUS, | |
213 | ACPI_BITMASK_GLOBAL_LOCK_ENABLE}, | |
214 | /* ACPI_EVENT_POWER_BUTTON */ {ACPI_BITREG_POWER_BUTTON_STATUS, | |
215 | ACPI_BITREG_POWER_BUTTON_ENABLE, | |
216 | ACPI_BITMASK_POWER_BUTTON_STATUS, | |
217 | ACPI_BITMASK_POWER_BUTTON_ENABLE}, | |
218 | /* ACPI_EVENT_SLEEP_BUTTON */ {ACPI_BITREG_SLEEP_BUTTON_STATUS, | |
219 | ACPI_BITREG_SLEEP_BUTTON_ENABLE, | |
220 | ACPI_BITMASK_SLEEP_BUTTON_STATUS, | |
221 | ACPI_BITMASK_SLEEP_BUTTON_ENABLE}, | |
222 | /* ACPI_EVENT_RTC */ {ACPI_BITREG_RT_CLOCK_STATUS, | |
223 | ACPI_BITREG_RT_CLOCK_ENABLE, | |
224 | ACPI_BITMASK_RT_CLOCK_STATUS, | |
225 | ACPI_BITMASK_RT_CLOCK_ENABLE}, | |
1da177e4 | 226 | }; |
33620c54 | 227 | #endif /* !ACPI_REDUCED_HARDWARE */ |
1da177e4 | 228 | |
fe0f8765 BM |
229 | #if defined (ACPI_DISASSEMBLER) || defined (ACPI_ASL_COMPILER) |
230 | ||
231 | /* to_pld macro: compile/disassemble strings */ | |
232 | ||
233 | const char *acpi_gbl_pld_panel_list[] = { | |
234 | "TOP", | |
235 | "BOTTOM", | |
236 | "LEFT", | |
237 | "RIGHT", | |
238 | "FRONT", | |
239 | "BACK", | |
240 | "UNKNOWN", | |
241 | NULL | |
242 | }; | |
243 | ||
244 | const char *acpi_gbl_pld_vertical_position_list[] = { | |
245 | "UPPER", | |
246 | "CENTER", | |
247 | "LOWER", | |
248 | NULL | |
249 | }; | |
250 | ||
251 | const char *acpi_gbl_pld_horizontal_position_list[] = { | |
252 | "LEFT", | |
253 | "CENTER", | |
254 | "RIGHT", | |
255 | NULL | |
256 | }; | |
257 | ||
258 | const char *acpi_gbl_pld_shape_list[] = { | |
259 | "ROUND", | |
260 | "OVAL", | |
261 | "SQUARE", | |
262 | "VERTICALRECTANGLE", | |
263 | "HORIZONTALRECTANGLE", | |
264 | "VERTICALTRAPEZOID", | |
265 | "HORIZONTALTRAPEZOID", | |
266 | "UNKNOWN", | |
267 | "CHAMFERED", | |
268 | NULL | |
269 | }; | |
270 | #endif | |
271 | ||
75c8044f | 272 | /* Public globals */ |
3e8214e5 | 273 | |
e97d6bf1 | 274 | ACPI_EXPORT_SYMBOL(acpi_gbl_FADT) |
8313524a | 275 | ACPI_EXPORT_SYMBOL(acpi_dbg_level) |
1044f1f6 | 276 | ACPI_EXPORT_SYMBOL(acpi_dbg_layer) |
9187a415 | 277 | ACPI_EXPORT_SYMBOL(acpi_gpe_count) |
e97d6bf1 | 278 | ACPI_EXPORT_SYMBOL(acpi_current_gpe_count) |