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