Home | History | Annotate | Line # | Download | only in utilities
utglobal.c revision 1.3.20.1
      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.3.20.1     tls  * Copyright (C) 2000 - 2013, 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.1  jruoho #define __UTGLOBAL_C__
     45  1.3.20.1     tls #define EXPORT_ACPI_INTERFACES
     46       1.1  jruoho #define DEFINE_ACPI_GLOBALS
     47       1.1  jruoho 
     48       1.1  jruoho #include "acpi.h"
     49       1.1  jruoho #include "accommon.h"
     50       1.1  jruoho 
     51       1.1  jruoho #define _COMPONENT          ACPI_UTILITIES
     52       1.1  jruoho         ACPI_MODULE_NAME    ("utglobal")
     53       1.1  jruoho 
     54       1.1  jruoho 
     55       1.1  jruoho /*******************************************************************************
     56       1.1  jruoho  *
     57       1.1  jruoho  * Static global variable initialization.
     58       1.1  jruoho  *
     59       1.1  jruoho  ******************************************************************************/
     60       1.1  jruoho 
     61       1.1  jruoho /*
     62       1.1  jruoho  * We want the debug switches statically initialized so they
     63       1.1  jruoho  * are already set when the debugger is entered.
     64       1.1  jruoho  */
     65       1.1  jruoho 
     66       1.1  jruoho /* Debug switch - level and trace mask */
     67       1.1  jruoho 
     68       1.1  jruoho #ifdef ACPI_DEBUG_OUTPUT
     69       1.1  jruoho UINT32                      AcpiDbgLevel = ACPI_DEBUG_DEFAULT;
     70       1.1  jruoho #else
     71       1.1  jruoho UINT32                      AcpiDbgLevel = ACPI_NORMAL_DEFAULT;
     72       1.1  jruoho #endif
     73       1.1  jruoho 
     74       1.1  jruoho /* Debug switch - layer (component) mask */
     75       1.1  jruoho 
     76       1.1  jruoho UINT32                      AcpiDbgLayer = ACPI_COMPONENT_DEFAULT;
     77       1.1  jruoho UINT32                      AcpiGbl_NestingLevel = 0;
     78       1.1  jruoho 
     79       1.1  jruoho /* Debugger globals */
     80       1.1  jruoho 
     81       1.1  jruoho BOOLEAN                     AcpiGbl_DbTerminateThreads = FALSE;
     82       1.1  jruoho BOOLEAN                     AcpiGbl_AbortMethod = FALSE;
     83       1.1  jruoho BOOLEAN                     AcpiGbl_MethodExecuting = FALSE;
     84       1.1  jruoho 
     85       1.1  jruoho /* System flags */
     86       1.1  jruoho 
     87       1.1  jruoho UINT32                      AcpiGbl_StartupFlags = 0;
     88       1.1  jruoho 
     89       1.1  jruoho /* System starts uninitialized */
     90       1.1  jruoho 
     91       1.1  jruoho BOOLEAN                     AcpiGbl_Shutdown = TRUE;
     92       1.1  jruoho 
     93       1.1  jruoho const char                  *AcpiGbl_SleepStateNames[ACPI_S_STATE_COUNT] =
     94       1.1  jruoho {
     95       1.1  jruoho     "\\_S0_",
     96       1.1  jruoho     "\\_S1_",
     97       1.1  jruoho     "\\_S2_",
     98       1.1  jruoho     "\\_S3_",
     99       1.1  jruoho     "\\_S4_",
    100       1.1  jruoho     "\\_S5_"
    101       1.1  jruoho };
    102       1.1  jruoho 
    103       1.1  jruoho const char                  *AcpiGbl_LowestDstateNames[ACPI_NUM_SxW_METHODS] =
    104       1.1  jruoho {
    105       1.1  jruoho     "_S0W",
    106       1.1  jruoho     "_S1W",
    107       1.1  jruoho     "_S2W",
    108       1.1  jruoho     "_S3W",
    109       1.1  jruoho     "_S4W"
    110       1.1  jruoho };
    111       1.1  jruoho 
    112       1.1  jruoho const char                  *AcpiGbl_HighestDstateNames[ACPI_NUM_SxD_METHODS] =
    113       1.1  jruoho {
    114       1.1  jruoho     "_S1D",
    115       1.1  jruoho     "_S2D",
    116       1.1  jruoho     "_S3D",
    117       1.1  jruoho     "_S4D"
    118       1.1  jruoho };
    119       1.1  jruoho 
    120       1.1  jruoho 
    121       1.1  jruoho /*******************************************************************************
    122       1.1  jruoho  *
    123       1.1  jruoho  * Namespace globals
    124       1.1  jruoho  *
    125       1.1  jruoho  ******************************************************************************/
    126       1.1  jruoho 
    127       1.1  jruoho /*
    128       1.1  jruoho  * Predefined ACPI Names (Built-in to the Interpreter)
    129       1.1  jruoho  *
    130       1.1  jruoho  * NOTES:
    131       1.1  jruoho  * 1) _SB_ is defined to be a device to allow \_SB_._INI to be run
    132       1.1  jruoho  *    during the initialization sequence.
    133       1.1  jruoho  * 2) _TZ_ is defined to be a thermal zone in order to allow ASL code to
    134       1.3  jruoho  *    perform a Notify() operation on it. 09/2010: Changed to type Device.
    135       1.3  jruoho  *    This still allows notifies, but does not confuse host code that
    136       1.3  jruoho  *    searches for valid ThermalZone objects.
    137       1.1  jruoho  */
    138       1.1  jruoho const ACPI_PREDEFINED_NAMES     AcpiGbl_PreDefinedNames[] =
    139       1.1  jruoho {
    140       1.1  jruoho     {"_GPE",    ACPI_TYPE_LOCAL_SCOPE,      NULL},
    141       1.1  jruoho     {"_PR_",    ACPI_TYPE_LOCAL_SCOPE,      NULL},
    142       1.1  jruoho     {"_SB_",    ACPI_TYPE_DEVICE,           NULL},
    143       1.1  jruoho     {"_SI_",    ACPI_TYPE_LOCAL_SCOPE,      NULL},
    144       1.3  jruoho     {"_TZ_",    ACPI_TYPE_DEVICE,           NULL},
    145       1.1  jruoho     {"_REV",    ACPI_TYPE_INTEGER,          (char *) ACPI_CA_SUPPORT_LEVEL},
    146       1.1  jruoho     {"_OS_",    ACPI_TYPE_STRING,           ACPI_OS_NAME},
    147       1.1  jruoho     {"_GL_",    ACPI_TYPE_MUTEX,            (char *) 1},
    148       1.1  jruoho 
    149       1.1  jruoho #if !defined (ACPI_NO_METHOD_EXECUTION) || defined (ACPI_CONSTANT_EVAL_ONLY)
    150       1.1  jruoho     {"_OSI",    ACPI_TYPE_METHOD,           (char *) 1},
    151       1.1  jruoho #endif
    152       1.1  jruoho 
    153       1.1  jruoho     /* Table terminator */
    154       1.1  jruoho 
    155       1.1  jruoho     {NULL,      ACPI_TYPE_ANY,              NULL}
    156       1.1  jruoho };
    157       1.1  jruoho 
    158       1.1  jruoho 
    159  1.3.20.1     tls #if (!ACPI_REDUCED_HARDWARE)
    160       1.1  jruoho /******************************************************************************
    161       1.1  jruoho  *
    162       1.1  jruoho  * Event and Hardware globals
    163       1.1  jruoho  *
    164       1.1  jruoho  ******************************************************************************/
    165       1.1  jruoho 
    166       1.1  jruoho ACPI_BIT_REGISTER_INFO      AcpiGbl_BitRegisterInfo[ACPI_NUM_BITREG] =
    167       1.1  jruoho {
    168       1.1  jruoho     /* Name                                     Parent Register             Register Bit Position                   Register Bit Mask       */
    169       1.1  jruoho 
    170       1.1  jruoho     /* ACPI_BITREG_TIMER_STATUS         */   {ACPI_REGISTER_PM1_STATUS,   ACPI_BITPOSITION_TIMER_STATUS,          ACPI_BITMASK_TIMER_STATUS},
    171       1.1  jruoho     /* ACPI_BITREG_BUS_MASTER_STATUS    */   {ACPI_REGISTER_PM1_STATUS,   ACPI_BITPOSITION_BUS_MASTER_STATUS,     ACPI_BITMASK_BUS_MASTER_STATUS},
    172       1.1  jruoho     /* ACPI_BITREG_GLOBAL_LOCK_STATUS   */   {ACPI_REGISTER_PM1_STATUS,   ACPI_BITPOSITION_GLOBAL_LOCK_STATUS,    ACPI_BITMASK_GLOBAL_LOCK_STATUS},
    173       1.1  jruoho     /* ACPI_BITREG_POWER_BUTTON_STATUS  */   {ACPI_REGISTER_PM1_STATUS,   ACPI_BITPOSITION_POWER_BUTTON_STATUS,   ACPI_BITMASK_POWER_BUTTON_STATUS},
    174       1.1  jruoho     /* ACPI_BITREG_SLEEP_BUTTON_STATUS  */   {ACPI_REGISTER_PM1_STATUS,   ACPI_BITPOSITION_SLEEP_BUTTON_STATUS,   ACPI_BITMASK_SLEEP_BUTTON_STATUS},
    175       1.1  jruoho     /* ACPI_BITREG_RT_CLOCK_STATUS      */   {ACPI_REGISTER_PM1_STATUS,   ACPI_BITPOSITION_RT_CLOCK_STATUS,       ACPI_BITMASK_RT_CLOCK_STATUS},
    176       1.1  jruoho     /* ACPI_BITREG_WAKE_STATUS          */   {ACPI_REGISTER_PM1_STATUS,   ACPI_BITPOSITION_WAKE_STATUS,           ACPI_BITMASK_WAKE_STATUS},
    177       1.1  jruoho     /* ACPI_BITREG_PCIEXP_WAKE_STATUS   */   {ACPI_REGISTER_PM1_STATUS,   ACPI_BITPOSITION_PCIEXP_WAKE_STATUS,    ACPI_BITMASK_PCIEXP_WAKE_STATUS},
    178       1.1  jruoho 
    179       1.1  jruoho     /* ACPI_BITREG_TIMER_ENABLE         */   {ACPI_REGISTER_PM1_ENABLE,   ACPI_BITPOSITION_TIMER_ENABLE,          ACPI_BITMASK_TIMER_ENABLE},
    180       1.1  jruoho     /* ACPI_BITREG_GLOBAL_LOCK_ENABLE   */   {ACPI_REGISTER_PM1_ENABLE,   ACPI_BITPOSITION_GLOBAL_LOCK_ENABLE,    ACPI_BITMASK_GLOBAL_LOCK_ENABLE},
    181       1.1  jruoho     /* ACPI_BITREG_POWER_BUTTON_ENABLE  */   {ACPI_REGISTER_PM1_ENABLE,   ACPI_BITPOSITION_POWER_BUTTON_ENABLE,   ACPI_BITMASK_POWER_BUTTON_ENABLE},
    182       1.1  jruoho     /* ACPI_BITREG_SLEEP_BUTTON_ENABLE  */   {ACPI_REGISTER_PM1_ENABLE,   ACPI_BITPOSITION_SLEEP_BUTTON_ENABLE,   ACPI_BITMASK_SLEEP_BUTTON_ENABLE},
    183       1.1  jruoho     /* ACPI_BITREG_RT_CLOCK_ENABLE      */   {ACPI_REGISTER_PM1_ENABLE,   ACPI_BITPOSITION_RT_CLOCK_ENABLE,       ACPI_BITMASK_RT_CLOCK_ENABLE},
    184       1.1  jruoho     /* ACPI_BITREG_PCIEXP_WAKE_DISABLE  */   {ACPI_REGISTER_PM1_ENABLE,   ACPI_BITPOSITION_PCIEXP_WAKE_DISABLE,   ACPI_BITMASK_PCIEXP_WAKE_DISABLE},
    185       1.1  jruoho 
    186       1.1  jruoho     /* ACPI_BITREG_SCI_ENABLE           */   {ACPI_REGISTER_PM1_CONTROL,  ACPI_BITPOSITION_SCI_ENABLE,            ACPI_BITMASK_SCI_ENABLE},
    187       1.1  jruoho     /* ACPI_BITREG_BUS_MASTER_RLD       */   {ACPI_REGISTER_PM1_CONTROL,  ACPI_BITPOSITION_BUS_MASTER_RLD,        ACPI_BITMASK_BUS_MASTER_RLD},
    188       1.1  jruoho     /* ACPI_BITREG_GLOBAL_LOCK_RELEASE  */   {ACPI_REGISTER_PM1_CONTROL,  ACPI_BITPOSITION_GLOBAL_LOCK_RELEASE,   ACPI_BITMASK_GLOBAL_LOCK_RELEASE},
    189       1.1  jruoho     /* ACPI_BITREG_SLEEP_TYPE           */   {ACPI_REGISTER_PM1_CONTROL,  ACPI_BITPOSITION_SLEEP_TYPE,            ACPI_BITMASK_SLEEP_TYPE},
    190       1.1  jruoho     /* ACPI_BITREG_SLEEP_ENABLE         */   {ACPI_REGISTER_PM1_CONTROL,  ACPI_BITPOSITION_SLEEP_ENABLE,          ACPI_BITMASK_SLEEP_ENABLE},
    191       1.1  jruoho 
    192       1.1  jruoho     /* ACPI_BITREG_ARB_DIS              */   {ACPI_REGISTER_PM2_CONTROL,  ACPI_BITPOSITION_ARB_DISABLE,           ACPI_BITMASK_ARB_DISABLE}
    193       1.1  jruoho };
    194       1.1  jruoho 
    195       1.1  jruoho 
    196       1.1  jruoho ACPI_FIXED_EVENT_INFO       AcpiGbl_FixedEventInfo[ACPI_NUM_FIXED_EVENTS] =
    197       1.1  jruoho {
    198       1.1  jruoho     /* ACPI_EVENT_PMTIMER       */  {ACPI_BITREG_TIMER_STATUS,          ACPI_BITREG_TIMER_ENABLE,        ACPI_BITMASK_TIMER_STATUS,          ACPI_BITMASK_TIMER_ENABLE},
    199       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},
    200       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},
    201       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},
    202       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},
    203       1.1  jruoho };
    204  1.3.20.1     tls #endif /* !ACPI_REDUCED_HARDWARE */
    205       1.1  jruoho 
    206       1.1  jruoho /*******************************************************************************
    207       1.1  jruoho  *
    208       1.1  jruoho  * FUNCTION:    AcpiUtInitGlobals
    209       1.1  jruoho  *
    210       1.1  jruoho  * PARAMETERS:  None
    211       1.1  jruoho  *
    212       1.1  jruoho  * RETURN:      Status
    213       1.1  jruoho  *
    214  1.3.20.1     tls  * DESCRIPTION: Initialize ACPICA globals. All globals that require specific
    215  1.3.20.1     tls  *              initialization should be initialized here. This allows for
    216  1.3.20.1     tls  *              a warm restart.
    217       1.1  jruoho  *
    218       1.1  jruoho  ******************************************************************************/
    219       1.1  jruoho 
    220       1.1  jruoho ACPI_STATUS
    221       1.1  jruoho AcpiUtInitGlobals (
    222       1.1  jruoho     void)
    223       1.1  jruoho {
    224       1.1  jruoho     ACPI_STATUS             Status;
    225       1.1  jruoho     UINT32                  i;
    226       1.1  jruoho 
    227       1.1  jruoho 
    228       1.1  jruoho     ACPI_FUNCTION_TRACE (UtInitGlobals);
    229       1.1  jruoho 
    230       1.1  jruoho 
    231       1.1  jruoho     /* Create all memory caches */
    232       1.1  jruoho 
    233       1.1  jruoho     Status = AcpiUtCreateCaches ();
    234       1.1  jruoho     if (ACPI_FAILURE (Status))
    235       1.1  jruoho     {
    236       1.1  jruoho         return_ACPI_STATUS (Status);
    237       1.1  jruoho     }
    238       1.1  jruoho 
    239  1.3.20.1     tls     /* Address Range lists */
    240  1.3.20.1     tls 
    241  1.3.20.1     tls     for (i = 0; i < ACPI_ADDRESS_RANGE_MAX; i++)
    242  1.3.20.1     tls     {
    243  1.3.20.1     tls         AcpiGbl_AddressRangeList[i] = NULL;
    244  1.3.20.1     tls     }
    245  1.3.20.1     tls 
    246       1.1  jruoho     /* Mutex locked flags */
    247       1.1  jruoho 
    248       1.1  jruoho     for (i = 0; i < ACPI_NUM_MUTEX; i++)
    249       1.1  jruoho     {
    250       1.1  jruoho         AcpiGbl_MutexInfo[i].Mutex          = NULL;
    251       1.1  jruoho         AcpiGbl_MutexInfo[i].ThreadId       = ACPI_MUTEX_NOT_ACQUIRED;
    252       1.1  jruoho         AcpiGbl_MutexInfo[i].UseCount       = 0;
    253       1.1  jruoho     }
    254       1.1  jruoho 
    255       1.1  jruoho     for (i = 0; i < ACPI_NUM_OWNERID_MASKS; i++)
    256       1.1  jruoho     {
    257       1.1  jruoho         AcpiGbl_OwnerIdMask[i]              = 0;
    258       1.1  jruoho     }
    259       1.1  jruoho 
    260       1.1  jruoho     /* Last OwnerID is never valid */
    261       1.1  jruoho 
    262       1.1  jruoho     AcpiGbl_OwnerIdMask[ACPI_NUM_OWNERID_MASKS - 1] = 0x80000000;
    263       1.1  jruoho 
    264       1.1  jruoho     /* Event counters */
    265       1.1  jruoho 
    266       1.1  jruoho     AcpiMethodCount                     = 0;
    267       1.1  jruoho     AcpiSciCount                        = 0;
    268       1.1  jruoho     AcpiGpeCount                        = 0;
    269       1.1  jruoho 
    270       1.1  jruoho     for (i = 0; i < ACPI_NUM_FIXED_EVENTS; i++)
    271       1.1  jruoho     {
    272       1.1  jruoho         AcpiFixedEventCount[i]              = 0;
    273       1.1  jruoho     }
    274       1.1  jruoho 
    275  1.3.20.1     tls #if (!ACPI_REDUCED_HARDWARE)
    276  1.3.20.1     tls 
    277  1.3.20.1     tls     /* GPE/SCI support */
    278       1.1  jruoho 
    279       1.3  jruoho     AcpiGbl_AllGpesInitialized          = FALSE;
    280       1.1  jruoho     AcpiGbl_GpeXruptListHead            = NULL;
    281       1.1  jruoho     AcpiGbl_GpeFadtBlocks[0]            = NULL;
    282       1.1  jruoho     AcpiGbl_GpeFadtBlocks[1]            = NULL;
    283       1.1  jruoho     AcpiCurrentGpeCount                 = 0;
    284       1.1  jruoho 
    285  1.3.20.1     tls     AcpiGbl_GlobalEventHandler          = NULL;
    286  1.3.20.1     tls     AcpiGbl_SciHandlerList              = NULL;
    287  1.3.20.1     tls 
    288  1.3.20.1     tls #endif /* !ACPI_REDUCED_HARDWARE */
    289  1.3.20.1     tls 
    290       1.1  jruoho     /* Global handlers */
    291       1.1  jruoho 
    292  1.3.20.1     tls     AcpiGbl_GlobalNotify[0].Handler     = NULL;
    293  1.3.20.1     tls     AcpiGbl_GlobalNotify[1].Handler     = NULL;
    294       1.1  jruoho     AcpiGbl_ExceptionHandler            = NULL;
    295       1.1  jruoho     AcpiGbl_InitHandler                 = NULL;
    296       1.1  jruoho     AcpiGbl_TableHandler                = NULL;
    297       1.3  jruoho     AcpiGbl_InterfaceHandler            = NULL;
    298       1.1  jruoho 
    299       1.1  jruoho     /* Global Lock support */
    300       1.1  jruoho 
    301       1.1  jruoho     AcpiGbl_GlobalLockSemaphore         = NULL;
    302       1.1  jruoho     AcpiGbl_GlobalLockMutex             = NULL;
    303       1.1  jruoho     AcpiGbl_GlobalLockAcquired          = FALSE;
    304       1.1  jruoho     AcpiGbl_GlobalLockHandle            = 0;
    305       1.1  jruoho     AcpiGbl_GlobalLockPresent           = FALSE;
    306       1.1  jruoho 
    307       1.1  jruoho     /* Miscellaneous variables */
    308       1.1  jruoho 
    309       1.1  jruoho     AcpiGbl_DSDT                        = NULL;
    310       1.1  jruoho     AcpiGbl_CmSingleStep                = FALSE;
    311       1.1  jruoho     AcpiGbl_DbTerminateThreads          = FALSE;
    312       1.1  jruoho     AcpiGbl_Shutdown                    = FALSE;
    313       1.1  jruoho     AcpiGbl_NsLookupCount               = 0;
    314       1.1  jruoho     AcpiGbl_PsFindCount                 = 0;
    315       1.1  jruoho     AcpiGbl_AcpiHardwarePresent         = TRUE;
    316       1.1  jruoho     AcpiGbl_LastOwnerIdIndex            = 0;
    317       1.1  jruoho     AcpiGbl_NextOwnerIdOffset           = 0;
    318       1.1  jruoho     AcpiGbl_TraceMethodName             = 0;
    319       1.1  jruoho     AcpiGbl_TraceDbgLevel               = 0;
    320       1.1  jruoho     AcpiGbl_TraceDbgLayer               = 0;
    321       1.1  jruoho     AcpiGbl_DebuggerConfiguration       = DEBUGGER_THREADING;
    322       1.1  jruoho     AcpiGbl_DbOutputFlags               = ACPI_DB_CONSOLE_OUTPUT;
    323       1.3  jruoho     AcpiGbl_OsiMutex                    = NULL;
    324       1.3  jruoho     AcpiGbl_RegMethodsExecuted          = FALSE;
    325       1.1  jruoho 
    326       1.1  jruoho     /* Hardware oriented */
    327       1.1  jruoho 
    328       1.1  jruoho     AcpiGbl_EventsInitialized           = FALSE;
    329       1.1  jruoho     AcpiGbl_SystemAwakeAndRunning       = TRUE;
    330       1.1  jruoho 
    331       1.1  jruoho     /* Namespace */
    332       1.1  jruoho 
    333       1.1  jruoho     AcpiGbl_ModuleCodeList              = NULL;
    334       1.1  jruoho     AcpiGbl_RootNode                    = NULL;
    335       1.1  jruoho     AcpiGbl_RootNodeStruct.Name.Integer = ACPI_ROOT_NAME;
    336       1.1  jruoho     AcpiGbl_RootNodeStruct.DescriptorType = ACPI_DESC_TYPE_NAMED;
    337       1.1  jruoho     AcpiGbl_RootNodeStruct.Type         = ACPI_TYPE_DEVICE;
    338       1.1  jruoho     AcpiGbl_RootNodeStruct.Parent       = NULL;
    339       1.1  jruoho     AcpiGbl_RootNodeStruct.Child        = NULL;
    340       1.1  jruoho     AcpiGbl_RootNodeStruct.Peer         = NULL;
    341       1.1  jruoho     AcpiGbl_RootNodeStruct.Object       = NULL;
    342       1.1  jruoho 
    343       1.1  jruoho 
    344       1.1  jruoho #ifdef ACPI_DISASSEMBLER
    345       1.1  jruoho     AcpiGbl_ExternalList                = NULL;
    346  1.3.20.1     tls     AcpiGbl_NumExternalMethods          = 0;
    347  1.3.20.1     tls     AcpiGbl_ResolvedExternalMethods     = 0;
    348       1.1  jruoho #endif
    349       1.1  jruoho 
    350       1.1  jruoho #ifdef ACPI_DEBUG_OUTPUT
    351       1.1  jruoho     AcpiGbl_LowestStackPointer          = ACPI_CAST_PTR (ACPI_SIZE, ACPI_SIZE_MAX);
    352       1.1  jruoho #endif
    353       1.1  jruoho 
    354       1.1  jruoho #ifdef ACPI_DBG_TRACK_ALLOCATIONS
    355       1.1  jruoho     AcpiGbl_DisplayFinalMemStats        = FALSE;
    356       1.1  jruoho     AcpiGbl_DisableMemTracking          = FALSE;
    357       1.1  jruoho #endif
    358       1.1  jruoho 
    359       1.1  jruoho     return_ACPI_STATUS (AE_OK);
    360       1.1  jruoho }
    361       1.1  jruoho 
    362       1.1  jruoho /* Public globals */
    363       1.1  jruoho 
    364       1.1  jruoho ACPI_EXPORT_SYMBOL (AcpiGbl_FADT)
    365       1.1  jruoho ACPI_EXPORT_SYMBOL (AcpiDbgLevel)
    366       1.1  jruoho ACPI_EXPORT_SYMBOL (AcpiDbgLayer)
    367       1.1  jruoho ACPI_EXPORT_SYMBOL (AcpiGpeCount)
    368       1.1  jruoho ACPI_EXPORT_SYMBOL (AcpiCurrentGpeCount)
    369