1149703c7Sjruoho /****************************************************************************** 2149703c7Sjruoho * 3149703c7Sjruoho * Module Name: utglobal - Global variables for the ACPI subsystem 4149703c7Sjruoho * 5149703c7Sjruoho *****************************************************************************/ 6149703c7Sjruoho 77af23240Sjruoho /* 8ec12a2faSchristos * Copyright (C) 2000 - 2022, Intel Corp. 9149703c7Sjruoho * All rights reserved. 10149703c7Sjruoho * 117af23240Sjruoho * Redistribution and use in source and binary forms, with or without 127af23240Sjruoho * modification, are permitted provided that the following conditions 137af23240Sjruoho * are met: 147af23240Sjruoho * 1. Redistributions of source code must retain the above copyright 157af23240Sjruoho * notice, this list of conditions, and the following disclaimer, 167af23240Sjruoho * without modification. 177af23240Sjruoho * 2. Redistributions in binary form must reproduce at minimum a disclaimer 187af23240Sjruoho * substantially similar to the "NO WARRANTY" disclaimer below 197af23240Sjruoho * ("Disclaimer") and any redistribution must be conditioned upon 207af23240Sjruoho * including a substantially similar Disclaimer requirement for further 217af23240Sjruoho * binary redistribution. 227af23240Sjruoho * 3. Neither the names of the above-listed copyright holders nor the names 237af23240Sjruoho * of any contributors may be used to endorse or promote products derived 247af23240Sjruoho * from this software without specific prior written permission. 25149703c7Sjruoho * 267af23240Sjruoho * Alternatively, this software may be distributed under the terms of the 277af23240Sjruoho * GNU General Public License ("GPL") version 2 as published by the Free 287af23240Sjruoho * Software Foundation. 29149703c7Sjruoho * 307af23240Sjruoho * NO WARRANTY 317af23240Sjruoho * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 327af23240Sjruoho * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 33adee7055Schristos * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 347af23240Sjruoho * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 357af23240Sjruoho * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 367af23240Sjruoho * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 377af23240Sjruoho * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 387af23240Sjruoho * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 397af23240Sjruoho * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING 407af23240Sjruoho * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 417af23240Sjruoho * POSSIBILITY OF SUCH DAMAGES. 427af23240Sjruoho */ 43149703c7Sjruoho 4433841f6dSchristos #define EXPORT_ACPI_INTERFACES 45149703c7Sjruoho #define DEFINE_ACPI_GLOBALS 46149703c7Sjruoho 47149703c7Sjruoho #include "acpi.h" 48149703c7Sjruoho #include "accommon.h" 49149703c7Sjruoho 50149703c7Sjruoho #define _COMPONENT ACPI_UTILITIES 51149703c7Sjruoho ACPI_MODULE_NAME ("utglobal") 52149703c7Sjruoho 53149703c7Sjruoho 54149703c7Sjruoho /******************************************************************************* 55149703c7Sjruoho * 56149703c7Sjruoho * Static global variable initialization. 57149703c7Sjruoho * 58149703c7Sjruoho ******************************************************************************/ 59149703c7Sjruoho 60ea4d7e80Schristos /* Various state name strings */ 61149703c7Sjruoho 62149703c7Sjruoho const char *AcpiGbl_SleepStateNames[ACPI_S_STATE_COUNT] = 63149703c7Sjruoho { 64149703c7Sjruoho "\\_S0_", 65149703c7Sjruoho "\\_S1_", 66149703c7Sjruoho "\\_S2_", 67149703c7Sjruoho "\\_S3_", 68149703c7Sjruoho "\\_S4_", 69149703c7Sjruoho "\\_S5_" 70149703c7Sjruoho }; 71149703c7Sjruoho 72149703c7Sjruoho const char *AcpiGbl_LowestDstateNames[ACPI_NUM_SxW_METHODS] = 73149703c7Sjruoho { 74149703c7Sjruoho "_S0W", 75149703c7Sjruoho "_S1W", 76149703c7Sjruoho "_S2W", 77149703c7Sjruoho "_S3W", 78149703c7Sjruoho "_S4W" 79149703c7Sjruoho }; 80149703c7Sjruoho 81149703c7Sjruoho const char *AcpiGbl_HighestDstateNames[ACPI_NUM_SxD_METHODS] = 82149703c7Sjruoho { 83149703c7Sjruoho "_S1D", 84149703c7Sjruoho "_S2D", 85149703c7Sjruoho "_S3D", 86149703c7Sjruoho "_S4D" 87149703c7Sjruoho }; 88149703c7Sjruoho 89149703c7Sjruoho 90dc79220aSchristos /* Hex-to-ascii */ 91dc79220aSchristos 92dc79220aSchristos const char AcpiGbl_LowerHexDigits[] = "0123456789abcdef"; 93dc79220aSchristos const char AcpiGbl_UpperHexDigits[] = "0123456789ABCDEF"; 94dc79220aSchristos 95dc79220aSchristos 96149703c7Sjruoho /******************************************************************************* 97149703c7Sjruoho * 98149703c7Sjruoho * Namespace globals 99149703c7Sjruoho * 100149703c7Sjruoho ******************************************************************************/ 101149703c7Sjruoho 102149703c7Sjruoho /* 103149703c7Sjruoho * Predefined ACPI Names (Built-in to the Interpreter) 104149703c7Sjruoho * 105149703c7Sjruoho * NOTES: 106149703c7Sjruoho * 1) _SB_ is defined to be a device to allow \_SB_._INI to be run 107149703c7Sjruoho * during the initialization sequence. 108149703c7Sjruoho * 2) _TZ_ is defined to be a thermal zone in order to allow ASL code to 1097af23240Sjruoho * perform a Notify() operation on it. 09/2010: Changed to type Device. 1107af23240Sjruoho * This still allows notifies, but does not confuse host code that 1117af23240Sjruoho * searches for valid ThermalZone objects. 112149703c7Sjruoho */ 113149703c7Sjruoho const ACPI_PREDEFINED_NAMES AcpiGbl_PreDefinedNames[] = 114149703c7Sjruoho { 115149703c7Sjruoho {"_GPE", ACPI_TYPE_LOCAL_SCOPE, NULL}, 116149703c7Sjruoho {"_PR_", ACPI_TYPE_LOCAL_SCOPE, NULL}, 117149703c7Sjruoho {"_SB_", ACPI_TYPE_DEVICE, NULL}, 118149703c7Sjruoho {"_SI_", ACPI_TYPE_LOCAL_SCOPE, NULL}, 1197af23240Sjruoho {"_TZ_", ACPI_TYPE_DEVICE, NULL}, 120681d005eSchristos /* 121681d005eSchristos * March, 2015: 122681d005eSchristos * The _REV object is in the process of being deprecated, because 123681d005eSchristos * other ACPI implementations permanently return 2. Thus, it 124681d005eSchristos * has little or no value. Return 2 for compatibility with 125681d005eSchristos * other ACPI implementations. 126681d005eSchristos */ 127681d005eSchristos {"_REV", ACPI_TYPE_INTEGER, ACPI_CAST_PTR (char, 2)}, 128149703c7Sjruoho {"_OS_", ACPI_TYPE_STRING, ACPI_OS_NAME}, 129681d005eSchristos {"_GL_", ACPI_TYPE_MUTEX, ACPI_CAST_PTR (char, 1)}, 130681d005eSchristos {"_OSI", ACPI_TYPE_METHOD, ACPI_CAST_PTR (char, 1)}, 131149703c7Sjruoho 132149703c7Sjruoho /* Table terminator */ 133149703c7Sjruoho 134149703c7Sjruoho {NULL, ACPI_TYPE_ANY, NULL} 135149703c7Sjruoho }; 136149703c7Sjruoho 137149703c7Sjruoho 13833841f6dSchristos #if (!ACPI_REDUCED_HARDWARE) 139149703c7Sjruoho /****************************************************************************** 140149703c7Sjruoho * 141149703c7Sjruoho * Event and Hardware globals 142149703c7Sjruoho * 143149703c7Sjruoho ******************************************************************************/ 144149703c7Sjruoho 145149703c7Sjruoho ACPI_BIT_REGISTER_INFO AcpiGbl_BitRegisterInfo[ACPI_NUM_BITREG] = 146149703c7Sjruoho { 147149703c7Sjruoho /* Name Parent Register Register Bit Position Register Bit Mask */ 148149703c7Sjruoho 149149703c7Sjruoho /* ACPI_BITREG_TIMER_STATUS */ {ACPI_REGISTER_PM1_STATUS, ACPI_BITPOSITION_TIMER_STATUS, ACPI_BITMASK_TIMER_STATUS}, 150149703c7Sjruoho /* ACPI_BITREG_BUS_MASTER_STATUS */ {ACPI_REGISTER_PM1_STATUS, ACPI_BITPOSITION_BUS_MASTER_STATUS, ACPI_BITMASK_BUS_MASTER_STATUS}, 151149703c7Sjruoho /* ACPI_BITREG_GLOBAL_LOCK_STATUS */ {ACPI_REGISTER_PM1_STATUS, ACPI_BITPOSITION_GLOBAL_LOCK_STATUS, ACPI_BITMASK_GLOBAL_LOCK_STATUS}, 152149703c7Sjruoho /* ACPI_BITREG_POWER_BUTTON_STATUS */ {ACPI_REGISTER_PM1_STATUS, ACPI_BITPOSITION_POWER_BUTTON_STATUS, ACPI_BITMASK_POWER_BUTTON_STATUS}, 153149703c7Sjruoho /* ACPI_BITREG_SLEEP_BUTTON_STATUS */ {ACPI_REGISTER_PM1_STATUS, ACPI_BITPOSITION_SLEEP_BUTTON_STATUS, ACPI_BITMASK_SLEEP_BUTTON_STATUS}, 154149703c7Sjruoho /* ACPI_BITREG_RT_CLOCK_STATUS */ {ACPI_REGISTER_PM1_STATUS, ACPI_BITPOSITION_RT_CLOCK_STATUS, ACPI_BITMASK_RT_CLOCK_STATUS}, 155149703c7Sjruoho /* ACPI_BITREG_WAKE_STATUS */ {ACPI_REGISTER_PM1_STATUS, ACPI_BITPOSITION_WAKE_STATUS, ACPI_BITMASK_WAKE_STATUS}, 156149703c7Sjruoho /* ACPI_BITREG_PCIEXP_WAKE_STATUS */ {ACPI_REGISTER_PM1_STATUS, ACPI_BITPOSITION_PCIEXP_WAKE_STATUS, ACPI_BITMASK_PCIEXP_WAKE_STATUS}, 157149703c7Sjruoho 158149703c7Sjruoho /* ACPI_BITREG_TIMER_ENABLE */ {ACPI_REGISTER_PM1_ENABLE, ACPI_BITPOSITION_TIMER_ENABLE, ACPI_BITMASK_TIMER_ENABLE}, 159149703c7Sjruoho /* ACPI_BITREG_GLOBAL_LOCK_ENABLE */ {ACPI_REGISTER_PM1_ENABLE, ACPI_BITPOSITION_GLOBAL_LOCK_ENABLE, ACPI_BITMASK_GLOBAL_LOCK_ENABLE}, 160149703c7Sjruoho /* ACPI_BITREG_POWER_BUTTON_ENABLE */ {ACPI_REGISTER_PM1_ENABLE, ACPI_BITPOSITION_POWER_BUTTON_ENABLE, ACPI_BITMASK_POWER_BUTTON_ENABLE}, 161149703c7Sjruoho /* ACPI_BITREG_SLEEP_BUTTON_ENABLE */ {ACPI_REGISTER_PM1_ENABLE, ACPI_BITPOSITION_SLEEP_BUTTON_ENABLE, ACPI_BITMASK_SLEEP_BUTTON_ENABLE}, 162149703c7Sjruoho /* ACPI_BITREG_RT_CLOCK_ENABLE */ {ACPI_REGISTER_PM1_ENABLE, ACPI_BITPOSITION_RT_CLOCK_ENABLE, ACPI_BITMASK_RT_CLOCK_ENABLE}, 163149703c7Sjruoho /* ACPI_BITREG_PCIEXP_WAKE_DISABLE */ {ACPI_REGISTER_PM1_ENABLE, ACPI_BITPOSITION_PCIEXP_WAKE_DISABLE, ACPI_BITMASK_PCIEXP_WAKE_DISABLE}, 164149703c7Sjruoho 165149703c7Sjruoho /* ACPI_BITREG_SCI_ENABLE */ {ACPI_REGISTER_PM1_CONTROL, ACPI_BITPOSITION_SCI_ENABLE, ACPI_BITMASK_SCI_ENABLE}, 166149703c7Sjruoho /* ACPI_BITREG_BUS_MASTER_RLD */ {ACPI_REGISTER_PM1_CONTROL, ACPI_BITPOSITION_BUS_MASTER_RLD, ACPI_BITMASK_BUS_MASTER_RLD}, 167149703c7Sjruoho /* ACPI_BITREG_GLOBAL_LOCK_RELEASE */ {ACPI_REGISTER_PM1_CONTROL, ACPI_BITPOSITION_GLOBAL_LOCK_RELEASE, ACPI_BITMASK_GLOBAL_LOCK_RELEASE}, 168149703c7Sjruoho /* ACPI_BITREG_SLEEP_TYPE */ {ACPI_REGISTER_PM1_CONTROL, ACPI_BITPOSITION_SLEEP_TYPE, ACPI_BITMASK_SLEEP_TYPE}, 169149703c7Sjruoho /* ACPI_BITREG_SLEEP_ENABLE */ {ACPI_REGISTER_PM1_CONTROL, ACPI_BITPOSITION_SLEEP_ENABLE, ACPI_BITMASK_SLEEP_ENABLE}, 170149703c7Sjruoho 171149703c7Sjruoho /* ACPI_BITREG_ARB_DIS */ {ACPI_REGISTER_PM2_CONTROL, ACPI_BITPOSITION_ARB_DISABLE, ACPI_BITMASK_ARB_DISABLE} 172149703c7Sjruoho }; 173149703c7Sjruoho 174149703c7Sjruoho 175149703c7Sjruoho ACPI_FIXED_EVENT_INFO AcpiGbl_FixedEventInfo[ACPI_NUM_FIXED_EVENTS] = 176149703c7Sjruoho { 177149703c7Sjruoho /* ACPI_EVENT_PMTIMER */ {ACPI_BITREG_TIMER_STATUS, ACPI_BITREG_TIMER_ENABLE, ACPI_BITMASK_TIMER_STATUS, ACPI_BITMASK_TIMER_ENABLE}, 178149703c7Sjruoho /* ACPI_EVENT_GLOBAL */ {ACPI_BITREG_GLOBAL_LOCK_STATUS, ACPI_BITREG_GLOBAL_LOCK_ENABLE, ACPI_BITMASK_GLOBAL_LOCK_STATUS, ACPI_BITMASK_GLOBAL_LOCK_ENABLE}, 179149703c7Sjruoho /* ACPI_EVENT_POWER_BUTTON */ {ACPI_BITREG_POWER_BUTTON_STATUS, ACPI_BITREG_POWER_BUTTON_ENABLE, ACPI_BITMASK_POWER_BUTTON_STATUS, ACPI_BITMASK_POWER_BUTTON_ENABLE}, 180149703c7Sjruoho /* ACPI_EVENT_SLEEP_BUTTON */ {ACPI_BITREG_SLEEP_BUTTON_STATUS, ACPI_BITREG_SLEEP_BUTTON_ENABLE, ACPI_BITMASK_SLEEP_BUTTON_STATUS, ACPI_BITMASK_SLEEP_BUTTON_ENABLE}, 181149703c7Sjruoho /* ACPI_EVENT_RTC */ {ACPI_BITREG_RT_CLOCK_STATUS, ACPI_BITREG_RT_CLOCK_ENABLE, ACPI_BITMASK_RT_CLOCK_STATUS, ACPI_BITMASK_RT_CLOCK_ENABLE}, 182*1d995a70Schristos /* ACPI_EVENT_PCIE_WAKE */ {ACPI_BITREG_PCIEXP_WAKE_STATUS, ACPI_BITREG_PCIEXP_WAKE_DISABLE, ACPI_BITMASK_PCIEXP_WAKE_STATUS, ACPI_BITMASK_PCIEXP_WAKE_DISABLE}, 183149703c7Sjruoho }; 18433841f6dSchristos #endif /* !ACPI_REDUCED_HARDWARE */ 185149703c7Sjruoho 186dc79220aSchristos 187dc79220aSchristos #if defined (ACPI_DISASSEMBLER) || defined (ACPI_ASL_COMPILER) 188dc79220aSchristos 189dc79220aSchristos /* ToPld macro: compile/disassemble strings */ 190dc79220aSchristos 191dc79220aSchristos const char *AcpiGbl_PldPanelList[] = 192dc79220aSchristos { 193dc79220aSchristos "TOP", 194dc79220aSchristos "BOTTOM", 195dc79220aSchristos "LEFT", 196dc79220aSchristos "RIGHT", 197dc79220aSchristos "FRONT", 198dc79220aSchristos "BACK", 199dc79220aSchristos "UNKNOWN", 200dc79220aSchristos NULL 201dc79220aSchristos }; 202dc79220aSchristos 203dc79220aSchristos const char *AcpiGbl_PldVerticalPositionList[] = 204dc79220aSchristos { 205dc79220aSchristos "UPPER", 206dc79220aSchristos "CENTER", 207dc79220aSchristos "LOWER", 208dc79220aSchristos NULL 209dc79220aSchristos }; 210dc79220aSchristos 211dc79220aSchristos const char *AcpiGbl_PldHorizontalPositionList[] = 212dc79220aSchristos { 213dc79220aSchristos "LEFT", 214dc79220aSchristos "CENTER", 215dc79220aSchristos "RIGHT", 216dc79220aSchristos NULL 217dc79220aSchristos }; 218dc79220aSchristos 219dc79220aSchristos const char *AcpiGbl_PldShapeList[] = 220dc79220aSchristos { 221dc79220aSchristos "ROUND", 222dc79220aSchristos "OVAL", 223dc79220aSchristos "SQUARE", 224dc79220aSchristos "VERTICALRECTANGLE", 225dc79220aSchristos "HORIZONTALRECTANGLE", 226dc79220aSchristos "VERTICALTRAPEZOID", 227dc79220aSchristos "HORIZONTALTRAPEZOID", 228dc79220aSchristos "UNKNOWN", 229dc79220aSchristos "CHAMFERED", 230dc79220aSchristos NULL 231dc79220aSchristos }; 232dc79220aSchristos #endif 233dc79220aSchristos 234dc79220aSchristos 235149703c7Sjruoho /* Public globals */ 236149703c7Sjruoho 237149703c7Sjruoho ACPI_EXPORT_SYMBOL (AcpiGbl_FADT) 238149703c7Sjruoho ACPI_EXPORT_SYMBOL (AcpiDbgLevel) 239149703c7Sjruoho ACPI_EXPORT_SYMBOL (AcpiDbgLayer) 240149703c7Sjruoho ACPI_EXPORT_SYMBOL (AcpiGpeCount) 241149703c7Sjruoho ACPI_EXPORT_SYMBOL (AcpiCurrentGpeCount) 242