Back to home page

OSCL-LXR

 
 

    


0001 // SPDX-License-Identifier: BSD-3-Clause OR GPL-2.0
0002 /******************************************************************************
0003  *
0004  * Module Name: utglobal - Global variables for the ACPI subsystem
0005  *
0006  * Copyright (C) 2000 - 2022, Intel Corp.
0007  *
0008  *****************************************************************************/
0009 
0010 #define EXPORT_ACPI_INTERFACES
0011 #define DEFINE_ACPI_GLOBALS
0012 
0013 #include <acpi/acpi.h>
0014 #include "accommon.h"
0015 
0016 #define _COMPONENT          ACPI_UTILITIES
0017 ACPI_MODULE_NAME("utglobal")
0018 
0019 /*******************************************************************************
0020  *
0021  * Static global variable initialization.
0022  *
0023  ******************************************************************************/
0024 /* Various state name strings */
0025 const char *acpi_gbl_sleep_state_names[ACPI_S_STATE_COUNT] = {
0026     "\\_S0_",
0027     "\\_S1_",
0028     "\\_S2_",
0029     "\\_S3_",
0030     "\\_S4_",
0031     "\\_S5_"
0032 };
0033 
0034 const char *acpi_gbl_lowest_dstate_names[ACPI_NUM_sx_w_METHODS] = {
0035     "_S0W",
0036     "_S1W",
0037     "_S2W",
0038     "_S3W",
0039     "_S4W"
0040 };
0041 
0042 const char *acpi_gbl_highest_dstate_names[ACPI_NUM_sx_d_METHODS] = {
0043     "_S1D",
0044     "_S2D",
0045     "_S3D",
0046     "_S4D"
0047 };
0048 
0049 /* Hex-to-ascii */
0050 
0051 const char acpi_gbl_lower_hex_digits[] = "0123456789abcdef";
0052 const char acpi_gbl_upper_hex_digits[] = "0123456789ABCDEF";
0053 
0054 /*******************************************************************************
0055  *
0056  * Namespace globals
0057  *
0058  ******************************************************************************/
0059 /*
0060  * Predefined ACPI Names (Built-in to the Interpreter)
0061  *
0062  * NOTES:
0063  * 1) _SB_ is defined to be a device to allow \_SB_._INI to be run
0064  *    during the initialization sequence.
0065  * 2) _TZ_ is defined to be a thermal zone in order to allow ASL code to
0066  *    perform a Notify() operation on it. 09/2010: Changed to type Device.
0067  *    This still allows notifies, but does not confuse host code that
0068  *    searches for valid thermal_zone objects.
0069  */
0070 const struct acpi_predefined_names acpi_gbl_pre_defined_names[] = {
0071     {"_GPE", ACPI_TYPE_LOCAL_SCOPE, NULL},
0072     {"_PR_", ACPI_TYPE_LOCAL_SCOPE, NULL},
0073     {"_SB_", ACPI_TYPE_DEVICE, NULL},
0074     {"_SI_", ACPI_TYPE_LOCAL_SCOPE, NULL},
0075     {"_TZ_", ACPI_TYPE_DEVICE, NULL},
0076     /*
0077      * March, 2015:
0078      * The _REV object is in the process of being deprecated, because
0079      * other ACPI implementations permanently return 2. Thus, it
0080      * has little or no value. Return 2 for compatibility with
0081      * other ACPI implementations.
0082      */
0083     {"_REV", ACPI_TYPE_INTEGER, ACPI_CAST_PTR(char, 2)},
0084     {"_OS_", ACPI_TYPE_STRING, ACPI_OS_NAME},
0085     {"_GL_", ACPI_TYPE_MUTEX, ACPI_CAST_PTR(char, 1)},
0086     {"_OSI", ACPI_TYPE_METHOD, ACPI_CAST_PTR(char, 1)},
0087 
0088     /* Table terminator */
0089 
0090     {NULL, ACPI_TYPE_ANY, NULL}
0091 };
0092 
0093 #if (!ACPI_REDUCED_HARDWARE)
0094 /******************************************************************************
0095  *
0096  * Event and Hardware globals
0097  *
0098  ******************************************************************************/
0099 
0100 struct acpi_bit_register_info acpi_gbl_bit_register_info[ACPI_NUM_BITREG] = {
0101     /* Name                                     Parent Register             Register Bit Position                   Register Bit Mask       */
0102 
0103     /* ACPI_BITREG_TIMER_STATUS         */ {ACPI_REGISTER_PM1_STATUS,
0104                         ACPI_BITPOSITION_TIMER_STATUS,
0105                         ACPI_BITMASK_TIMER_STATUS},
0106     /* ACPI_BITREG_BUS_MASTER_STATUS    */ {ACPI_REGISTER_PM1_STATUS,
0107                         ACPI_BITPOSITION_BUS_MASTER_STATUS,
0108                         ACPI_BITMASK_BUS_MASTER_STATUS},
0109     /* ACPI_BITREG_GLOBAL_LOCK_STATUS   */ {ACPI_REGISTER_PM1_STATUS,
0110                         ACPI_BITPOSITION_GLOBAL_LOCK_STATUS,
0111                         ACPI_BITMASK_GLOBAL_LOCK_STATUS},
0112     /* ACPI_BITREG_POWER_BUTTON_STATUS  */ {ACPI_REGISTER_PM1_STATUS,
0113                         ACPI_BITPOSITION_POWER_BUTTON_STATUS,
0114                         ACPI_BITMASK_POWER_BUTTON_STATUS},
0115     /* ACPI_BITREG_SLEEP_BUTTON_STATUS  */ {ACPI_REGISTER_PM1_STATUS,
0116                         ACPI_BITPOSITION_SLEEP_BUTTON_STATUS,
0117                         ACPI_BITMASK_SLEEP_BUTTON_STATUS},
0118     /* ACPI_BITREG_RT_CLOCK_STATUS      */ {ACPI_REGISTER_PM1_STATUS,
0119                         ACPI_BITPOSITION_RT_CLOCK_STATUS,
0120                         ACPI_BITMASK_RT_CLOCK_STATUS},
0121     /* ACPI_BITREG_WAKE_STATUS          */ {ACPI_REGISTER_PM1_STATUS,
0122                         ACPI_BITPOSITION_WAKE_STATUS,
0123                         ACPI_BITMASK_WAKE_STATUS},
0124     /* ACPI_BITREG_PCIEXP_WAKE_STATUS   */ {ACPI_REGISTER_PM1_STATUS,
0125                         ACPI_BITPOSITION_PCIEXP_WAKE_STATUS,
0126                         ACPI_BITMASK_PCIEXP_WAKE_STATUS},
0127 
0128     /* ACPI_BITREG_TIMER_ENABLE         */ {ACPI_REGISTER_PM1_ENABLE,
0129                         ACPI_BITPOSITION_TIMER_ENABLE,
0130                         ACPI_BITMASK_TIMER_ENABLE},
0131     /* ACPI_BITREG_GLOBAL_LOCK_ENABLE   */ {ACPI_REGISTER_PM1_ENABLE,
0132                         ACPI_BITPOSITION_GLOBAL_LOCK_ENABLE,
0133                         ACPI_BITMASK_GLOBAL_LOCK_ENABLE},
0134     /* ACPI_BITREG_POWER_BUTTON_ENABLE  */ {ACPI_REGISTER_PM1_ENABLE,
0135                         ACPI_BITPOSITION_POWER_BUTTON_ENABLE,
0136                         ACPI_BITMASK_POWER_BUTTON_ENABLE},
0137     /* ACPI_BITREG_SLEEP_BUTTON_ENABLE  */ {ACPI_REGISTER_PM1_ENABLE,
0138                         ACPI_BITPOSITION_SLEEP_BUTTON_ENABLE,
0139                         ACPI_BITMASK_SLEEP_BUTTON_ENABLE},
0140     /* ACPI_BITREG_RT_CLOCK_ENABLE      */ {ACPI_REGISTER_PM1_ENABLE,
0141                         ACPI_BITPOSITION_RT_CLOCK_ENABLE,
0142                         ACPI_BITMASK_RT_CLOCK_ENABLE},
0143     /* ACPI_BITREG_PCIEXP_WAKE_DISABLE  */ {ACPI_REGISTER_PM1_ENABLE,
0144                         ACPI_BITPOSITION_PCIEXP_WAKE_DISABLE,
0145                         ACPI_BITMASK_PCIEXP_WAKE_DISABLE},
0146 
0147     /* ACPI_BITREG_SCI_ENABLE           */ {ACPI_REGISTER_PM1_CONTROL,
0148                         ACPI_BITPOSITION_SCI_ENABLE,
0149                         ACPI_BITMASK_SCI_ENABLE},
0150     /* ACPI_BITREG_BUS_MASTER_RLD       */ {ACPI_REGISTER_PM1_CONTROL,
0151                         ACPI_BITPOSITION_BUS_MASTER_RLD,
0152                         ACPI_BITMASK_BUS_MASTER_RLD},
0153     /* ACPI_BITREG_GLOBAL_LOCK_RELEASE  */ {ACPI_REGISTER_PM1_CONTROL,
0154                         ACPI_BITPOSITION_GLOBAL_LOCK_RELEASE,
0155                         ACPI_BITMASK_GLOBAL_LOCK_RELEASE},
0156     /* ACPI_BITREG_SLEEP_TYPE           */ {ACPI_REGISTER_PM1_CONTROL,
0157                         ACPI_BITPOSITION_SLEEP_TYPE,
0158                         ACPI_BITMASK_SLEEP_TYPE},
0159     /* ACPI_BITREG_SLEEP_ENABLE         */ {ACPI_REGISTER_PM1_CONTROL,
0160                         ACPI_BITPOSITION_SLEEP_ENABLE,
0161                         ACPI_BITMASK_SLEEP_ENABLE},
0162 
0163     /* ACPI_BITREG_ARB_DIS              */ {ACPI_REGISTER_PM2_CONTROL,
0164                         ACPI_BITPOSITION_ARB_DISABLE,
0165                         ACPI_BITMASK_ARB_DISABLE}
0166 };
0167 
0168 struct acpi_fixed_event_info acpi_gbl_fixed_event_info[ACPI_NUM_FIXED_EVENTS] = {
0169     /* ACPI_EVENT_PMTIMER       */ {ACPI_BITREG_TIMER_STATUS,
0170                     ACPI_BITREG_TIMER_ENABLE,
0171                     ACPI_BITMASK_TIMER_STATUS,
0172                     ACPI_BITMASK_TIMER_ENABLE},
0173     /* ACPI_EVENT_GLOBAL        */ {ACPI_BITREG_GLOBAL_LOCK_STATUS,
0174                     ACPI_BITREG_GLOBAL_LOCK_ENABLE,
0175                     ACPI_BITMASK_GLOBAL_LOCK_STATUS,
0176                     ACPI_BITMASK_GLOBAL_LOCK_ENABLE},
0177     /* ACPI_EVENT_POWER_BUTTON  */ {ACPI_BITREG_POWER_BUTTON_STATUS,
0178                     ACPI_BITREG_POWER_BUTTON_ENABLE,
0179                     ACPI_BITMASK_POWER_BUTTON_STATUS,
0180                     ACPI_BITMASK_POWER_BUTTON_ENABLE},
0181     /* ACPI_EVENT_SLEEP_BUTTON  */ {ACPI_BITREG_SLEEP_BUTTON_STATUS,
0182                     ACPI_BITREG_SLEEP_BUTTON_ENABLE,
0183                     ACPI_BITMASK_SLEEP_BUTTON_STATUS,
0184                     ACPI_BITMASK_SLEEP_BUTTON_ENABLE},
0185     /* ACPI_EVENT_RTC           */ {ACPI_BITREG_RT_CLOCK_STATUS,
0186                     ACPI_BITREG_RT_CLOCK_ENABLE,
0187                     ACPI_BITMASK_RT_CLOCK_STATUS,
0188                     ACPI_BITMASK_RT_CLOCK_ENABLE},
0189 };
0190 #endif              /* !ACPI_REDUCED_HARDWARE */
0191 
0192 #if defined (ACPI_DISASSEMBLER) || defined (ACPI_ASL_COMPILER)
0193 
0194 /* to_pld macro: compile/disassemble strings */
0195 
0196 const char *acpi_gbl_pld_panel_list[] = {
0197     "TOP",
0198     "BOTTOM",
0199     "LEFT",
0200     "RIGHT",
0201     "FRONT",
0202     "BACK",
0203     "UNKNOWN",
0204     NULL
0205 };
0206 
0207 const char *acpi_gbl_pld_vertical_position_list[] = {
0208     "UPPER",
0209     "CENTER",
0210     "LOWER",
0211     NULL
0212 };
0213 
0214 const char *acpi_gbl_pld_horizontal_position_list[] = {
0215     "LEFT",
0216     "CENTER",
0217     "RIGHT",
0218     NULL
0219 };
0220 
0221 const char *acpi_gbl_pld_shape_list[] = {
0222     "ROUND",
0223     "OVAL",
0224     "SQUARE",
0225     "VERTICALRECTANGLE",
0226     "HORIZONTALRECTANGLE",
0227     "VERTICALTRAPEZOID",
0228     "HORIZONTALTRAPEZOID",
0229     "UNKNOWN",
0230     "CHAMFERED",
0231     NULL
0232 };
0233 #endif
0234 
0235 /* Public globals */
0236 
0237 ACPI_EXPORT_SYMBOL(acpi_gbl_FADT)
0238 ACPI_EXPORT_SYMBOL(acpi_dbg_level)
0239 ACPI_EXPORT_SYMBOL(acpi_dbg_layer)
0240 ACPI_EXPORT_SYMBOL(acpi_gpe_count)
0241 ACPI_EXPORT_SYMBOL(acpi_current_gpe_count)