17c478bd9Sstevel@tonic-gate /****************************************************************************** 27c478bd9Sstevel@tonic-gate * 37c478bd9Sstevel@tonic-gate * Name: acglobal.h - Declarations for global variables 47c478bd9Sstevel@tonic-gate * 57c478bd9Sstevel@tonic-gate *****************************************************************************/ 67c478bd9Sstevel@tonic-gate 726f3cdf0SGordon Ross /* 8*385cc6b4SJerry Jelinek * Copyright (C) 2000 - 2016, Intel Corp. 97c478bd9Sstevel@tonic-gate * All rights reserved. 107c478bd9Sstevel@tonic-gate * 1126f3cdf0SGordon Ross * Redistribution and use in source and binary forms, with or without 1226f3cdf0SGordon Ross * modification, are permitted provided that the following conditions 1326f3cdf0SGordon Ross * are met: 1426f3cdf0SGordon Ross * 1. Redistributions of source code must retain the above copyright 1526f3cdf0SGordon Ross * notice, this list of conditions, and the following disclaimer, 1626f3cdf0SGordon Ross * without modification. 1726f3cdf0SGordon Ross * 2. Redistributions in binary form must reproduce at minimum a disclaimer 1826f3cdf0SGordon Ross * substantially similar to the "NO WARRANTY" disclaimer below 1926f3cdf0SGordon Ross * ("Disclaimer") and any redistribution must be conditioned upon 2026f3cdf0SGordon Ross * including a substantially similar Disclaimer requirement for further 2126f3cdf0SGordon Ross * binary redistribution. 2226f3cdf0SGordon Ross * 3. Neither the names of the above-listed copyright holders nor the names 2326f3cdf0SGordon Ross * of any contributors may be used to endorse or promote products derived 2426f3cdf0SGordon Ross * from this software without specific prior written permission. 257c478bd9Sstevel@tonic-gate * 2626f3cdf0SGordon Ross * Alternatively, this software may be distributed under the terms of the 2726f3cdf0SGordon Ross * GNU General Public License ("GPL") version 2 as published by the Free 2826f3cdf0SGordon Ross * Software Foundation. 297c478bd9Sstevel@tonic-gate * 3026f3cdf0SGordon Ross * NO WARRANTY 3126f3cdf0SGordon Ross * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 3226f3cdf0SGordon Ross * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 3326f3cdf0SGordon Ross * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR 3426f3cdf0SGordon Ross * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 3526f3cdf0SGordon Ross * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 3626f3cdf0SGordon Ross * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 3726f3cdf0SGordon Ross * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 3826f3cdf0SGordon Ross * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 3926f3cdf0SGordon Ross * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING 4026f3cdf0SGordon Ross * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 4126f3cdf0SGordon Ross * POSSIBILITY OF SUCH DAMAGES. 4226f3cdf0SGordon Ross */ 437c478bd9Sstevel@tonic-gate 447c478bd9Sstevel@tonic-gate #ifndef __ACGLOBAL_H__ 457c478bd9Sstevel@tonic-gate #define __ACGLOBAL_H__ 467c478bd9Sstevel@tonic-gate 477c478bd9Sstevel@tonic-gate 487c478bd9Sstevel@tonic-gate /***************************************************************************** 497c478bd9Sstevel@tonic-gate * 50*385cc6b4SJerry Jelinek * Globals related to the ACPI tables 517c478bd9Sstevel@tonic-gate * 527c478bd9Sstevel@tonic-gate ****************************************************************************/ 537c478bd9Sstevel@tonic-gate 54*385cc6b4SJerry Jelinek /* Master list of all ACPI tables that were found in the RSDT/XSDT */ 557c478bd9Sstevel@tonic-gate 56*385cc6b4SJerry Jelinek ACPI_GLOBAL (ACPI_TABLE_LIST, AcpiGbl_RootTableList); 57450d6964Smyers 5826f3cdf0SGordon Ross /* DSDT information. Used to check for DSDT corruption */ 5926f3cdf0SGordon Ross 60*385cc6b4SJerry Jelinek ACPI_GLOBAL (ACPI_TABLE_HEADER *, AcpiGbl_DSDT); 61*385cc6b4SJerry Jelinek ACPI_GLOBAL (ACPI_TABLE_HEADER, AcpiGbl_OriginalDsdtHeader); 62*385cc6b4SJerry Jelinek ACPI_INIT_GLOBAL (UINT32, AcpiGbl_DsdtIndex, ACPI_INVALID_TABLE_INDEX); 63*385cc6b4SJerry Jelinek ACPI_INIT_GLOBAL (UINT32, AcpiGbl_FacsIndex, ACPI_INVALID_TABLE_INDEX); 64*385cc6b4SJerry Jelinek ACPI_INIT_GLOBAL (UINT32, AcpiGbl_XFacsIndex, ACPI_INVALID_TABLE_INDEX); 65*385cc6b4SJerry Jelinek ACPI_INIT_GLOBAL (UINT32, AcpiGbl_FadtIndex, ACPI_INVALID_TABLE_INDEX); 66*385cc6b4SJerry Jelinek 67*385cc6b4SJerry Jelinek #if (!ACPI_REDUCED_HARDWARE) 68*385cc6b4SJerry Jelinek ACPI_GLOBAL (ACPI_TABLE_FACS *, AcpiGbl_FACS); 69*385cc6b4SJerry Jelinek 70*385cc6b4SJerry Jelinek #endif /* !ACPI_REDUCED_HARDWARE */ 71*385cc6b4SJerry Jelinek 72*385cc6b4SJerry Jelinek /* These addresses are calculated from the FADT Event Block addresses */ 73*385cc6b4SJerry Jelinek 74*385cc6b4SJerry Jelinek ACPI_GLOBAL (ACPI_GENERIC_ADDRESS, AcpiGbl_XPm1aStatus); 75*385cc6b4SJerry Jelinek ACPI_GLOBAL (ACPI_GENERIC_ADDRESS, AcpiGbl_XPm1aEnable); 76*385cc6b4SJerry Jelinek 77*385cc6b4SJerry Jelinek ACPI_GLOBAL (ACPI_GENERIC_ADDRESS, AcpiGbl_XPm1bStatus); 78*385cc6b4SJerry Jelinek ACPI_GLOBAL (ACPI_GENERIC_ADDRESS, AcpiGbl_XPm1bEnable); 7926f3cdf0SGordon Ross 807c478bd9Sstevel@tonic-gate /* 81*385cc6b4SJerry Jelinek * Handle both ACPI 1.0 and ACPI 2.0+ Integer widths. The integer width is 82db2bae30SDana Myers * determined by the revision of the DSDT: If the DSDT revision is less than 83db2bae30SDana Myers * 2, use only the lower 32 bits of the internal 64-bit Integer. 847c478bd9Sstevel@tonic-gate */ 85*385cc6b4SJerry Jelinek ACPI_GLOBAL (UINT8, AcpiGbl_IntegerBitWidth); 86*385cc6b4SJerry Jelinek ACPI_GLOBAL (UINT8, AcpiGbl_IntegerByteWidth); 87*385cc6b4SJerry Jelinek ACPI_GLOBAL (UINT8, AcpiGbl_IntegerNybbleWidth); 887c478bd9Sstevel@tonic-gate 8927f7c583Smyers 9027f7c583Smyers /***************************************************************************** 9127f7c583Smyers * 92*385cc6b4SJerry Jelinek * Mutual exclusion within ACPICA subsystem 9327f7c583Smyers * 9427f7c583Smyers ****************************************************************************/ 957c478bd9Sstevel@tonic-gate 967c478bd9Sstevel@tonic-gate /* 977c478bd9Sstevel@tonic-gate * Predefined mutex objects. This array contains the 987c478bd9Sstevel@tonic-gate * actual OS mutex handles, indexed by the local ACPI_MUTEX_HANDLEs. 997c478bd9Sstevel@tonic-gate * (The table maps local handles to the real OS handles) 1007c478bd9Sstevel@tonic-gate */ 101*385cc6b4SJerry Jelinek ACPI_GLOBAL (ACPI_MUTEX_INFO, AcpiGbl_MutexInfo[ACPI_NUM_MUTEX]); 10227f7c583Smyers 10327f7c583Smyers /* 104db2bae30SDana Myers * Global lock mutex is an actual AML mutex object 10526f3cdf0SGordon Ross * Global lock semaphore works in conjunction with the actual global lock 10626f3cdf0SGordon Ross * Global lock spinlock is used for "pending" handshake 10727f7c583Smyers */ 108*385cc6b4SJerry Jelinek ACPI_GLOBAL (ACPI_OPERAND_OBJECT *, AcpiGbl_GlobalLockMutex); 109*385cc6b4SJerry Jelinek ACPI_GLOBAL (ACPI_SEMAPHORE, AcpiGbl_GlobalLockSemaphore); 110*385cc6b4SJerry Jelinek ACPI_GLOBAL (ACPI_SPINLOCK, AcpiGbl_GlobalLockPendingLock); 111*385cc6b4SJerry Jelinek ACPI_GLOBAL (UINT16, AcpiGbl_GlobalLockHandle); 112*385cc6b4SJerry Jelinek ACPI_GLOBAL (BOOLEAN, AcpiGbl_GlobalLockAcquired); 113*385cc6b4SJerry Jelinek ACPI_GLOBAL (BOOLEAN, AcpiGbl_GlobalLockPresent); 114*385cc6b4SJerry Jelinek ACPI_GLOBAL (BOOLEAN, AcpiGbl_GlobalLockPending); 11527f7c583Smyers 11627f7c583Smyers /* 11727f7c583Smyers * Spinlocks are used for interfaces that can be possibly called at 11827f7c583Smyers * interrupt level 11927f7c583Smyers */ 120*385cc6b4SJerry Jelinek ACPI_GLOBAL (ACPI_SPINLOCK, AcpiGbl_GpeLock); /* For GPE data structs and registers */ 121*385cc6b4SJerry Jelinek ACPI_GLOBAL (ACPI_SPINLOCK, AcpiGbl_HardwareLock); /* For ACPI H/W except GPE registers */ 122*385cc6b4SJerry Jelinek ACPI_GLOBAL (ACPI_SPINLOCK, AcpiGbl_ReferenceCountLock); 1237c478bd9Sstevel@tonic-gate 12426f3cdf0SGordon Ross /* Mutex for _OSI support */ 12526f3cdf0SGordon Ross 126*385cc6b4SJerry Jelinek ACPI_GLOBAL (ACPI_MUTEX, AcpiGbl_OsiMutex); 12726f3cdf0SGordon Ross 128aa2aa9a6SDana Myers /* Reader/Writer lock is used for namespace walk and dynamic table unload */ 129aa2aa9a6SDana Myers 130*385cc6b4SJerry Jelinek ACPI_GLOBAL (ACPI_RW_LOCK, AcpiGbl_NamespaceRwLock); 131aa2aa9a6SDana Myers 1327c478bd9Sstevel@tonic-gate 1337c478bd9Sstevel@tonic-gate /***************************************************************************** 1347c478bd9Sstevel@tonic-gate * 1357c478bd9Sstevel@tonic-gate * Miscellaneous globals 1367c478bd9Sstevel@tonic-gate * 1377c478bd9Sstevel@tonic-gate ****************************************************************************/ 1387c478bd9Sstevel@tonic-gate 139450d6964Smyers /* Object caches */ 140450d6964Smyers 141*385cc6b4SJerry Jelinek ACPI_GLOBAL (ACPI_CACHE_T *, AcpiGbl_NamespaceCache); 142*385cc6b4SJerry Jelinek ACPI_GLOBAL (ACPI_CACHE_T *, AcpiGbl_StateCache); 143*385cc6b4SJerry Jelinek ACPI_GLOBAL (ACPI_CACHE_T *, AcpiGbl_PsNodeCache); 144*385cc6b4SJerry Jelinek ACPI_GLOBAL (ACPI_CACHE_T *, AcpiGbl_PsNodeExtCache); 145*385cc6b4SJerry Jelinek ACPI_GLOBAL (ACPI_CACHE_T *, AcpiGbl_OperandCache); 146*385cc6b4SJerry Jelinek 147*385cc6b4SJerry Jelinek /* System */ 148*385cc6b4SJerry Jelinek 149*385cc6b4SJerry Jelinek ACPI_INIT_GLOBAL (UINT32, AcpiGbl_StartupFlags, 0); 150*385cc6b4SJerry Jelinek ACPI_INIT_GLOBAL (BOOLEAN, AcpiGbl_Shutdown, TRUE); 151*385cc6b4SJerry Jelinek ACPI_INIT_GLOBAL (BOOLEAN, AcpiGbl_EarlyInitialization, TRUE); 152450d6964Smyers 153450d6964Smyers /* Global handlers */ 154450d6964Smyers 155*385cc6b4SJerry Jelinek ACPI_GLOBAL (ACPI_GLOBAL_NOTIFY_HANDLER,AcpiGbl_GlobalNotify[2]); 156*385cc6b4SJerry Jelinek ACPI_GLOBAL (ACPI_EXCEPTION_HANDLER, AcpiGbl_ExceptionHandler); 157*385cc6b4SJerry Jelinek ACPI_GLOBAL (ACPI_INIT_HANDLER, AcpiGbl_InitHandler); 158*385cc6b4SJerry Jelinek ACPI_GLOBAL (ACPI_TABLE_HANDLER, AcpiGbl_TableHandler); 159*385cc6b4SJerry Jelinek ACPI_GLOBAL (void *, AcpiGbl_TableHandlerContext); 160*385cc6b4SJerry Jelinek ACPI_GLOBAL (ACPI_INTERFACE_HANDLER, AcpiGbl_InterfaceHandler); 161*385cc6b4SJerry Jelinek ACPI_GLOBAL (ACPI_SCI_HANDLER_INFO *, AcpiGbl_SciHandlerList); 162db2bae30SDana Myers 163db2bae30SDana Myers /* Owner ID support */ 164db2bae30SDana Myers 165*385cc6b4SJerry Jelinek ACPI_GLOBAL (UINT32, AcpiGbl_OwnerIdMask[ACPI_NUM_OWNERID_MASKS]); 166*385cc6b4SJerry Jelinek ACPI_GLOBAL (UINT8, AcpiGbl_LastOwnerIdIndex); 167*385cc6b4SJerry Jelinek ACPI_GLOBAL (UINT8, AcpiGbl_NextOwnerIdOffset); 168db2bae30SDana Myers 16926f3cdf0SGordon Ross /* Initialization sequencing */ 17026f3cdf0SGordon Ross 171*385cc6b4SJerry Jelinek ACPI_INIT_GLOBAL (BOOLEAN, AcpiGbl_NamespaceInitialized, FALSE); 17226f3cdf0SGordon Ross 173450d6964Smyers /* Misc */ 174450d6964Smyers 175*385cc6b4SJerry Jelinek ACPI_GLOBAL (UINT32, AcpiGbl_OriginalMode); 176*385cc6b4SJerry Jelinek ACPI_GLOBAL (UINT32, AcpiGbl_NsLookupCount); 177*385cc6b4SJerry Jelinek ACPI_GLOBAL (UINT32, AcpiGbl_PsFindCount); 178*385cc6b4SJerry Jelinek ACPI_GLOBAL (UINT16, AcpiGbl_Pm1EnableRegisterSave); 179*385cc6b4SJerry Jelinek ACPI_GLOBAL (UINT8, AcpiGbl_DebuggerConfiguration); 180*385cc6b4SJerry Jelinek ACPI_GLOBAL (BOOLEAN, AcpiGbl_StepToNextCall); 181*385cc6b4SJerry Jelinek ACPI_GLOBAL (BOOLEAN, AcpiGbl_AcpiHardwarePresent); 182*385cc6b4SJerry Jelinek ACPI_GLOBAL (BOOLEAN, AcpiGbl_EventsInitialized); 183*385cc6b4SJerry Jelinek ACPI_GLOBAL (ACPI_INTERFACE_INFO *, AcpiGbl_SupportedInterfaces); 184*385cc6b4SJerry Jelinek ACPI_GLOBAL (ACPI_ADDRESS_RANGE *, AcpiGbl_AddressRangeList[ACPI_ADDRESS_RANGE_MAX]); 1857c478bd9Sstevel@tonic-gate 186*385cc6b4SJerry Jelinek /* Other miscellaneous, declared and initialized in utglobal */ 187db2bae30SDana Myers 1887c478bd9Sstevel@tonic-gate extern const char *AcpiGbl_SleepStateNames[ACPI_S_STATE_COUNT]; 18957190917SDana Myers extern const char *AcpiGbl_LowestDstateNames[ACPI_NUM_SxW_METHODS]; 19057190917SDana Myers extern const char *AcpiGbl_HighestDstateNames[ACPI_NUM_SxD_METHODS]; 1917c478bd9Sstevel@tonic-gate extern const char *AcpiGbl_RegionTypes[ACPI_NUM_PREDEFINED_REGIONS]; 192*385cc6b4SJerry Jelinek extern const char AcpiGbl_LowerHexDigits[]; 193*385cc6b4SJerry Jelinek extern const char AcpiGbl_UpperHexDigits[]; 194*385cc6b4SJerry Jelinek extern const ACPI_OPCODE_INFO AcpiGbl_AmlOpInfo[AML_NUM_OPCODES]; 195db2bae30SDana Myers 196db2bae30SDana Myers 197db2bae30SDana Myers #ifdef ACPI_DBG_TRACK_ALLOCATIONS 198db2bae30SDana Myers 199*385cc6b4SJerry Jelinek /* Lists for tracking memory allocations (debug only) */ 200db2bae30SDana Myers 201*385cc6b4SJerry Jelinek ACPI_GLOBAL (ACPI_MEMORY_LIST *, AcpiGbl_GlobalList); 202*385cc6b4SJerry Jelinek ACPI_GLOBAL (ACPI_MEMORY_LIST *, AcpiGbl_NsNodeList); 203*385cc6b4SJerry Jelinek ACPI_GLOBAL (BOOLEAN, AcpiGbl_DisplayFinalMemStats); 204*385cc6b4SJerry Jelinek ACPI_GLOBAL (BOOLEAN, AcpiGbl_DisableMemTracking); 205db2bae30SDana Myers #endif 2067c478bd9Sstevel@tonic-gate 2077c478bd9Sstevel@tonic-gate 2087c478bd9Sstevel@tonic-gate /***************************************************************************** 2097c478bd9Sstevel@tonic-gate * 2107c478bd9Sstevel@tonic-gate * Namespace globals 2117c478bd9Sstevel@tonic-gate * 2127c478bd9Sstevel@tonic-gate ****************************************************************************/ 2137c478bd9Sstevel@tonic-gate 2147c478bd9Sstevel@tonic-gate #if !defined (ACPI_NO_METHOD_EXECUTION) || defined (ACPI_CONSTANT_EVAL_ONLY) 2157c478bd9Sstevel@tonic-gate #define NUM_PREDEFINED_NAMES 10 2167c478bd9Sstevel@tonic-gate #else 2177c478bd9Sstevel@tonic-gate #define NUM_PREDEFINED_NAMES 9 2187c478bd9Sstevel@tonic-gate #endif 2197c478bd9Sstevel@tonic-gate 220*385cc6b4SJerry Jelinek ACPI_GLOBAL (ACPI_NAMESPACE_NODE, AcpiGbl_RootNodeStruct); 221*385cc6b4SJerry Jelinek ACPI_GLOBAL (ACPI_NAMESPACE_NODE *, AcpiGbl_RootNode); 222*385cc6b4SJerry Jelinek ACPI_GLOBAL (ACPI_NAMESPACE_NODE *, AcpiGbl_FadtGpeDevice); 223*385cc6b4SJerry Jelinek ACPI_GLOBAL (ACPI_OPERAND_OBJECT *, AcpiGbl_ModuleCodeList); 22457190917SDana Myers 2257c478bd9Sstevel@tonic-gate 226db2bae30SDana Myers extern const UINT8 AcpiGbl_NsProperties [ACPI_NUM_NS_TYPES]; 2277c478bd9Sstevel@tonic-gate extern const ACPI_PREDEFINED_NAMES AcpiGbl_PreDefinedNames [NUM_PREDEFINED_NAMES]; 2287c478bd9Sstevel@tonic-gate 2297c478bd9Sstevel@tonic-gate #ifdef ACPI_DEBUG_OUTPUT 230*385cc6b4SJerry Jelinek ACPI_GLOBAL (UINT32, AcpiGbl_CurrentNodeCount); 231*385cc6b4SJerry Jelinek ACPI_GLOBAL (UINT32, AcpiGbl_CurrentNodeSize); 232*385cc6b4SJerry Jelinek ACPI_GLOBAL (UINT32, AcpiGbl_MaxConcurrentNodeCount); 233*385cc6b4SJerry Jelinek ACPI_GLOBAL (ACPI_SIZE *, AcpiGbl_EntryStackPointer); 234*385cc6b4SJerry Jelinek ACPI_GLOBAL (ACPI_SIZE *, AcpiGbl_LowestStackPointer); 235*385cc6b4SJerry Jelinek ACPI_GLOBAL (UINT32, AcpiGbl_DeepestNesting); 236*385cc6b4SJerry Jelinek ACPI_INIT_GLOBAL (UINT32, AcpiGbl_NestingLevel, 0); 2377c478bd9Sstevel@tonic-gate #endif 2387c478bd9Sstevel@tonic-gate 2397c478bd9Sstevel@tonic-gate 2407c478bd9Sstevel@tonic-gate /***************************************************************************** 2417c478bd9Sstevel@tonic-gate * 2427c478bd9Sstevel@tonic-gate * Interpreter globals 2437c478bd9Sstevel@tonic-gate * 2447c478bd9Sstevel@tonic-gate ****************************************************************************/ 2457c478bd9Sstevel@tonic-gate 246*385cc6b4SJerry Jelinek ACPI_GLOBAL (ACPI_THREAD_STATE *, AcpiGbl_CurrentWalkList); 2477c478bd9Sstevel@tonic-gate 248*385cc6b4SJerry Jelinek /* Maximum number of While() loop iterations before forced abort */ 249*385cc6b4SJerry Jelinek 250*385cc6b4SJerry Jelinek ACPI_GLOBAL (UINT16, AcpiGbl_MaxLoopIterations); 2517c478bd9Sstevel@tonic-gate 2527c478bd9Sstevel@tonic-gate /* Control method single step flag */ 2537c478bd9Sstevel@tonic-gate 254*385cc6b4SJerry Jelinek ACPI_GLOBAL (UINT8, AcpiGbl_CmSingleStep); 2557c478bd9Sstevel@tonic-gate 2567c478bd9Sstevel@tonic-gate 2577c478bd9Sstevel@tonic-gate /***************************************************************************** 2587c478bd9Sstevel@tonic-gate * 2597c478bd9Sstevel@tonic-gate * Hardware globals 2607c478bd9Sstevel@tonic-gate * 2617c478bd9Sstevel@tonic-gate ****************************************************************************/ 2627c478bd9Sstevel@tonic-gate 2637c478bd9Sstevel@tonic-gate extern ACPI_BIT_REGISTER_INFO AcpiGbl_BitRegisterInfo[ACPI_NUM_BITREG]; 264*385cc6b4SJerry Jelinek 265*385cc6b4SJerry Jelinek ACPI_GLOBAL (UINT8, AcpiGbl_SleepTypeA); 266*385cc6b4SJerry Jelinek ACPI_GLOBAL (UINT8, AcpiGbl_SleepTypeB); 2677c478bd9Sstevel@tonic-gate 2687c478bd9Sstevel@tonic-gate 2697c478bd9Sstevel@tonic-gate /***************************************************************************** 2707c478bd9Sstevel@tonic-gate * 2717c478bd9Sstevel@tonic-gate * Event and GPE globals 2727c478bd9Sstevel@tonic-gate * 2737c478bd9Sstevel@tonic-gate ****************************************************************************/ 2747c478bd9Sstevel@tonic-gate 275*385cc6b4SJerry Jelinek #if (!ACPI_REDUCED_HARDWARE) 276*385cc6b4SJerry Jelinek 277*385cc6b4SJerry Jelinek ACPI_GLOBAL (UINT8, AcpiGbl_AllGpesInitialized); 278*385cc6b4SJerry Jelinek ACPI_GLOBAL (ACPI_GPE_XRUPT_INFO *, AcpiGbl_GpeXruptListHead); 279*385cc6b4SJerry Jelinek ACPI_GLOBAL (ACPI_GPE_BLOCK_INFO *, AcpiGbl_GpeFadtBlocks[ACPI_MAX_GPE_BLOCKS]); 280*385cc6b4SJerry Jelinek ACPI_GLOBAL (ACPI_GBL_EVENT_HANDLER, AcpiGbl_GlobalEventHandler); 281*385cc6b4SJerry Jelinek ACPI_GLOBAL (void *, AcpiGbl_GlobalEventHandlerContext); 282*385cc6b4SJerry Jelinek ACPI_GLOBAL (ACPI_FIXED_EVENT_HANDLER, AcpiGbl_FixedEventHandlers[ACPI_NUM_FIXED_EVENTS]); 283*385cc6b4SJerry Jelinek 28426f3cdf0SGordon Ross extern ACPI_FIXED_EVENT_INFO AcpiGbl_FixedEventInfo[ACPI_NUM_FIXED_EVENTS]; 2857c478bd9Sstevel@tonic-gate 286*385cc6b4SJerry Jelinek #endif /* !ACPI_REDUCED_HARDWARE */ 2877c478bd9Sstevel@tonic-gate 2887c478bd9Sstevel@tonic-gate /***************************************************************************** 2897c478bd9Sstevel@tonic-gate * 290db2bae30SDana Myers * Debug support 291db2bae30SDana Myers * 292db2bae30SDana Myers ****************************************************************************/ 293db2bae30SDana Myers 294db2bae30SDana Myers /* Event counters */ 295db2bae30SDana Myers 296*385cc6b4SJerry Jelinek ACPI_GLOBAL (UINT32, AcpiMethodCount); 297*385cc6b4SJerry Jelinek ACPI_GLOBAL (UINT32, AcpiGpeCount); 298*385cc6b4SJerry Jelinek ACPI_GLOBAL (UINT32, AcpiSciCount); 299*385cc6b4SJerry Jelinek ACPI_GLOBAL (UINT32, AcpiFixedEventCount[ACPI_NUM_FIXED_EVENTS]); 300db2bae30SDana Myers 301db2bae30SDana Myers /* Support for dynamic control method tracing mechanism */ 302db2bae30SDana Myers 303*385cc6b4SJerry Jelinek ACPI_GLOBAL (UINT32, AcpiGbl_OriginalDbgLevel); 304*385cc6b4SJerry Jelinek ACPI_GLOBAL (UINT32, AcpiGbl_OriginalDbgLayer); 305db2bae30SDana Myers 306db2bae30SDana Myers 307db2bae30SDana Myers /***************************************************************************** 308db2bae30SDana Myers * 309*385cc6b4SJerry Jelinek * Debugger and Disassembler globals 3107c478bd9Sstevel@tonic-gate * 3117c478bd9Sstevel@tonic-gate ****************************************************************************/ 3127c478bd9Sstevel@tonic-gate 313*385cc6b4SJerry Jelinek ACPI_INIT_GLOBAL (UINT8, AcpiGbl_DbOutputFlags, ACPI_DB_CONSOLE_OUTPUT); 3147c478bd9Sstevel@tonic-gate 3157c478bd9Sstevel@tonic-gate #ifdef ACPI_DISASSEMBLER 3167c478bd9Sstevel@tonic-gate 317*385cc6b4SJerry Jelinek /* Do not disassemble buffers to resource descriptors */ 3187c478bd9Sstevel@tonic-gate 319*385cc6b4SJerry Jelinek ACPI_INIT_GLOBAL (UINT8, AcpiGbl_NoResourceDisassembly, FALSE); 320*385cc6b4SJerry Jelinek ACPI_INIT_GLOBAL (BOOLEAN, AcpiGbl_IgnoreNoopOperator, FALSE); 321*385cc6b4SJerry Jelinek ACPI_INIT_GLOBAL (BOOLEAN, AcpiGbl_CstyleDisassembly, TRUE); 322*385cc6b4SJerry Jelinek ACPI_INIT_GLOBAL (BOOLEAN, AcpiGbl_ForceAmlDisassembly, FALSE); 323*385cc6b4SJerry Jelinek ACPI_INIT_GLOBAL (BOOLEAN, AcpiGbl_DmOpt_Verbose, TRUE); 324*385cc6b4SJerry Jelinek ACPI_INIT_GLOBAL (BOOLEAN, AcpiGbl_DmEmitExternalOpcodes, FALSE); 325*385cc6b4SJerry Jelinek 326*385cc6b4SJerry Jelinek ACPI_GLOBAL (BOOLEAN, AcpiGbl_DmOpt_Disasm); 327*385cc6b4SJerry Jelinek ACPI_GLOBAL (BOOLEAN, AcpiGbl_DmOpt_Listing); 328*385cc6b4SJerry Jelinek ACPI_GLOBAL (BOOLEAN, AcpiGbl_NumExternalMethods); 329*385cc6b4SJerry Jelinek ACPI_GLOBAL (UINT32, AcpiGbl_ResolvedExternalMethods); 330*385cc6b4SJerry Jelinek ACPI_GLOBAL (ACPI_EXTERNAL_LIST *, AcpiGbl_ExternalList); 331*385cc6b4SJerry Jelinek ACPI_GLOBAL (ACPI_EXTERNAL_FILE *, AcpiGbl_ExternalFileList); 332*385cc6b4SJerry Jelinek #endif 3337c478bd9Sstevel@tonic-gate 3347c478bd9Sstevel@tonic-gate #ifdef ACPI_DEBUGGER 3357c478bd9Sstevel@tonic-gate 336*385cc6b4SJerry Jelinek ACPI_INIT_GLOBAL (BOOLEAN, AcpiGbl_AbortMethod, FALSE); 337*385cc6b4SJerry Jelinek ACPI_INIT_GLOBAL (BOOLEAN, AcpiGbl_MethodExecuting, FALSE); 338*385cc6b4SJerry Jelinek ACPI_INIT_GLOBAL (ACPI_THREAD_ID, AcpiGbl_DbThreadId, ACPI_INVALID_THREAD_ID); 3397c478bd9Sstevel@tonic-gate 340*385cc6b4SJerry Jelinek ACPI_GLOBAL (BOOLEAN, AcpiGbl_DbOpt_NoIniMethods); 341*385cc6b4SJerry Jelinek ACPI_GLOBAL (BOOLEAN, AcpiGbl_DbOpt_NoRegionSupport); 342*385cc6b4SJerry Jelinek ACPI_GLOBAL (BOOLEAN, AcpiGbl_DbOutputToFile); 343*385cc6b4SJerry Jelinek ACPI_GLOBAL (char *, AcpiGbl_DbBuffer); 344*385cc6b4SJerry Jelinek ACPI_GLOBAL (char *, AcpiGbl_DbFilename); 345*385cc6b4SJerry Jelinek ACPI_GLOBAL (UINT32, AcpiGbl_DbDebugLevel); 346*385cc6b4SJerry Jelinek ACPI_GLOBAL (UINT32, AcpiGbl_DbConsoleDebugLevel); 347*385cc6b4SJerry Jelinek ACPI_GLOBAL (ACPI_NAMESPACE_NODE *, AcpiGbl_DbScopeNode); 348*385cc6b4SJerry Jelinek ACPI_GLOBAL (BOOLEAN, AcpiGbl_DbTerminateLoop); 349*385cc6b4SJerry Jelinek ACPI_GLOBAL (BOOLEAN, AcpiGbl_DbThreadsTerminated); 3507c478bd9Sstevel@tonic-gate 351*385cc6b4SJerry Jelinek ACPI_GLOBAL (char *, AcpiGbl_DbArgs[ACPI_DEBUGGER_MAX_ARGS]); 352*385cc6b4SJerry Jelinek ACPI_GLOBAL (ACPI_OBJECT_TYPE, AcpiGbl_DbArgTypes[ACPI_DEBUGGER_MAX_ARGS]); 353*385cc6b4SJerry Jelinek 354*385cc6b4SJerry Jelinek /* These buffers should all be the same size */ 355*385cc6b4SJerry Jelinek 356*385cc6b4SJerry Jelinek ACPI_GLOBAL (char, AcpiGbl_DbLineBuf[ACPI_DB_LINE_BUFFER_SIZE]); 357*385cc6b4SJerry Jelinek ACPI_GLOBAL (char, AcpiGbl_DbParsedBuf[ACPI_DB_LINE_BUFFER_SIZE]); 358*385cc6b4SJerry Jelinek ACPI_GLOBAL (char, AcpiGbl_DbScopeBuf[ACPI_DB_LINE_BUFFER_SIZE]); 359*385cc6b4SJerry Jelinek ACPI_GLOBAL (char, AcpiGbl_DbDebugFilename[ACPI_DB_LINE_BUFFER_SIZE]); 3607c478bd9Sstevel@tonic-gate 3617c478bd9Sstevel@tonic-gate /* 3627c478bd9Sstevel@tonic-gate * Statistic globals 3637c478bd9Sstevel@tonic-gate */ 364*385cc6b4SJerry Jelinek ACPI_GLOBAL (UINT16, AcpiGbl_ObjTypeCount[ACPI_TOTAL_TYPES]); 365*385cc6b4SJerry Jelinek ACPI_GLOBAL (UINT16, AcpiGbl_NodeTypeCount[ACPI_TOTAL_TYPES]); 366*385cc6b4SJerry Jelinek ACPI_GLOBAL (UINT16, AcpiGbl_ObjTypeCountMisc); 367*385cc6b4SJerry Jelinek ACPI_GLOBAL (UINT16, AcpiGbl_NodeTypeCountMisc); 368*385cc6b4SJerry Jelinek ACPI_GLOBAL (UINT32, AcpiGbl_NumNodes); 369*385cc6b4SJerry Jelinek ACPI_GLOBAL (UINT32, AcpiGbl_NumObjects); 3707c478bd9Sstevel@tonic-gate 371*385cc6b4SJerry Jelinek ACPI_GLOBAL (ACPI_MUTEX, AcpiGbl_DbCommandReady); 372*385cc6b4SJerry Jelinek ACPI_GLOBAL (ACPI_MUTEX, AcpiGbl_DbCommandComplete); 3737c478bd9Sstevel@tonic-gate 3747c478bd9Sstevel@tonic-gate #endif /* ACPI_DEBUGGER */ 3757c478bd9Sstevel@tonic-gate 376*385cc6b4SJerry Jelinek #if defined (ACPI_DISASSEMBLER) || defined (ACPI_ASL_COMPILER) 377*385cc6b4SJerry Jelinek 378*385cc6b4SJerry Jelinek ACPI_GLOBAL (const char, *AcpiGbl_PldPanelList[]); 379*385cc6b4SJerry Jelinek ACPI_GLOBAL (const char, *AcpiGbl_PldVerticalPositionList[]); 380*385cc6b4SJerry Jelinek ACPI_GLOBAL (const char, *AcpiGbl_PldHorizontalPositionList[]); 381*385cc6b4SJerry Jelinek ACPI_GLOBAL (const char, *AcpiGbl_PldShapeList[]); 382*385cc6b4SJerry Jelinek 383*385cc6b4SJerry Jelinek #endif 384*385cc6b4SJerry Jelinek 385*385cc6b4SJerry Jelinek /***************************************************************************** 386*385cc6b4SJerry Jelinek * 387*385cc6b4SJerry Jelinek * Application globals 388*385cc6b4SJerry Jelinek * 389*385cc6b4SJerry Jelinek ****************************************************************************/ 390*385cc6b4SJerry Jelinek 391*385cc6b4SJerry Jelinek #ifdef ACPI_APPLICATION 392*385cc6b4SJerry Jelinek 393*385cc6b4SJerry Jelinek ACPI_INIT_GLOBAL (ACPI_FILE, AcpiGbl_DebugFile, NULL); 394*385cc6b4SJerry Jelinek ACPI_INIT_GLOBAL (ACPI_FILE, AcpiGbl_OutputFile, NULL); 395*385cc6b4SJerry Jelinek 396*385cc6b4SJerry Jelinek /* Print buffer */ 397*385cc6b4SJerry Jelinek 398*385cc6b4SJerry Jelinek ACPI_GLOBAL (ACPI_SPINLOCK, AcpiGbl_PrintLock); /* For print buffer */ 399*385cc6b4SJerry Jelinek ACPI_GLOBAL (char, AcpiGbl_PrintBuffer[1024]); 400*385cc6b4SJerry Jelinek 401*385cc6b4SJerry Jelinek #endif /* ACPI_APPLICATION */ 402*385cc6b4SJerry Jelinek 403*385cc6b4SJerry Jelinek 404*385cc6b4SJerry Jelinek /***************************************************************************** 405*385cc6b4SJerry Jelinek * 406*385cc6b4SJerry Jelinek * Info/help support 407*385cc6b4SJerry Jelinek * 408*385cc6b4SJerry Jelinek ****************************************************************************/ 409*385cc6b4SJerry Jelinek 410*385cc6b4SJerry Jelinek extern const AH_PREDEFINED_NAME AslPredefinedInfo[]; 411*385cc6b4SJerry Jelinek extern const AH_DEVICE_ID AslDeviceIds[]; 412*385cc6b4SJerry Jelinek 413*385cc6b4SJerry Jelinek 4147c478bd9Sstevel@tonic-gate #endif /* __ACGLOBAL_H__ */ 415