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*cb565728SJerry 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*cb565728SJerry Jelinek * Globals related to the ACPI tables 517c478bd9Sstevel@tonic-gate * 527c478bd9Sstevel@tonic-gate ****************************************************************************/ 537c478bd9Sstevel@tonic-gate 54*cb565728SJerry Jelinek /* Master list of all ACPI tables that were found in the RSDT/XSDT */ 557c478bd9Sstevel@tonic-gate 56*cb565728SJerry Jelinek ACPI_GLOBAL (ACPI_TABLE_LIST, AcpiGbl_RootTableList); 57450d6964Smyers 5826f3cdf0SGordon Ross /* DSDT information. Used to check for DSDT corruption */ 5926f3cdf0SGordon Ross 60*cb565728SJerry Jelinek ACPI_GLOBAL (ACPI_TABLE_HEADER *, AcpiGbl_DSDT); 61*cb565728SJerry Jelinek ACPI_GLOBAL (ACPI_TABLE_HEADER, AcpiGbl_OriginalDsdtHeader); 62*cb565728SJerry Jelinek ACPI_INIT_GLOBAL (UINT32, AcpiGbl_DsdtIndex, ACPI_INVALID_TABLE_INDEX); 63*cb565728SJerry Jelinek ACPI_INIT_GLOBAL (UINT32, AcpiGbl_FacsIndex, ACPI_INVALID_TABLE_INDEX); 64*cb565728SJerry Jelinek ACPI_INIT_GLOBAL (UINT32, AcpiGbl_XFacsIndex, ACPI_INVALID_TABLE_INDEX); 65*cb565728SJerry Jelinek ACPI_INIT_GLOBAL (UINT32, AcpiGbl_FadtIndex, ACPI_INVALID_TABLE_INDEX); 66*cb565728SJerry Jelinek 67*cb565728SJerry Jelinek #if (!ACPI_REDUCED_HARDWARE) 68*cb565728SJerry Jelinek ACPI_GLOBAL (ACPI_TABLE_FACS *, AcpiGbl_FACS); 69*cb565728SJerry Jelinek 70*cb565728SJerry Jelinek #endif /* !ACPI_REDUCED_HARDWARE */ 71*cb565728SJerry Jelinek 72*cb565728SJerry Jelinek /* These addresses are calculated from the FADT Event Block addresses */ 73*cb565728SJerry Jelinek 74*cb565728SJerry Jelinek ACPI_GLOBAL (ACPI_GENERIC_ADDRESS, AcpiGbl_XPm1aStatus); 75*cb565728SJerry Jelinek ACPI_GLOBAL (ACPI_GENERIC_ADDRESS, AcpiGbl_XPm1aEnable); 76*cb565728SJerry Jelinek 77*cb565728SJerry Jelinek ACPI_GLOBAL (ACPI_GENERIC_ADDRESS, AcpiGbl_XPm1bStatus); 78*cb565728SJerry Jelinek ACPI_GLOBAL (ACPI_GENERIC_ADDRESS, AcpiGbl_XPm1bEnable); 7926f3cdf0SGordon Ross 807c478bd9Sstevel@tonic-gate /* 81*cb565728SJerry 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*cb565728SJerry Jelinek ACPI_GLOBAL (UINT8, AcpiGbl_IntegerBitWidth); 86*cb565728SJerry Jelinek ACPI_GLOBAL (UINT8, AcpiGbl_IntegerByteWidth); 87*cb565728SJerry Jelinek ACPI_GLOBAL (UINT8, AcpiGbl_IntegerNybbleWidth); 887c478bd9Sstevel@tonic-gate 8927f7c583Smyers 9027f7c583Smyers /***************************************************************************** 9127f7c583Smyers * 92*cb565728SJerry 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*cb565728SJerry 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*cb565728SJerry Jelinek ACPI_GLOBAL (ACPI_OPERAND_OBJECT *, AcpiGbl_GlobalLockMutex); 109*cb565728SJerry Jelinek ACPI_GLOBAL (ACPI_SEMAPHORE, AcpiGbl_GlobalLockSemaphore); 110*cb565728SJerry Jelinek ACPI_GLOBAL (ACPI_SPINLOCK, AcpiGbl_GlobalLockPendingLock); 111*cb565728SJerry Jelinek ACPI_GLOBAL (UINT16, AcpiGbl_GlobalLockHandle); 112*cb565728SJerry Jelinek ACPI_GLOBAL (BOOLEAN, AcpiGbl_GlobalLockAcquired); 113*cb565728SJerry Jelinek ACPI_GLOBAL (BOOLEAN, AcpiGbl_GlobalLockPresent); 114*cb565728SJerry 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*cb565728SJerry Jelinek ACPI_GLOBAL (ACPI_SPINLOCK, AcpiGbl_GpeLock); /* For GPE data structs and registers */ 121*cb565728SJerry Jelinek ACPI_GLOBAL (ACPI_SPINLOCK, AcpiGbl_HardwareLock); /* For ACPI H/W except GPE registers */ 122*cb565728SJerry Jelinek ACPI_GLOBAL (ACPI_SPINLOCK, AcpiGbl_ReferenceCountLock); 1237c478bd9Sstevel@tonic-gate 12426f3cdf0SGordon Ross /* Mutex for _OSI support */ 12526f3cdf0SGordon Ross 126*cb565728SJerry 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*cb565728SJerry 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*cb565728SJerry Jelinek ACPI_GLOBAL (ACPI_CACHE_T *, AcpiGbl_NamespaceCache); 142*cb565728SJerry Jelinek ACPI_GLOBAL (ACPI_CACHE_T *, AcpiGbl_StateCache); 143*cb565728SJerry Jelinek ACPI_GLOBAL (ACPI_CACHE_T *, AcpiGbl_PsNodeCache); 144*cb565728SJerry Jelinek ACPI_GLOBAL (ACPI_CACHE_T *, AcpiGbl_PsNodeExtCache); 145*cb565728SJerry Jelinek ACPI_GLOBAL (ACPI_CACHE_T *, AcpiGbl_OperandCache); 146*cb565728SJerry Jelinek 147*cb565728SJerry Jelinek /* System */ 148*cb565728SJerry Jelinek 149*cb565728SJerry Jelinek ACPI_INIT_GLOBAL (UINT32, AcpiGbl_StartupFlags, 0); 150*cb565728SJerry Jelinek ACPI_INIT_GLOBAL (BOOLEAN, AcpiGbl_Shutdown, TRUE); 151*cb565728SJerry Jelinek ACPI_INIT_GLOBAL (BOOLEAN, AcpiGbl_EarlyInitialization, TRUE); 152450d6964Smyers 153450d6964Smyers /* Global handlers */ 154450d6964Smyers 155*cb565728SJerry Jelinek ACPI_GLOBAL (ACPI_GLOBAL_NOTIFY_HANDLER,AcpiGbl_GlobalNotify[2]); 156*cb565728SJerry Jelinek ACPI_GLOBAL (ACPI_EXCEPTION_HANDLER, AcpiGbl_ExceptionHandler); 157*cb565728SJerry Jelinek ACPI_GLOBAL (ACPI_INIT_HANDLER, AcpiGbl_InitHandler); 158*cb565728SJerry Jelinek ACPI_GLOBAL (ACPI_TABLE_HANDLER, AcpiGbl_TableHandler); 159*cb565728SJerry Jelinek ACPI_GLOBAL (void *, AcpiGbl_TableHandlerContext); 160*cb565728SJerry Jelinek ACPI_GLOBAL (ACPI_INTERFACE_HANDLER, AcpiGbl_InterfaceHandler); 161*cb565728SJerry Jelinek ACPI_GLOBAL (ACPI_SCI_HANDLER_INFO *, AcpiGbl_SciHandlerList); 162db2bae30SDana Myers 163db2bae30SDana Myers /* Owner ID support */ 164db2bae30SDana Myers 165*cb565728SJerry Jelinek ACPI_GLOBAL (UINT32, AcpiGbl_OwnerIdMask[ACPI_NUM_OWNERID_MASKS]); 166*cb565728SJerry Jelinek ACPI_GLOBAL (UINT8, AcpiGbl_LastOwnerIdIndex); 167*cb565728SJerry Jelinek ACPI_GLOBAL (UINT8, AcpiGbl_NextOwnerIdOffset); 168db2bae30SDana Myers 16926f3cdf0SGordon Ross /* Initialization sequencing */ 17026f3cdf0SGordon Ross 171*cb565728SJerry Jelinek ACPI_INIT_GLOBAL (BOOLEAN, AcpiGbl_NamespaceInitialized, FALSE); 17226f3cdf0SGordon Ross 173450d6964Smyers /* Misc */ 174450d6964Smyers 175*cb565728SJerry Jelinek ACPI_GLOBAL (UINT32, AcpiGbl_OriginalMode); 176*cb565728SJerry Jelinek ACPI_GLOBAL (UINT32, AcpiGbl_NsLookupCount); 177*cb565728SJerry Jelinek ACPI_GLOBAL (UINT32, AcpiGbl_PsFindCount); 178*cb565728SJerry Jelinek ACPI_GLOBAL (UINT16, AcpiGbl_Pm1EnableRegisterSave); 179*cb565728SJerry Jelinek ACPI_GLOBAL (UINT8, AcpiGbl_DebuggerConfiguration); 180*cb565728SJerry Jelinek ACPI_GLOBAL (BOOLEAN, AcpiGbl_StepToNextCall); 181*cb565728SJerry Jelinek ACPI_GLOBAL (BOOLEAN, AcpiGbl_AcpiHardwarePresent); 182*cb565728SJerry Jelinek ACPI_GLOBAL (BOOLEAN, AcpiGbl_EventsInitialized); 183*cb565728SJerry Jelinek ACPI_GLOBAL (ACPI_INTERFACE_INFO *, AcpiGbl_SupportedInterfaces); 184*cb565728SJerry Jelinek ACPI_GLOBAL (ACPI_ADDRESS_RANGE *, AcpiGbl_AddressRangeList[ACPI_ADDRESS_RANGE_MAX]); 1857c478bd9Sstevel@tonic-gate 186*cb565728SJerry 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*cb565728SJerry Jelinek extern const char AcpiGbl_LowerHexDigits[]; 193*cb565728SJerry Jelinek extern const char AcpiGbl_UpperHexDigits[]; 194*cb565728SJerry 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*cb565728SJerry Jelinek /* Lists for tracking memory allocations (debug only) */ 200db2bae30SDana Myers 201*cb565728SJerry Jelinek ACPI_GLOBAL (ACPI_MEMORY_LIST *, AcpiGbl_GlobalList); 202*cb565728SJerry Jelinek ACPI_GLOBAL (ACPI_MEMORY_LIST *, AcpiGbl_NsNodeList); 203*cb565728SJerry Jelinek ACPI_GLOBAL (BOOLEAN, AcpiGbl_DisplayFinalMemStats); 204*cb565728SJerry 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*cb565728SJerry Jelinek ACPI_GLOBAL (ACPI_NAMESPACE_NODE, AcpiGbl_RootNodeStruct); 221*cb565728SJerry Jelinek ACPI_GLOBAL (ACPI_NAMESPACE_NODE *, AcpiGbl_RootNode); 222*cb565728SJerry Jelinek ACPI_GLOBAL (ACPI_NAMESPACE_NODE *, AcpiGbl_FadtGpeDevice); 223*cb565728SJerry 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*cb565728SJerry Jelinek ACPI_GLOBAL (UINT32, AcpiGbl_CurrentNodeCount); 231*cb565728SJerry Jelinek ACPI_GLOBAL (UINT32, AcpiGbl_CurrentNodeSize); 232*cb565728SJerry Jelinek ACPI_GLOBAL (UINT32, AcpiGbl_MaxConcurrentNodeCount); 233*cb565728SJerry Jelinek ACPI_GLOBAL (ACPI_SIZE *, AcpiGbl_EntryStackPointer); 234*cb565728SJerry Jelinek ACPI_GLOBAL (ACPI_SIZE *, AcpiGbl_LowestStackPointer); 235*cb565728SJerry Jelinek ACPI_GLOBAL (UINT32, AcpiGbl_DeepestNesting); 236*cb565728SJerry 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*cb565728SJerry Jelinek ACPI_GLOBAL (ACPI_THREAD_STATE *, AcpiGbl_CurrentWalkList); 2477c478bd9Sstevel@tonic-gate 248*cb565728SJerry Jelinek /* Maximum number of While() loop iterations before forced abort */ 249*cb565728SJerry Jelinek 250*cb565728SJerry Jelinek ACPI_GLOBAL (UINT16, AcpiGbl_MaxLoopIterations); 2517c478bd9Sstevel@tonic-gate 2527c478bd9Sstevel@tonic-gate /* Control method single step flag */ 2537c478bd9Sstevel@tonic-gate 254*cb565728SJerry 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*cb565728SJerry Jelinek 265*cb565728SJerry Jelinek ACPI_GLOBAL (UINT8, AcpiGbl_SleepTypeA); 266*cb565728SJerry 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*cb565728SJerry Jelinek #if (!ACPI_REDUCED_HARDWARE) 276*cb565728SJerry Jelinek 277*cb565728SJerry Jelinek ACPI_GLOBAL (UINT8, AcpiGbl_AllGpesInitialized); 278*cb565728SJerry Jelinek ACPI_GLOBAL (ACPI_GPE_XRUPT_INFO *, AcpiGbl_GpeXruptListHead); 279*cb565728SJerry Jelinek ACPI_GLOBAL (ACPI_GPE_BLOCK_INFO *, AcpiGbl_GpeFadtBlocks[ACPI_MAX_GPE_BLOCKS]); 280*cb565728SJerry Jelinek ACPI_GLOBAL (ACPI_GBL_EVENT_HANDLER, AcpiGbl_GlobalEventHandler); 281*cb565728SJerry Jelinek ACPI_GLOBAL (void *, AcpiGbl_GlobalEventHandlerContext); 282*cb565728SJerry Jelinek ACPI_GLOBAL (ACPI_FIXED_EVENT_HANDLER, AcpiGbl_FixedEventHandlers[ACPI_NUM_FIXED_EVENTS]); 283*cb565728SJerry Jelinek 28426f3cdf0SGordon Ross extern ACPI_FIXED_EVENT_INFO AcpiGbl_FixedEventInfo[ACPI_NUM_FIXED_EVENTS]; 2857c478bd9Sstevel@tonic-gate 286*cb565728SJerry 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*cb565728SJerry Jelinek ACPI_GLOBAL (UINT32, AcpiMethodCount); 297*cb565728SJerry Jelinek ACPI_GLOBAL (UINT32, AcpiGpeCount); 298*cb565728SJerry Jelinek ACPI_GLOBAL (UINT32, AcpiSciCount); 299*cb565728SJerry Jelinek ACPI_GLOBAL (UINT32, AcpiFixedEventCount[ACPI_NUM_FIXED_EVENTS]); 300db2bae30SDana Myers 301db2bae30SDana Myers /* Support for dynamic control method tracing mechanism */ 302db2bae30SDana Myers 303*cb565728SJerry Jelinek ACPI_GLOBAL (UINT32, AcpiGbl_OriginalDbgLevel); 304*cb565728SJerry Jelinek ACPI_GLOBAL (UINT32, AcpiGbl_OriginalDbgLayer); 305db2bae30SDana Myers 306db2bae30SDana Myers 307db2bae30SDana Myers /***************************************************************************** 308db2bae30SDana Myers * 309*cb565728SJerry Jelinek * Debugger and Disassembler globals 3107c478bd9Sstevel@tonic-gate * 3117c478bd9Sstevel@tonic-gate ****************************************************************************/ 3127c478bd9Sstevel@tonic-gate 313*cb565728SJerry Jelinek ACPI_INIT_GLOBAL (UINT8, AcpiGbl_DbOutputFlags, ACPI_DB_CONSOLE_OUTPUT); 3147c478bd9Sstevel@tonic-gate 3157c478bd9Sstevel@tonic-gate #ifdef ACPI_DISASSEMBLER 3167c478bd9Sstevel@tonic-gate 317*cb565728SJerry Jelinek /* Do not disassemble buffers to resource descriptors */ 3187c478bd9Sstevel@tonic-gate 319*cb565728SJerry Jelinek ACPI_INIT_GLOBAL (UINT8, AcpiGbl_NoResourceDisassembly, FALSE); 320*cb565728SJerry Jelinek ACPI_INIT_GLOBAL (BOOLEAN, AcpiGbl_IgnoreNoopOperator, FALSE); 321*cb565728SJerry Jelinek ACPI_INIT_GLOBAL (BOOLEAN, AcpiGbl_CstyleDisassembly, TRUE); 322*cb565728SJerry Jelinek ACPI_INIT_GLOBAL (BOOLEAN, AcpiGbl_ForceAmlDisassembly, FALSE); 323*cb565728SJerry Jelinek ACPI_INIT_GLOBAL (BOOLEAN, AcpiGbl_DmOpt_Verbose, TRUE); 324*cb565728SJerry Jelinek ACPI_INIT_GLOBAL (BOOLEAN, AcpiGbl_DmEmitExternalOpcodes, FALSE); 325*cb565728SJerry Jelinek 326*cb565728SJerry Jelinek ACPI_GLOBAL (BOOLEAN, AcpiGbl_DmOpt_Disasm); 327*cb565728SJerry Jelinek ACPI_GLOBAL (BOOLEAN, AcpiGbl_DmOpt_Listing); 328*cb565728SJerry Jelinek ACPI_GLOBAL (BOOLEAN, AcpiGbl_NumExternalMethods); 329*cb565728SJerry Jelinek ACPI_GLOBAL (UINT32, AcpiGbl_ResolvedExternalMethods); 330*cb565728SJerry Jelinek ACPI_GLOBAL (ACPI_EXTERNAL_LIST *, AcpiGbl_ExternalList); 331*cb565728SJerry Jelinek ACPI_GLOBAL (ACPI_EXTERNAL_FILE *, AcpiGbl_ExternalFileList); 332*cb565728SJerry Jelinek #endif 3337c478bd9Sstevel@tonic-gate 3347c478bd9Sstevel@tonic-gate #ifdef ACPI_DEBUGGER 3357c478bd9Sstevel@tonic-gate 336*cb565728SJerry Jelinek ACPI_INIT_GLOBAL (BOOLEAN, AcpiGbl_AbortMethod, FALSE); 337*cb565728SJerry Jelinek ACPI_INIT_GLOBAL (BOOLEAN, AcpiGbl_MethodExecuting, FALSE); 338*cb565728SJerry Jelinek ACPI_INIT_GLOBAL (ACPI_THREAD_ID, AcpiGbl_DbThreadId, ACPI_INVALID_THREAD_ID); 3397c478bd9Sstevel@tonic-gate 340*cb565728SJerry Jelinek ACPI_GLOBAL (BOOLEAN, AcpiGbl_DbOpt_NoIniMethods); 341*cb565728SJerry Jelinek ACPI_GLOBAL (BOOLEAN, AcpiGbl_DbOpt_NoRegionSupport); 342*cb565728SJerry Jelinek ACPI_GLOBAL (BOOLEAN, AcpiGbl_DbOutputToFile); 343*cb565728SJerry Jelinek ACPI_GLOBAL (char *, AcpiGbl_DbBuffer); 344*cb565728SJerry Jelinek ACPI_GLOBAL (char *, AcpiGbl_DbFilename); 345*cb565728SJerry Jelinek ACPI_GLOBAL (UINT32, AcpiGbl_DbDebugLevel); 346*cb565728SJerry Jelinek ACPI_GLOBAL (UINT32, AcpiGbl_DbConsoleDebugLevel); 347*cb565728SJerry Jelinek ACPI_GLOBAL (ACPI_NAMESPACE_NODE *, AcpiGbl_DbScopeNode); 348*cb565728SJerry Jelinek ACPI_GLOBAL (BOOLEAN, AcpiGbl_DbTerminateLoop); 349*cb565728SJerry Jelinek ACPI_GLOBAL (BOOLEAN, AcpiGbl_DbThreadsTerminated); 3507c478bd9Sstevel@tonic-gate 351*cb565728SJerry Jelinek ACPI_GLOBAL (char *, AcpiGbl_DbArgs[ACPI_DEBUGGER_MAX_ARGS]); 352*cb565728SJerry Jelinek ACPI_GLOBAL (ACPI_OBJECT_TYPE, AcpiGbl_DbArgTypes[ACPI_DEBUGGER_MAX_ARGS]); 353*cb565728SJerry Jelinek 354*cb565728SJerry Jelinek /* These buffers should all be the same size */ 355*cb565728SJerry Jelinek 356*cb565728SJerry Jelinek ACPI_GLOBAL (char, AcpiGbl_DbLineBuf[ACPI_DB_LINE_BUFFER_SIZE]); 357*cb565728SJerry Jelinek ACPI_GLOBAL (char, AcpiGbl_DbParsedBuf[ACPI_DB_LINE_BUFFER_SIZE]); 358*cb565728SJerry Jelinek ACPI_GLOBAL (char, AcpiGbl_DbScopeBuf[ACPI_DB_LINE_BUFFER_SIZE]); 359*cb565728SJerry 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*cb565728SJerry Jelinek ACPI_GLOBAL (UINT16, AcpiGbl_ObjTypeCount[ACPI_TOTAL_TYPES]); 365*cb565728SJerry Jelinek ACPI_GLOBAL (UINT16, AcpiGbl_NodeTypeCount[ACPI_TOTAL_TYPES]); 366*cb565728SJerry Jelinek ACPI_GLOBAL (UINT16, AcpiGbl_ObjTypeCountMisc); 367*cb565728SJerry Jelinek ACPI_GLOBAL (UINT16, AcpiGbl_NodeTypeCountMisc); 368*cb565728SJerry Jelinek ACPI_GLOBAL (UINT32, AcpiGbl_NumNodes); 369*cb565728SJerry Jelinek ACPI_GLOBAL (UINT32, AcpiGbl_NumObjects); 3707c478bd9Sstevel@tonic-gate 371*cb565728SJerry Jelinek ACPI_GLOBAL (ACPI_MUTEX, AcpiGbl_DbCommandReady); 372*cb565728SJerry Jelinek ACPI_GLOBAL (ACPI_MUTEX, AcpiGbl_DbCommandComplete); 3737c478bd9Sstevel@tonic-gate 3747c478bd9Sstevel@tonic-gate #endif /* ACPI_DEBUGGER */ 3757c478bd9Sstevel@tonic-gate 376*cb565728SJerry Jelinek #if defined (ACPI_DISASSEMBLER) || defined (ACPI_ASL_COMPILER) 377*cb565728SJerry Jelinek 378*cb565728SJerry Jelinek ACPI_GLOBAL (const char, *AcpiGbl_PldPanelList[]); 379*cb565728SJerry Jelinek ACPI_GLOBAL (const char, *AcpiGbl_PldVerticalPositionList[]); 380*cb565728SJerry Jelinek ACPI_GLOBAL (const char, *AcpiGbl_PldHorizontalPositionList[]); 381*cb565728SJerry Jelinek ACPI_GLOBAL (const char, *AcpiGbl_PldShapeList[]); 382*cb565728SJerry Jelinek 383*cb565728SJerry Jelinek #endif 384*cb565728SJerry Jelinek 385*cb565728SJerry Jelinek /***************************************************************************** 386*cb565728SJerry Jelinek * 387*cb565728SJerry Jelinek * Application globals 388*cb565728SJerry Jelinek * 389*cb565728SJerry Jelinek ****************************************************************************/ 390*cb565728SJerry Jelinek 391*cb565728SJerry Jelinek #ifdef ACPI_APPLICATION 392*cb565728SJerry Jelinek 393*cb565728SJerry Jelinek ACPI_INIT_GLOBAL (ACPI_FILE, AcpiGbl_DebugFile, NULL); 394*cb565728SJerry Jelinek ACPI_INIT_GLOBAL (ACPI_FILE, AcpiGbl_OutputFile, NULL); 395*cb565728SJerry Jelinek 396*cb565728SJerry Jelinek /* Print buffer */ 397*cb565728SJerry Jelinek 398*cb565728SJerry Jelinek ACPI_GLOBAL (ACPI_SPINLOCK, AcpiGbl_PrintLock); /* For print buffer */ 399*cb565728SJerry Jelinek ACPI_GLOBAL (char, AcpiGbl_PrintBuffer[1024]); 400*cb565728SJerry Jelinek 401*cb565728SJerry Jelinek #endif /* ACPI_APPLICATION */ 402*cb565728SJerry Jelinek 403*cb565728SJerry Jelinek 404*cb565728SJerry Jelinek /***************************************************************************** 405*cb565728SJerry Jelinek * 406*cb565728SJerry Jelinek * Info/help support 407*cb565728SJerry Jelinek * 408*cb565728SJerry Jelinek ****************************************************************************/ 409*cb565728SJerry Jelinek 410*cb565728SJerry Jelinek extern const AH_PREDEFINED_NAME AslPredefinedInfo[]; 411*cb565728SJerry Jelinek extern const AH_DEVICE_ID AslDeviceIds[]; 412*cb565728SJerry Jelinek 413*cb565728SJerry Jelinek 4147c478bd9Sstevel@tonic-gate #endif /* __ACGLOBAL_H__ */ 415