acglobal.h revision 237412
167754Smsmith/****************************************************************************** 267754Smsmith * 367754Smsmith * Name: acglobal.h - Declarations for global variables 467754Smsmith * 567754Smsmith *****************************************************************************/ 667754Smsmith 7217365Sjkim/* 8229989Sjkim * Copyright (C) 2000 - 2012, Intel Corp. 970243Smsmith * All rights reserved. 1067754Smsmith * 11217365Sjkim * Redistribution and use in source and binary forms, with or without 12217365Sjkim * modification, are permitted provided that the following conditions 13217365Sjkim * are met: 14217365Sjkim * 1. Redistributions of source code must retain the above copyright 15217365Sjkim * notice, this list of conditions, and the following disclaimer, 16217365Sjkim * without modification. 17217365Sjkim * 2. Redistributions in binary form must reproduce at minimum a disclaimer 18217365Sjkim * substantially similar to the "NO WARRANTY" disclaimer below 19217365Sjkim * ("Disclaimer") and any redistribution must be conditioned upon 20217365Sjkim * including a substantially similar Disclaimer requirement for further 21217365Sjkim * binary redistribution. 22217365Sjkim * 3. Neither the names of the above-listed copyright holders nor the names 23217365Sjkim * of any contributors may be used to endorse or promote products derived 24217365Sjkim * from this software without specific prior written permission. 2567754Smsmith * 26217365Sjkim * Alternatively, this software may be distributed under the terms of the 27217365Sjkim * GNU General Public License ("GPL") version 2 as published by the Free 28217365Sjkim * Software Foundation. 2967754Smsmith * 30217365Sjkim * NO WARRANTY 31217365Sjkim * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 32217365Sjkim * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 33217365Sjkim * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR 34217365Sjkim * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 35217365Sjkim * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 36217365Sjkim * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 37217365Sjkim * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 38217365Sjkim * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 39217365Sjkim * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING 40217365Sjkim * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 41217365Sjkim * POSSIBILITY OF SUCH DAMAGES. 42217365Sjkim */ 4367754Smsmith 4467754Smsmith#ifndef __ACGLOBAL_H__ 4567754Smsmith#define __ACGLOBAL_H__ 4667754Smsmith 4767754Smsmith 4867754Smsmith/* 49128212Snjl * Ensure that the globals are actually defined and initialized only once. 5067754Smsmith * 51128212Snjl * The use of these macros allows a single list of globals (here) in order 5267754Smsmith * to simplify maintenance of the code. 5367754Smsmith */ 5467754Smsmith#ifdef DEFINE_ACPI_GLOBALS 5567754Smsmith#define ACPI_EXTERN 56128212Snjl#define ACPI_INIT_GLOBAL(a,b) a=b 5767754Smsmith#else 5867754Smsmith#define ACPI_EXTERN extern 59128212Snjl#define ACPI_INIT_GLOBAL(a,b) a 6067754Smsmith#endif 6167754Smsmith 6267754Smsmith 63193267Sjkim#ifdef DEFINE_ACPI_GLOBALS 64193267Sjkim 65193267Sjkim/* Public globals, available from outside ACPICA subsystem */ 66193267Sjkim 6767754Smsmith/***************************************************************************** 6867754Smsmith * 69128212Snjl * Runtime configuration (static defaults that can be overriden at runtime) 70127175Snjl * 71127175Snjl ****************************************************************************/ 7267754Smsmith 73128212Snjl/* 74138287Smarks * Enable "slack" in the AML interpreter? Default is FALSE, and the 75138287Smarks * interpreter strictly follows the ACPI specification. Setting to TRUE 76167802Sjkim * allows the interpreter to ignore certain errors and/or bad AML constructs. 77167802Sjkim * 78167802Sjkim * Currently, these features are enabled by this flag: 79167802Sjkim * 80138287Smarks * 1) Allow "implicit return" of last value in a control method 81167802Sjkim * 2) Allow access beyond the end of an operation region 82138287Smarks * 3) Allow access to uninitialized locals/args (auto-init to integer 0) 83151937Sjkim * 4) Allow ANY object type to be a source operand for the Store() operator 84167802Sjkim * 5) Allow unresolved references (invalid target name) in package objects 85167802Sjkim * 6) Enable warning messages for behavior that is not ACPI spec compliant 86128212Snjl */ 87193267SjkimUINT8 ACPI_INIT_GLOBAL (AcpiGbl_EnableInterpreterSlack, FALSE); 88127175Snjl 89128212Snjl/* 90128212Snjl * Automatically serialize ALL control methods? Default is FALSE, meaning 91128212Snjl * to use the Serialized/NotSerialized method flags on a per method basis. 92128212Snjl * Only change this if the ASL code is poorly written and cannot handle 93128212Snjl * reentrancy even though methods are marked "NotSerialized". 94128212Snjl */ 95193267SjkimUINT8 ACPI_INIT_GLOBAL (AcpiGbl_AllMethodsSerialized, FALSE); 96128212Snjl 97128212Snjl/* 98138287Smarks * Create the predefined _OSI method in the namespace? Default is TRUE 99138287Smarks * because ACPI CA is fully compatible with other ACPI implementations. 100138287Smarks * Changing this will revert ACPI CA (and machine ASL) to pre-OSI behavior. 101138287Smarks */ 102193267SjkimUINT8 ACPI_INIT_GLOBAL (AcpiGbl_CreateOsiMethod, TRUE); 103138287Smarks 104138287Smarks/* 105193267Sjkim * Optionally use default values for the ACPI register widths. Set this to 106193267Sjkim * TRUE to use the defaults, if an FADT contains incorrect widths/lengths. 107193267Sjkim */ 108193267SjkimUINT8 ACPI_INIT_GLOBAL (AcpiGbl_UseDefaultRegisterWidths, TRUE); 109128212Snjl 110204773Sjkim/* 111204773Sjkim * Optionally enable output from the AML Debug Object. 112204773Sjkim */ 113204773SjkimUINT8 ACPI_INIT_GLOBAL (AcpiGbl_EnableAmlDebugObject, FALSE); 114193267Sjkim 115206117Sjkim/* 116206117Sjkim * Optionally copy the entire DSDT to local memory (instead of simply 117206117Sjkim * mapping it.) There are some BIOSs that corrupt or replace the original 118206117Sjkim * DSDT, creating the need for this option. Default is FALSE, do not copy 119206117Sjkim * the DSDT. 120206117Sjkim */ 121206117SjkimUINT8 ACPI_INIT_GLOBAL (AcpiGbl_CopyDsdtLocally, FALSE); 122204773Sjkim 123209746Sjkim/* 124209746Sjkim * Optionally truncate I/O addresses to 16 bits. Provides compatibility 125209746Sjkim * with other ACPI implementations. NOTE: During ACPICA initialization, 126209746Sjkim * this value is set to TRUE if any Windows OSI strings have been 127209746Sjkim * requested by the BIOS. 128209746Sjkim */ 129209746SjkimUINT8 ACPI_INIT_GLOBAL (AcpiGbl_TruncateIoAddresses, FALSE); 130206117Sjkim 131228110Sjkim/* 132228110Sjkim * Disable runtime checking and repair of values returned by control methods. 133228110Sjkim * Use only if the repair is causing a problem on a particular machine. 134228110Sjkim */ 135228110SjkimUINT8 ACPI_INIT_GLOBAL (AcpiGbl_DisableAutoRepair, FALSE); 136209746Sjkim 137228110Sjkim 138193267Sjkim/* AcpiGbl_FADT is a local copy of the FADT, converted to a common format. */ 139193267Sjkim 140193267SjkimACPI_TABLE_FADT AcpiGbl_FADT; 141193267SjkimUINT32 AcpiCurrentGpeCount; 142193267SjkimUINT32 AcpiGbl_TraceFlags; 143193267SjkimACPI_NAME AcpiGbl_TraceMethodName; 144212761SjkimBOOLEAN AcpiGbl_SystemAwakeAndRunning; 145193267Sjkim 146228110Sjkim/* 147228110Sjkim * ACPI 5.0 introduces the concept of a "reduced hardware platform", meaning 148228110Sjkim * that the ACPI hardware is no longer required. A flag in the FADT indicates 149228110Sjkim * a reduced HW machine, and that flag is duplicated here for convenience. 150228110Sjkim */ 151228110SjkimBOOLEAN AcpiGbl_ReducedHardware; 152228110Sjkim 153231844Sjkim#endif /* DEFINE_ACPI_GLOBALS */ 154228110Sjkim 155228110Sjkim/* Do not disassemble buffers to resource descriptors */ 156228110Sjkim 157228110SjkimACPI_EXTERN UINT8 ACPI_INIT_GLOBAL (AcpiGbl_NoResourceDisassembly, FALSE); 158228110Sjkim 15967754Smsmith/***************************************************************************** 16067754Smsmith * 16167754Smsmith * ACPI Table globals 16267754Smsmith * 16367754Smsmith ****************************************************************************/ 16467754Smsmith 16567754Smsmith/* 166207344Sjkim * AcpiGbl_RootTableList is the master list of ACPI tables that were 167207344Sjkim * found in the RSDT/XSDT. 16867754Smsmith */ 169207344SjkimACPI_EXTERN ACPI_TABLE_LIST AcpiGbl_RootTableList; 170231844Sjkim 171231844Sjkim#if (!ACPI_REDUCED_HARDWARE) 172193267SjkimACPI_EXTERN ACPI_TABLE_FACS *AcpiGbl_FACS; 17369450Smsmith 174231844Sjkim#endif /* !ACPI_REDUCED_HARDWARE */ 175231844Sjkim 176193267Sjkim/* These addresses are calculated from the FADT Event Block addresses */ 177126372Snjl 178193267SjkimACPI_EXTERN ACPI_GENERIC_ADDRESS AcpiGbl_XPm1aStatus; 179167802SjkimACPI_EXTERN ACPI_GENERIC_ADDRESS AcpiGbl_XPm1aEnable; 180193267Sjkim 181193267SjkimACPI_EXTERN ACPI_GENERIC_ADDRESS AcpiGbl_XPm1bStatus; 182167802SjkimACPI_EXTERN ACPI_GENERIC_ADDRESS AcpiGbl_XPm1bEnable; 183151937Sjkim 184206117Sjkim/* DSDT information. Used to check for DSDT corruption */ 185206117Sjkim 186206117SjkimACPI_EXTERN ACPI_TABLE_HEADER *AcpiGbl_DSDT; 187206117SjkimACPI_EXTERN ACPI_TABLE_HEADER AcpiGbl_OriginalDsdtHeader; 188206117Sjkim 18967754Smsmith/* 190167802Sjkim * Handle both ACPI 1.0 and ACPI 2.0 Integer widths. The integer width is 191167802Sjkim * determined by the revision of the DSDT: If the DSDT revision is less than 192167802Sjkim * 2, use only the lower 32 bits of the internal 64-bit Integer. 19399679Siwasaki */ 19499679SiwasakiACPI_EXTERN UINT8 AcpiGbl_IntegerBitWidth; 19599679SiwasakiACPI_EXTERN UINT8 AcpiGbl_IntegerByteWidth; 196117521SnjlACPI_EXTERN UINT8 AcpiGbl_IntegerNybbleWidth; 197123315Snjl 19867754Smsmith 199167802Sjkim/***************************************************************************** 200167802Sjkim * 201228110Sjkim * Mutual exclusion within ACPICA subsystem 202167802Sjkim * 203167802Sjkim ****************************************************************************/ 204167802Sjkim 20567754Smsmith/* 206167802Sjkim * Predefined mutex objects. This array contains the 20767754Smsmith * actual OS mutex handles, indexed by the local ACPI_MUTEX_HANDLEs. 20867754Smsmith * (The table maps local handles to the real OS handles) 20967754Smsmith */ 210167802SjkimACPI_EXTERN ACPI_MUTEX_INFO AcpiGbl_MutexInfo[ACPI_NUM_MUTEX]; 21167754Smsmith 212167802Sjkim/* 213167802Sjkim * Global lock mutex is an actual AML mutex object 214219707Sjkim * Global lock semaphore works in conjunction with the actual global lock 215219707Sjkim * Global lock spinlock is used for "pending" handshake 216167802Sjkim */ 217167802SjkimACPI_EXTERN ACPI_OPERAND_OBJECT *AcpiGbl_GlobalLockMutex; 218167802SjkimACPI_EXTERN ACPI_SEMAPHORE AcpiGbl_GlobalLockSemaphore; 219219707SjkimACPI_EXTERN ACPI_SPINLOCK AcpiGbl_GlobalLockPendingLock; 220167802SjkimACPI_EXTERN UINT16 AcpiGbl_GlobalLockHandle; 221167802SjkimACPI_EXTERN BOOLEAN AcpiGbl_GlobalLockAcquired; 222167802SjkimACPI_EXTERN BOOLEAN AcpiGbl_GlobalLockPresent; 223219707SjkimACPI_EXTERN BOOLEAN AcpiGbl_GlobalLockPending; 22467754Smsmith 225167802Sjkim/* 226167802Sjkim * Spinlocks are used for interfaces that can be possibly called at 227167802Sjkim * interrupt level 228167802Sjkim */ 229167802SjkimACPI_EXTERN ACPI_SPINLOCK AcpiGbl_GpeLock; /* For GPE data structs and registers */ 230167802SjkimACPI_EXTERN ACPI_SPINLOCK AcpiGbl_HardwareLock; /* For ACPI H/W except GPE registers */ 231167802Sjkim 232210976Sjkim/* Mutex for _OSI support */ 233210976Sjkim 234210976SjkimACPI_EXTERN ACPI_MUTEX AcpiGbl_OsiMutex; 235210976Sjkim 236193267Sjkim/* Reader/Writer lock is used for namespace walk and dynamic table unload */ 237167802Sjkim 238193267SjkimACPI_EXTERN ACPI_RW_LOCK AcpiGbl_NamespaceRwLock; 239193267Sjkim 240193267Sjkim 24167754Smsmith/***************************************************************************** 24267754Smsmith * 24367754Smsmith * Miscellaneous globals 24467754Smsmith * 24567754Smsmith ****************************************************************************/ 24667754Smsmith 247151937Sjkim/* Object caches */ 248151937Sjkim 249167802SjkimACPI_EXTERN ACPI_CACHE_T *AcpiGbl_NamespaceCache; 250151937SjkimACPI_EXTERN ACPI_CACHE_T *AcpiGbl_StateCache; 251151937SjkimACPI_EXTERN ACPI_CACHE_T *AcpiGbl_PsNodeCache; 252151937SjkimACPI_EXTERN ACPI_CACHE_T *AcpiGbl_PsNodeExtCache; 253151937SjkimACPI_EXTERN ACPI_CACHE_T *AcpiGbl_OperandCache; 254151937Sjkim 255151937Sjkim/* Global handlers */ 256151937Sjkim 257234623SjkimACPI_EXTERN ACPI_GLOBAL_NOTIFY_HANDLER AcpiGbl_GlobalNotify[2]; 258138287SmarksACPI_EXTERN ACPI_EXCEPTION_HANDLER AcpiGbl_ExceptionHandler; 25999679SiwasakiACPI_EXTERN ACPI_INIT_HANDLER AcpiGbl_InitHandler; 260193267SjkimACPI_EXTERN ACPI_TABLE_HANDLER AcpiGbl_TableHandler; 261193267SjkimACPI_EXTERN void *AcpiGbl_TableHandlerContext; 26267754SmsmithACPI_EXTERN ACPI_WALK_STATE *AcpiGbl_BreakpointWalk; 263210976SjkimACPI_EXTERN ACPI_INTERFACE_HANDLER AcpiGbl_InterfaceHandler; 26467754Smsmith 265167802Sjkim/* Owner ID support */ 266167802Sjkim 267167802SjkimACPI_EXTERN UINT32 AcpiGbl_OwnerIdMask[ACPI_NUM_OWNERID_MASKS]; 268167802SjkimACPI_EXTERN UINT8 AcpiGbl_LastOwnerIdIndex; 269167802SjkimACPI_EXTERN UINT8 AcpiGbl_NextOwnerIdOffset; 270167802Sjkim 271218590Sjkim/* Initialization sequencing */ 272218590Sjkim 273218590SjkimACPI_EXTERN BOOLEAN AcpiGbl_RegMethodsExecuted; 274218590Sjkim 275151937Sjkim/* Misc */ 276151937Sjkim 27767754SmsmithACPI_EXTERN UINT32 AcpiGbl_OriginalMode; 27867754SmsmithACPI_EXTERN UINT32 AcpiGbl_RsdpOriginalLocation; 27967754SmsmithACPI_EXTERN UINT32 AcpiGbl_NsLookupCount; 28067754SmsmithACPI_EXTERN UINT32 AcpiGbl_PsFindCount; 28167754SmsmithACPI_EXTERN UINT16 AcpiGbl_Pm1EnableRegisterSave; 28267754SmsmithACPI_EXTERN UINT8 AcpiGbl_DebuggerConfiguration; 28367754SmsmithACPI_EXTERN BOOLEAN AcpiGbl_StepToNextCall; 28467754SmsmithACPI_EXTERN BOOLEAN AcpiGbl_AcpiHardwarePresent; 285104470SiwasakiACPI_EXTERN BOOLEAN AcpiGbl_EventsInitialized; 286193267SjkimACPI_EXTERN UINT8 AcpiGbl_OsiData; 287210976SjkimACPI_EXTERN ACPI_INTERFACE_INFO *AcpiGbl_SupportedInterfaces; 288229989SjkimACPI_EXTERN ACPI_ADDRESS_RANGE *AcpiGbl_AddressRangeList[ACPI_ADDRESS_RANGE_MAX]; 28967754Smsmith 290167802Sjkim 291167802Sjkim#ifndef DEFINE_ACPI_GLOBALS 292167802Sjkim 293167802Sjkim/* Exception codes */ 294167802Sjkim 295167802Sjkimextern char const *AcpiGbl_ExceptionNames_Env[]; 296167802Sjkimextern char const *AcpiGbl_ExceptionNames_Pgm[]; 297167802Sjkimextern char const *AcpiGbl_ExceptionNames_Tbl[]; 298167802Sjkimextern char const *AcpiGbl_ExceptionNames_Aml[]; 299167802Sjkimextern char const *AcpiGbl_ExceptionNames_Ctrl[]; 300167802Sjkim 301167802Sjkim/* Other miscellaneous */ 302167802Sjkim 30377424Smsmithextern BOOLEAN AcpiGbl_Shutdown; 30477424Smsmithextern UINT32 AcpiGbl_StartupFlags; 305126372Snjlextern const char *AcpiGbl_SleepStateNames[ACPI_S_STATE_COUNT]; 306197104Sjkimextern const char *AcpiGbl_LowestDstateNames[ACPI_NUM_SxW_METHODS]; 307197104Sjkimextern const char *AcpiGbl_HighestDstateNames[ACPI_NUM_SxD_METHODS]; 30899679Siwasakiextern const ACPI_OPCODE_INFO AcpiGbl_AmlOpInfo[AML_NUM_OPCODES]; 309114237Snjlextern const char *AcpiGbl_RegionTypes[ACPI_NUM_PREDEFINED_REGIONS]; 310167802Sjkim#endif 31167754Smsmith 31267754Smsmith 313167802Sjkim#ifdef ACPI_DBG_TRACK_ALLOCATIONS 314167802Sjkim 315167802Sjkim/* Lists for tracking memory allocations */ 316167802Sjkim 317167802SjkimACPI_EXTERN ACPI_MEMORY_LIST *AcpiGbl_GlobalList; 318167802SjkimACPI_EXTERN ACPI_MEMORY_LIST *AcpiGbl_NsNodeList; 319167802SjkimACPI_EXTERN BOOLEAN AcpiGbl_DisplayFinalMemStats; 320209746SjkimACPI_EXTERN BOOLEAN AcpiGbl_DisableMemTracking; 321167802Sjkim#endif 322167802Sjkim 323167802Sjkim 32467754Smsmith/***************************************************************************** 32567754Smsmith * 32667754Smsmith * Namespace globals 32767754Smsmith * 32867754Smsmith ****************************************************************************/ 32967754Smsmith 330127175Snjl#if !defined (ACPI_NO_METHOD_EXECUTION) || defined (ACPI_CONSTANT_EVAL_ONLY) 331102550Siwasaki#define NUM_PREDEFINED_NAMES 10 332102550Siwasaki#else 33367754Smsmith#define NUM_PREDEFINED_NAMES 9 334102550Siwasaki#endif 33567754Smsmith 33667754SmsmithACPI_EXTERN ACPI_NAMESPACE_NODE AcpiGbl_RootNodeStruct; 33767754SmsmithACPI_EXTERN ACPI_NAMESPACE_NODE *AcpiGbl_RootNode; 338128212SnjlACPI_EXTERN ACPI_NAMESPACE_NODE *AcpiGbl_FadtGpeDevice; 339197104SjkimACPI_EXTERN ACPI_OPERAND_OBJECT *AcpiGbl_ModuleCodeList; 34067754Smsmith 341197104Sjkim 342193267Sjkimextern const UINT8 AcpiGbl_NsProperties [ACPI_NUM_NS_TYPES]; 34391116Smsmithextern const ACPI_PREDEFINED_NAMES AcpiGbl_PreDefinedNames [NUM_PREDEFINED_NAMES]; 34467754Smsmith 345102550Siwasaki#ifdef ACPI_DEBUG_OUTPUT 34682367SmsmithACPI_EXTERN UINT32 AcpiGbl_CurrentNodeCount; 34782367SmsmithACPI_EXTERN UINT32 AcpiGbl_CurrentNodeSize; 34882367SmsmithACPI_EXTERN UINT32 AcpiGbl_MaxConcurrentNodeCount; 349193267SjkimACPI_EXTERN ACPI_SIZE *AcpiGbl_EntryStackPointer; 350193267SjkimACPI_EXTERN ACPI_SIZE *AcpiGbl_LowestStackPointer; 35183174SmsmithACPI_EXTERN UINT32 AcpiGbl_DeepestNesting; 35267754Smsmith#endif 35367754Smsmith 354151937Sjkim 35567754Smsmith/***************************************************************************** 35667754Smsmith * 35767754Smsmith * Interpreter globals 35867754Smsmith * 35967754Smsmith ****************************************************************************/ 36067754Smsmith 36167754Smsmith 362117521SnjlACPI_EXTERN ACPI_THREAD_STATE *AcpiGbl_CurrentWalkList; 36367754Smsmith 36467754Smsmith/* Control method single step flag */ 36567754Smsmith 36667754SmsmithACPI_EXTERN UINT8 AcpiGbl_CmSingleStep; 36767754Smsmith 36867754Smsmith 36967754Smsmith/***************************************************************************** 37067754Smsmith * 37191116Smsmith * Hardware globals 37291116Smsmith * 37391116Smsmith ****************************************************************************/ 37467754Smsmith 37599679Siwasakiextern ACPI_BIT_REGISTER_INFO AcpiGbl_BitRegisterInfo[ACPI_NUM_BITREG]; 37691116SmsmithACPI_EXTERN UINT8 AcpiGbl_SleepTypeA; 37791116SmsmithACPI_EXTERN UINT8 AcpiGbl_SleepTypeB; 37891116Smsmith 37991116Smsmith 38067754Smsmith/***************************************************************************** 38167754Smsmith * 38291116Smsmith * Event and GPE globals 38367754Smsmith * 38467754Smsmith ****************************************************************************/ 38567754Smsmith 386231844Sjkim#if (!ACPI_REDUCED_HARDWARE) 387231844Sjkim 388216471SjkimACPI_EXTERN UINT8 AcpiGbl_AllGpesInitialized; 389117521SnjlACPI_EXTERN ACPI_GPE_XRUPT_INFO *AcpiGbl_GpeXruptListHead; 390117521SnjlACPI_EXTERN ACPI_GPE_BLOCK_INFO *AcpiGbl_GpeFadtBlocks[ACPI_MAX_GPE_BLOCKS]; 391216471SjkimACPI_EXTERN ACPI_GBL_EVENT_HANDLER AcpiGbl_GlobalEventHandler; 392216471SjkimACPI_EXTERN void *AcpiGbl_GlobalEventHandlerContext; 393216471SjkimACPI_EXTERN ACPI_FIXED_EVENT_HANDLER AcpiGbl_FixedEventHandlers[ACPI_NUM_FIXED_EVENTS]; 394216471Sjkimextern ACPI_FIXED_EVENT_INFO AcpiGbl_FixedEventInfo[ACPI_NUM_FIXED_EVENTS]; 39591116Smsmith 396231844Sjkim#endif /* !ACPI_REDUCED_HARDWARE */ 39767754Smsmith 39867754Smsmith/***************************************************************************** 39967754Smsmith * 400167802Sjkim * Debug support 401167802Sjkim * 402167802Sjkim ****************************************************************************/ 403167802Sjkim 404167802Sjkim/* Procedure nesting level for debug output */ 405167802Sjkim 406167802Sjkimextern UINT32 AcpiGbl_NestingLevel; 407167802Sjkim 408167802Sjkim/* Event counters */ 409167802Sjkim 410193267SjkimACPI_EXTERN UINT32 AcpiMethodCount; 411167802SjkimACPI_EXTERN UINT32 AcpiGpeCount; 412193267SjkimACPI_EXTERN UINT32 AcpiSciCount; 413193267SjkimACPI_EXTERN UINT32 AcpiFixedEventCount[ACPI_NUM_FIXED_EVENTS]; 414167802Sjkim 415167802Sjkim/* Support for dynamic control method tracing mechanism */ 416167802Sjkim 417167802SjkimACPI_EXTERN UINT32 AcpiGbl_OriginalDbgLevel; 418167802SjkimACPI_EXTERN UINT32 AcpiGbl_OriginalDbgLayer; 419167802SjkimACPI_EXTERN UINT32 AcpiGbl_TraceDbgLevel; 420167802SjkimACPI_EXTERN UINT32 AcpiGbl_TraceDbgLayer; 421167802Sjkim 422167802Sjkim 423167802Sjkim/***************************************************************************** 424167802Sjkim * 42567754Smsmith * Debugger globals 42667754Smsmith * 42767754Smsmith ****************************************************************************/ 42867754Smsmith 42991116SmsmithACPI_EXTERN UINT8 AcpiGbl_DbOutputFlags; 43091116Smsmith 431100966Siwasaki#ifdef ACPI_DISASSEMBLER 43291116Smsmith 433100966SiwasakiACPI_EXTERN BOOLEAN AcpiGbl_DbOpt_disasm; 434100966SiwasakiACPI_EXTERN BOOLEAN AcpiGbl_DbOpt_verbose; 435198237SjkimACPI_EXTERN ACPI_EXTERNAL_LIST *AcpiGbl_ExternalList; 436210976SjkimACPI_EXTERN ACPI_EXTERNAL_FILE *AcpiGbl_ExternalFileList; 437100966Siwasaki#endif 438100966Siwasaki 439100966Siwasaki 440102550Siwasaki#ifdef ACPI_DEBUGGER 44191116Smsmith 44299679Siwasakiextern BOOLEAN AcpiGbl_MethodExecuting; 443114237Snjlextern BOOLEAN AcpiGbl_AbortMethod; 44499679Siwasakiextern BOOLEAN AcpiGbl_DbTerminateThreads; 44567754Smsmith 44691116SmsmithACPI_EXTERN BOOLEAN AcpiGbl_DbOpt_tables; 44791116SmsmithACPI_EXTERN BOOLEAN AcpiGbl_DbOpt_stats; 44891116SmsmithACPI_EXTERN BOOLEAN AcpiGbl_DbOpt_ini_methods; 449193267SjkimACPI_EXTERN BOOLEAN AcpiGbl_DbOpt_NoRegionSupport; 45091116Smsmith 451114237SnjlACPI_EXTERN char *AcpiGbl_DbArgs[ACPI_DEBUGGER_MAX_ARGS]; 452222544SjkimACPI_EXTERN ACPI_OBJECT_TYPE AcpiGbl_DbArgTypes[ACPI_DEBUGGER_MAX_ARGS]; 453222544SjkimACPI_EXTERN char AcpiGbl_DbLineBuf[ACPI_DB_LINE_BUFFER_SIZE]; 454222544SjkimACPI_EXTERN char AcpiGbl_DbParsedBuf[ACPI_DB_LINE_BUFFER_SIZE]; 455222544SjkimACPI_EXTERN char AcpiGbl_DbScopeBuf[80]; 456222544SjkimACPI_EXTERN char AcpiGbl_DbDebugFilename[80]; 45791116SmsmithACPI_EXTERN BOOLEAN AcpiGbl_DbOutputToFile; 458114237SnjlACPI_EXTERN char *AcpiGbl_DbBuffer; 459114237SnjlACPI_EXTERN char *AcpiGbl_DbFilename; 46091116SmsmithACPI_EXTERN UINT32 AcpiGbl_DbDebugLevel; 46191116SmsmithACPI_EXTERN UINT32 AcpiGbl_DbConsoleDebugLevel; 46291116SmsmithACPI_EXTERN ACPI_NAMESPACE_NODE *AcpiGbl_DbScopeNode; 46391116Smsmith 46491116Smsmith/* 46591116Smsmith * Statistic globals 46691116Smsmith */ 467107325SiwasakiACPI_EXTERN UINT16 AcpiGbl_ObjTypeCount[ACPI_TYPE_NS_NODE_MAX+1]; 468107325SiwasakiACPI_EXTERN UINT16 AcpiGbl_NodeTypeCount[ACPI_TYPE_NS_NODE_MAX+1]; 46991116SmsmithACPI_EXTERN UINT16 AcpiGbl_ObjTypeCountMisc; 47091116SmsmithACPI_EXTERN UINT16 AcpiGbl_NodeTypeCountMisc; 47191116SmsmithACPI_EXTERN UINT32 AcpiGbl_NumNodes; 47291116SmsmithACPI_EXTERN UINT32 AcpiGbl_NumObjects; 47391116Smsmith 47491116Smsmith 47591116SmsmithACPI_EXTERN UINT32 AcpiGbl_SizeOfParseTree; 47691116SmsmithACPI_EXTERN UINT32 AcpiGbl_SizeOfMethodTrees; 47791116SmsmithACPI_EXTERN UINT32 AcpiGbl_SizeOfNodeEntries; 47891116SmsmithACPI_EXTERN UINT32 AcpiGbl_SizeOfAcpiObjects; 47991116Smsmith 480102550Siwasaki#endif /* ACPI_DEBUGGER */ 48191116Smsmith 482237412Sjkim 483237412Sjkim/***************************************************************************** 484237412Sjkim * 485237412Sjkim * Info/help support 486237412Sjkim * 487237412Sjkim ****************************************************************************/ 488237412Sjkim 489237412Sjkimextern const AH_PREDEFINED_NAME AslPredefinedInfo[]; 490237412Sjkim 491237412Sjkim 49267754Smsmith#endif /* __ACGLOBAL_H__ */ 493