utglobal.c revision 1.14 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.14 christos * Copyright (C) 2000 - 2021, 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.14 christos * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY 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.6 christos {"_OSI", ACPI_TYPE_METHOD, ACPI_CAST_PTR (char, 1)},
131 1.1 jruoho
132 1.1 jruoho /* Table terminator */
133 1.1 jruoho
134 1.1 jruoho {NULL, ACPI_TYPE_ANY, NULL}
135 1.1 jruoho };
136 1.1 jruoho
137 1.1 jruoho
138 1.4 christos #if (!ACPI_REDUCED_HARDWARE)
139 1.1 jruoho /******************************************************************************
140 1.1 jruoho *
141 1.1 jruoho * Event and Hardware globals
142 1.1 jruoho *
143 1.1 jruoho ******************************************************************************/
144 1.1 jruoho
145 1.1 jruoho ACPI_BIT_REGISTER_INFO AcpiGbl_BitRegisterInfo[ACPI_NUM_BITREG] =
146 1.1 jruoho {
147 1.1 jruoho /* Name Parent Register Register Bit Position Register Bit Mask */
148 1.1 jruoho
149 1.1 jruoho /* ACPI_BITREG_TIMER_STATUS */ {ACPI_REGISTER_PM1_STATUS, ACPI_BITPOSITION_TIMER_STATUS, ACPI_BITMASK_TIMER_STATUS},
150 1.1 jruoho /* ACPI_BITREG_BUS_MASTER_STATUS */ {ACPI_REGISTER_PM1_STATUS, ACPI_BITPOSITION_BUS_MASTER_STATUS, ACPI_BITMASK_BUS_MASTER_STATUS},
151 1.1 jruoho /* ACPI_BITREG_GLOBAL_LOCK_STATUS */ {ACPI_REGISTER_PM1_STATUS, ACPI_BITPOSITION_GLOBAL_LOCK_STATUS, ACPI_BITMASK_GLOBAL_LOCK_STATUS},
152 1.1 jruoho /* ACPI_BITREG_POWER_BUTTON_STATUS */ {ACPI_REGISTER_PM1_STATUS, ACPI_BITPOSITION_POWER_BUTTON_STATUS, ACPI_BITMASK_POWER_BUTTON_STATUS},
153 1.1 jruoho /* ACPI_BITREG_SLEEP_BUTTON_STATUS */ {ACPI_REGISTER_PM1_STATUS, ACPI_BITPOSITION_SLEEP_BUTTON_STATUS, ACPI_BITMASK_SLEEP_BUTTON_STATUS},
154 1.1 jruoho /* ACPI_BITREG_RT_CLOCK_STATUS */ {ACPI_REGISTER_PM1_STATUS, ACPI_BITPOSITION_RT_CLOCK_STATUS, ACPI_BITMASK_RT_CLOCK_STATUS},
155 1.1 jruoho /* ACPI_BITREG_WAKE_STATUS */ {ACPI_REGISTER_PM1_STATUS, ACPI_BITPOSITION_WAKE_STATUS, ACPI_BITMASK_WAKE_STATUS},
156 1.1 jruoho /* ACPI_BITREG_PCIEXP_WAKE_STATUS */ {ACPI_REGISTER_PM1_STATUS, ACPI_BITPOSITION_PCIEXP_WAKE_STATUS, ACPI_BITMASK_PCIEXP_WAKE_STATUS},
157 1.1 jruoho
158 1.1 jruoho /* ACPI_BITREG_TIMER_ENABLE */ {ACPI_REGISTER_PM1_ENABLE, ACPI_BITPOSITION_TIMER_ENABLE, ACPI_BITMASK_TIMER_ENABLE},
159 1.1 jruoho /* ACPI_BITREG_GLOBAL_LOCK_ENABLE */ {ACPI_REGISTER_PM1_ENABLE, ACPI_BITPOSITION_GLOBAL_LOCK_ENABLE, ACPI_BITMASK_GLOBAL_LOCK_ENABLE},
160 1.1 jruoho /* ACPI_BITREG_POWER_BUTTON_ENABLE */ {ACPI_REGISTER_PM1_ENABLE, ACPI_BITPOSITION_POWER_BUTTON_ENABLE, ACPI_BITMASK_POWER_BUTTON_ENABLE},
161 1.1 jruoho /* ACPI_BITREG_SLEEP_BUTTON_ENABLE */ {ACPI_REGISTER_PM1_ENABLE, ACPI_BITPOSITION_SLEEP_BUTTON_ENABLE, ACPI_BITMASK_SLEEP_BUTTON_ENABLE},
162 1.1 jruoho /* ACPI_BITREG_RT_CLOCK_ENABLE */ {ACPI_REGISTER_PM1_ENABLE, ACPI_BITPOSITION_RT_CLOCK_ENABLE, ACPI_BITMASK_RT_CLOCK_ENABLE},
163 1.1 jruoho /* ACPI_BITREG_PCIEXP_WAKE_DISABLE */ {ACPI_REGISTER_PM1_ENABLE, ACPI_BITPOSITION_PCIEXP_WAKE_DISABLE, ACPI_BITMASK_PCIEXP_WAKE_DISABLE},
164 1.1 jruoho
165 1.1 jruoho /* ACPI_BITREG_SCI_ENABLE */ {ACPI_REGISTER_PM1_CONTROL, ACPI_BITPOSITION_SCI_ENABLE, ACPI_BITMASK_SCI_ENABLE},
166 1.1 jruoho /* ACPI_BITREG_BUS_MASTER_RLD */ {ACPI_REGISTER_PM1_CONTROL, ACPI_BITPOSITION_BUS_MASTER_RLD, ACPI_BITMASK_BUS_MASTER_RLD},
167 1.1 jruoho /* ACPI_BITREG_GLOBAL_LOCK_RELEASE */ {ACPI_REGISTER_PM1_CONTROL, ACPI_BITPOSITION_GLOBAL_LOCK_RELEASE, ACPI_BITMASK_GLOBAL_LOCK_RELEASE},
168 1.1 jruoho /* ACPI_BITREG_SLEEP_TYPE */ {ACPI_REGISTER_PM1_CONTROL, ACPI_BITPOSITION_SLEEP_TYPE, ACPI_BITMASK_SLEEP_TYPE},
169 1.1 jruoho /* ACPI_BITREG_SLEEP_ENABLE */ {ACPI_REGISTER_PM1_CONTROL, ACPI_BITPOSITION_SLEEP_ENABLE, ACPI_BITMASK_SLEEP_ENABLE},
170 1.1 jruoho
171 1.1 jruoho /* ACPI_BITREG_ARB_DIS */ {ACPI_REGISTER_PM2_CONTROL, ACPI_BITPOSITION_ARB_DISABLE, ACPI_BITMASK_ARB_DISABLE}
172 1.1 jruoho };
173 1.1 jruoho
174 1.1 jruoho
175 1.1 jruoho ACPI_FIXED_EVENT_INFO AcpiGbl_FixedEventInfo[ACPI_NUM_FIXED_EVENTS] =
176 1.1 jruoho {
177 1.1 jruoho /* ACPI_EVENT_PMTIMER */ {ACPI_BITREG_TIMER_STATUS, ACPI_BITREG_TIMER_ENABLE, ACPI_BITMASK_TIMER_STATUS, ACPI_BITMASK_TIMER_ENABLE},
178 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},
179 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},
180 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},
181 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},
182 1.1 jruoho };
183 1.4 christos #endif /* !ACPI_REDUCED_HARDWARE */
184 1.1 jruoho
185 1.8 christos
186 1.8 christos #if defined (ACPI_DISASSEMBLER) || defined (ACPI_ASL_COMPILER)
187 1.8 christos
188 1.8 christos /* ToPld macro: compile/disassemble strings */
189 1.8 christos
190 1.8 christos const char *AcpiGbl_PldPanelList[] =
191 1.8 christos {
192 1.8 christos "TOP",
193 1.8 christos "BOTTOM",
194 1.8 christos "LEFT",
195 1.8 christos "RIGHT",
196 1.8 christos "FRONT",
197 1.8 christos "BACK",
198 1.8 christos "UNKNOWN",
199 1.8 christos NULL
200 1.8 christos };
201 1.8 christos
202 1.8 christos const char *AcpiGbl_PldVerticalPositionList[] =
203 1.8 christos {
204 1.8 christos "UPPER",
205 1.8 christos "CENTER",
206 1.8 christos "LOWER",
207 1.8 christos NULL
208 1.8 christos };
209 1.8 christos
210 1.8 christos const char *AcpiGbl_PldHorizontalPositionList[] =
211 1.8 christos {
212 1.8 christos "LEFT",
213 1.8 christos "CENTER",
214 1.8 christos "RIGHT",
215 1.8 christos NULL
216 1.8 christos };
217 1.8 christos
218 1.8 christos const char *AcpiGbl_PldShapeList[] =
219 1.8 christos {
220 1.8 christos "ROUND",
221 1.8 christos "OVAL",
222 1.8 christos "SQUARE",
223 1.8 christos "VERTICALRECTANGLE",
224 1.8 christos "HORIZONTALRECTANGLE",
225 1.8 christos "VERTICALTRAPEZOID",
226 1.8 christos "HORIZONTALTRAPEZOID",
227 1.8 christos "UNKNOWN",
228 1.8 christos "CHAMFERED",
229 1.8 christos NULL
230 1.8 christos };
231 1.8 christos #endif
232 1.8 christos
233 1.8 christos
234 1.1 jruoho /* Public globals */
235 1.1 jruoho
236 1.1 jruoho ACPI_EXPORT_SYMBOL (AcpiGbl_FADT)
237 1.1 jruoho ACPI_EXPORT_SYMBOL (AcpiDbgLevel)
238 1.1 jruoho ACPI_EXPORT_SYMBOL (AcpiDbgLayer)
239 1.1 jruoho ACPI_EXPORT_SYMBOL (AcpiGpeCount)
240 1.1 jruoho ACPI_EXPORT_SYMBOL (AcpiCurrentGpeCount)
241