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