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 77c478bd9Sstevel@tonic-gate /****************************************************************************** 87c478bd9Sstevel@tonic-gate * 97c478bd9Sstevel@tonic-gate * 1. Copyright Notice 107c478bd9Sstevel@tonic-gate * 11*aa2aa9a6SDana Myers * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp. 127c478bd9Sstevel@tonic-gate * All rights reserved. 137c478bd9Sstevel@tonic-gate * 147c478bd9Sstevel@tonic-gate * 2. License 157c478bd9Sstevel@tonic-gate * 167c478bd9Sstevel@tonic-gate * 2.1. This is your license from Intel Corp. under its intellectual property 177c478bd9Sstevel@tonic-gate * rights. You may have additional license terms from the party that provided 187c478bd9Sstevel@tonic-gate * you this software, covering your right to use that party's intellectual 197c478bd9Sstevel@tonic-gate * property rights. 207c478bd9Sstevel@tonic-gate * 217c478bd9Sstevel@tonic-gate * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a 227c478bd9Sstevel@tonic-gate * copy of the source code appearing in this file ("Covered Code") an 237c478bd9Sstevel@tonic-gate * irrevocable, perpetual, worldwide license under Intel's copyrights in the 247c478bd9Sstevel@tonic-gate * base code distributed originally by Intel ("Original Intel Code") to copy, 257c478bd9Sstevel@tonic-gate * make derivatives, distribute, use and display any portion of the Covered 267c478bd9Sstevel@tonic-gate * Code in any form, with the right to sublicense such rights; and 277c478bd9Sstevel@tonic-gate * 287c478bd9Sstevel@tonic-gate * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent 297c478bd9Sstevel@tonic-gate * license (with the right to sublicense), under only those claims of Intel 307c478bd9Sstevel@tonic-gate * patents that are infringed by the Original Intel Code, to make, use, sell, 317c478bd9Sstevel@tonic-gate * offer to sell, and import the Covered Code and derivative works thereof 327c478bd9Sstevel@tonic-gate * solely to the minimum extent necessary to exercise the above copyright 337c478bd9Sstevel@tonic-gate * license, and in no event shall the patent license extend to any additions 347c478bd9Sstevel@tonic-gate * to or modifications of the Original Intel Code. No other license or right 357c478bd9Sstevel@tonic-gate * is granted directly or by implication, estoppel or otherwise; 367c478bd9Sstevel@tonic-gate * 377c478bd9Sstevel@tonic-gate * The above copyright and patent license is granted only if the following 387c478bd9Sstevel@tonic-gate * conditions are met: 397c478bd9Sstevel@tonic-gate * 407c478bd9Sstevel@tonic-gate * 3. Conditions 417c478bd9Sstevel@tonic-gate * 427c478bd9Sstevel@tonic-gate * 3.1. Redistribution of Source with Rights to Further Distribute Source. 437c478bd9Sstevel@tonic-gate * Redistribution of source code of any substantial portion of the Covered 447c478bd9Sstevel@tonic-gate * Code or modification with rights to further distribute source must include 457c478bd9Sstevel@tonic-gate * the above Copyright Notice, the above License, this list of Conditions, 467c478bd9Sstevel@tonic-gate * and the following Disclaimer and Export Compliance provision. In addition, 477c478bd9Sstevel@tonic-gate * Licensee must cause all Covered Code to which Licensee contributes to 487c478bd9Sstevel@tonic-gate * contain a file documenting the changes Licensee made to create that Covered 497c478bd9Sstevel@tonic-gate * Code and the date of any change. Licensee must include in that file the 507c478bd9Sstevel@tonic-gate * documentation of any changes made by any predecessor Licensee. Licensee 517c478bd9Sstevel@tonic-gate * must include a prominent statement that the modification is derived, 527c478bd9Sstevel@tonic-gate * directly or indirectly, from Original Intel Code. 537c478bd9Sstevel@tonic-gate * 547c478bd9Sstevel@tonic-gate * 3.2. Redistribution of Source with no Rights to Further Distribute Source. 557c478bd9Sstevel@tonic-gate * Redistribution of source code of any substantial portion of the Covered 567c478bd9Sstevel@tonic-gate * Code or modification without rights to further distribute source must 577c478bd9Sstevel@tonic-gate * include the following Disclaimer and Export Compliance provision in the 587c478bd9Sstevel@tonic-gate * documentation and/or other materials provided with distribution. In 597c478bd9Sstevel@tonic-gate * addition, Licensee may not authorize further sublicense of source of any 607c478bd9Sstevel@tonic-gate * portion of the Covered Code, and must include terms to the effect that the 617c478bd9Sstevel@tonic-gate * license from Licensee to its licensee is limited to the intellectual 627c478bd9Sstevel@tonic-gate * property embodied in the software Licensee provides to its licensee, and 637c478bd9Sstevel@tonic-gate * not to intellectual property embodied in modifications its licensee may 647c478bd9Sstevel@tonic-gate * make. 657c478bd9Sstevel@tonic-gate * 667c478bd9Sstevel@tonic-gate * 3.3. Redistribution of Executable. Redistribution in executable form of any 677c478bd9Sstevel@tonic-gate * substantial portion of the Covered Code or modification must reproduce the 687c478bd9Sstevel@tonic-gate * above Copyright Notice, and the following Disclaimer and Export Compliance 697c478bd9Sstevel@tonic-gate * provision in the documentation and/or other materials provided with the 707c478bd9Sstevel@tonic-gate * distribution. 717c478bd9Sstevel@tonic-gate * 727c478bd9Sstevel@tonic-gate * 3.4. Intel retains all right, title, and interest in and to the Original 737c478bd9Sstevel@tonic-gate * Intel Code. 747c478bd9Sstevel@tonic-gate * 757c478bd9Sstevel@tonic-gate * 3.5. Neither the name Intel nor any other trademark owned or controlled by 767c478bd9Sstevel@tonic-gate * Intel shall be used in advertising or otherwise to promote the sale, use or 777c478bd9Sstevel@tonic-gate * other dealings in products derived from or relating to the Covered Code 787c478bd9Sstevel@tonic-gate * without prior written authorization from Intel. 797c478bd9Sstevel@tonic-gate * 807c478bd9Sstevel@tonic-gate * 4. Disclaimer and Export Compliance 817c478bd9Sstevel@tonic-gate * 827c478bd9Sstevel@tonic-gate * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED 837c478bd9Sstevel@tonic-gate * HERE. ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE 847c478bd9Sstevel@tonic-gate * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT, ASSISTANCE, 857c478bd9Sstevel@tonic-gate * INSTALLATION, TRAINING OR OTHER SERVICES. INTEL WILL NOT PROVIDE ANY 867c478bd9Sstevel@tonic-gate * UPDATES, ENHANCEMENTS OR EXTENSIONS. INTEL SPECIFICALLY DISCLAIMS ANY 877c478bd9Sstevel@tonic-gate * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A 887c478bd9Sstevel@tonic-gate * PARTICULAR PURPOSE. 897c478bd9Sstevel@tonic-gate * 907c478bd9Sstevel@tonic-gate * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES 917c478bd9Sstevel@tonic-gate * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR 927c478bd9Sstevel@tonic-gate * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT, 937c478bd9Sstevel@tonic-gate * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY 947c478bd9Sstevel@tonic-gate * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL 957c478bd9Sstevel@tonic-gate * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. THESE LIMITATIONS 967c478bd9Sstevel@tonic-gate * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY 977c478bd9Sstevel@tonic-gate * LIMITED REMEDY. 987c478bd9Sstevel@tonic-gate * 997c478bd9Sstevel@tonic-gate * 4.3. Licensee shall not export, either directly or indirectly, any of this 1007c478bd9Sstevel@tonic-gate * software or system incorporating such software without first obtaining any 1017c478bd9Sstevel@tonic-gate * required license or other approval from the U. S. Department of Commerce or 1027c478bd9Sstevel@tonic-gate * any other agency or department of the United States Government. In the 1037c478bd9Sstevel@tonic-gate * event Licensee exports any such software from the United States or 1047c478bd9Sstevel@tonic-gate * re-exports any such software from a foreign destination, Licensee shall 1057c478bd9Sstevel@tonic-gate * ensure that the distribution and export/re-export of the software is in 1067c478bd9Sstevel@tonic-gate * compliance with all laws, regulations, orders, or other restrictions of the 1077c478bd9Sstevel@tonic-gate * U.S. Export Administration Regulations. Licensee agrees that neither it nor 1087c478bd9Sstevel@tonic-gate * any of its subsidiaries will export/re-export any technical data, process, 1097c478bd9Sstevel@tonic-gate * software, or service, directly or indirectly, to any country for which the 1107c478bd9Sstevel@tonic-gate * United States government or any agency thereof requires an export license, 1117c478bd9Sstevel@tonic-gate * other governmental approval, or letter of assurance, without first obtaining 1127c478bd9Sstevel@tonic-gate * such license, approval or letter. 1137c478bd9Sstevel@tonic-gate * 1147c478bd9Sstevel@tonic-gate *****************************************************************************/ 1157c478bd9Sstevel@tonic-gate 1167c478bd9Sstevel@tonic-gate #ifndef __ACGLOBAL_H__ 1177c478bd9Sstevel@tonic-gate #define __ACGLOBAL_H__ 1187c478bd9Sstevel@tonic-gate 1197c478bd9Sstevel@tonic-gate 1207c478bd9Sstevel@tonic-gate /* 1217c478bd9Sstevel@tonic-gate * Ensure that the globals are actually defined and initialized only once. 1227c478bd9Sstevel@tonic-gate * 1237c478bd9Sstevel@tonic-gate * The use of these macros allows a single list of globals (here) in order 1247c478bd9Sstevel@tonic-gate * to simplify maintenance of the code. 1257c478bd9Sstevel@tonic-gate */ 1267c478bd9Sstevel@tonic-gate #ifdef DEFINE_ACPI_GLOBALS 1277c478bd9Sstevel@tonic-gate #define ACPI_EXTERN 1287c478bd9Sstevel@tonic-gate #define ACPI_INIT_GLOBAL(a,b) a=b 1297c478bd9Sstevel@tonic-gate #else 1307c478bd9Sstevel@tonic-gate #define ACPI_EXTERN extern 1317c478bd9Sstevel@tonic-gate #define ACPI_INIT_GLOBAL(a,b) a 1327c478bd9Sstevel@tonic-gate #endif 1337c478bd9Sstevel@tonic-gate 1347c478bd9Sstevel@tonic-gate 1357c478bd9Sstevel@tonic-gate /***************************************************************************** 1367c478bd9Sstevel@tonic-gate * 1377c478bd9Sstevel@tonic-gate * Runtime configuration (static defaults that can be overriden at runtime) 1387c478bd9Sstevel@tonic-gate * 1397c478bd9Sstevel@tonic-gate ****************************************************************************/ 1407c478bd9Sstevel@tonic-gate 1417c478bd9Sstevel@tonic-gate /* 1427c478bd9Sstevel@tonic-gate * Enable "slack" in the AML interpreter? Default is FALSE, and the 1437c478bd9Sstevel@tonic-gate * interpreter strictly follows the ACPI specification. Setting to TRUE 14430082d0cSmyers * allows the interpreter to ignore certain errors and/or bad AML constructs. 14530082d0cSmyers * 14630082d0cSmyers * Currently, these features are enabled by this flag: 14730082d0cSmyers * 1487c478bd9Sstevel@tonic-gate * 1) Allow "implicit return" of last value in a control method 14930082d0cSmyers * 2) Allow access beyond the end of an operation region 1507c478bd9Sstevel@tonic-gate * 3) Allow access to uninitialized locals/args (auto-init to integer 0) 1517c478bd9Sstevel@tonic-gate * 4) Allow ANY object type to be a source operand for the Store() operator 15230082d0cSmyers * 5) Allow unresolved references (invalid target name) in package objects 15327f7c583Smyers * 6) Enable warning messages for behavior that is not ACPI spec compliant 1547c478bd9Sstevel@tonic-gate */ 1557c478bd9Sstevel@tonic-gate ACPI_EXTERN UINT8 ACPI_INIT_GLOBAL (AcpiGbl_EnableInterpreterSlack, FALSE); 1567c478bd9Sstevel@tonic-gate 1577c478bd9Sstevel@tonic-gate /* 1587c478bd9Sstevel@tonic-gate * Automatically serialize ALL control methods? Default is FALSE, meaning 1597c478bd9Sstevel@tonic-gate * to use the Serialized/NotSerialized method flags on a per method basis. 1607c478bd9Sstevel@tonic-gate * Only change this if the ASL code is poorly written and cannot handle 1617c478bd9Sstevel@tonic-gate * reentrancy even though methods are marked "NotSerialized". 1627c478bd9Sstevel@tonic-gate */ 1637c478bd9Sstevel@tonic-gate ACPI_EXTERN UINT8 ACPI_INIT_GLOBAL (AcpiGbl_AllMethodsSerialized, FALSE); 1647c478bd9Sstevel@tonic-gate 1657c478bd9Sstevel@tonic-gate /* 1667c478bd9Sstevel@tonic-gate * Create the predefined _OSI method in the namespace? Default is TRUE 1677c478bd9Sstevel@tonic-gate * because ACPI CA is fully compatible with other ACPI implementations. 1687c478bd9Sstevel@tonic-gate * Changing this will revert ACPI CA (and machine ASL) to pre-OSI behavior. 1697c478bd9Sstevel@tonic-gate */ 1707c478bd9Sstevel@tonic-gate ACPI_EXTERN UINT8 ACPI_INIT_GLOBAL (AcpiGbl_CreateOsiMethod, TRUE); 1717c478bd9Sstevel@tonic-gate 1727c478bd9Sstevel@tonic-gate /* 1737c478bd9Sstevel@tonic-gate * Disable wakeup GPEs during runtime? Default is TRUE because WAKE and 1747c478bd9Sstevel@tonic-gate * RUNTIME GPEs should never be shared, and WAKE GPEs should typically only 1757c478bd9Sstevel@tonic-gate * be enabled just before going to sleep. 1767c478bd9Sstevel@tonic-gate */ 1777c478bd9Sstevel@tonic-gate ACPI_EXTERN UINT8 ACPI_INIT_GLOBAL (AcpiGbl_LeaveWakeGpesDisabled, TRUE); 1787c478bd9Sstevel@tonic-gate 179*aa2aa9a6SDana Myers /* 180*aa2aa9a6SDana Myers * Optionally use default values for the ACPI register widths. Set this to 181*aa2aa9a6SDana Myers * TRUE to use the defaults, if an FADT contains incorrect widths/lengths. 182*aa2aa9a6SDana Myers */ 183*aa2aa9a6SDana Myers ACPI_EXTERN UINT8 ACPI_INIT_GLOBAL (AcpiGbl_UseDefaultRegisterWidths, TRUE); 184*aa2aa9a6SDana Myers 1857c478bd9Sstevel@tonic-gate 1867c478bd9Sstevel@tonic-gate /***************************************************************************** 1877c478bd9Sstevel@tonic-gate * 1887c478bd9Sstevel@tonic-gate * ACPI Table globals 1897c478bd9Sstevel@tonic-gate * 1907c478bd9Sstevel@tonic-gate ****************************************************************************/ 1917c478bd9Sstevel@tonic-gate 1927c478bd9Sstevel@tonic-gate /* 193db2bae30SDana Myers * AcpiGbl_RootTableList is the master list of ACPI tables found in the 194db2bae30SDana Myers * RSDT/XSDT. 1957c478bd9Sstevel@tonic-gate * 196db2bae30SDana Myers * AcpiGbl_FADT is a local copy of the FADT, converted to a common format. 1977c478bd9Sstevel@tonic-gate */ 198db2bae30SDana Myers ACPI_EXTERN ACPI_INTERNAL_RSDT AcpiGbl_RootTableList; 199db2bae30SDana Myers ACPI_EXTERN ACPI_TABLE_FADT AcpiGbl_FADT; 200*aa2aa9a6SDana Myers ACPI_EXTERN ACPI_TABLE_FACS *AcpiGbl_FACS; 2017c478bd9Sstevel@tonic-gate 202*aa2aa9a6SDana Myers /* These addresses are calculated from the FADT Event Block addresses */ 2037c478bd9Sstevel@tonic-gate 204*aa2aa9a6SDana Myers ACPI_EXTERN ACPI_GENERIC_ADDRESS AcpiGbl_XPm1aStatus; 205db2bae30SDana Myers ACPI_EXTERN ACPI_GENERIC_ADDRESS AcpiGbl_XPm1aEnable; 206*aa2aa9a6SDana Myers 207*aa2aa9a6SDana Myers ACPI_EXTERN ACPI_GENERIC_ADDRESS AcpiGbl_XPm1bStatus; 208db2bae30SDana Myers ACPI_EXTERN ACPI_GENERIC_ADDRESS AcpiGbl_XPm1bEnable; 209450d6964Smyers 2107c478bd9Sstevel@tonic-gate /* 211db2bae30SDana Myers * Handle both ACPI 1.0 and ACPI 2.0 Integer widths. The integer width is 212db2bae30SDana Myers * determined by the revision of the DSDT: If the DSDT revision is less than 213db2bae30SDana Myers * 2, use only the lower 32 bits of the internal 64-bit Integer. 2147c478bd9Sstevel@tonic-gate */ 2157c478bd9Sstevel@tonic-gate ACPI_EXTERN UINT8 AcpiGbl_IntegerBitWidth; 2167c478bd9Sstevel@tonic-gate ACPI_EXTERN UINT8 AcpiGbl_IntegerByteWidth; 2177c478bd9Sstevel@tonic-gate ACPI_EXTERN UINT8 AcpiGbl_IntegerNybbleWidth; 2187c478bd9Sstevel@tonic-gate 21927f7c583Smyers 22027f7c583Smyers /***************************************************************************** 22127f7c583Smyers * 22227f7c583Smyers * Mutual exlusion within ACPICA subsystem 22327f7c583Smyers * 22427f7c583Smyers ****************************************************************************/ 2257c478bd9Sstevel@tonic-gate 2267c478bd9Sstevel@tonic-gate /* 227db2bae30SDana Myers * Predefined mutex objects. This array contains the 2287c478bd9Sstevel@tonic-gate * actual OS mutex handles, indexed by the local ACPI_MUTEX_HANDLEs. 2297c478bd9Sstevel@tonic-gate * (The table maps local handles to the real OS handles) 2307c478bd9Sstevel@tonic-gate */ 23127f7c583Smyers ACPI_EXTERN ACPI_MUTEX_INFO AcpiGbl_MutexInfo[ACPI_NUM_MUTEX]; 23227f7c583Smyers 23327f7c583Smyers /* 234db2bae30SDana Myers * Global lock mutex is an actual AML mutex object 235db2bae30SDana Myers * Global lock semaphore works in conjunction with the HW global lock 23627f7c583Smyers */ 237db2bae30SDana Myers ACPI_EXTERN ACPI_OPERAND_OBJECT *AcpiGbl_GlobalLockMutex; 23827f7c583Smyers ACPI_EXTERN ACPI_SEMAPHORE AcpiGbl_GlobalLockSemaphore; 239db2bae30SDana Myers ACPI_EXTERN UINT16 AcpiGbl_GlobalLockHandle; 240db2bae30SDana Myers ACPI_EXTERN BOOLEAN AcpiGbl_GlobalLockAcquired; 241db2bae30SDana Myers ACPI_EXTERN BOOLEAN AcpiGbl_GlobalLockPresent; 24227f7c583Smyers 24327f7c583Smyers /* 24427f7c583Smyers * Spinlocks are used for interfaces that can be possibly called at 24527f7c583Smyers * interrupt level 24627f7c583Smyers */ 24727f7c583Smyers ACPI_EXTERN ACPI_SPINLOCK AcpiGbl_GpeLock; /* For GPE data structs and registers */ 24827f7c583Smyers ACPI_EXTERN ACPI_SPINLOCK AcpiGbl_HardwareLock; /* For ACPI H/W except GPE registers */ 2497c478bd9Sstevel@tonic-gate 250*aa2aa9a6SDana Myers /* Reader/Writer lock is used for namespace walk and dynamic table unload */ 251*aa2aa9a6SDana Myers 252*aa2aa9a6SDana Myers ACPI_EXTERN ACPI_RW_LOCK AcpiGbl_NamespaceRwLock; 253*aa2aa9a6SDana Myers 2547c478bd9Sstevel@tonic-gate 2557c478bd9Sstevel@tonic-gate /***************************************************************************** 2567c478bd9Sstevel@tonic-gate * 2577c478bd9Sstevel@tonic-gate * Miscellaneous globals 2587c478bd9Sstevel@tonic-gate * 2597c478bd9Sstevel@tonic-gate ****************************************************************************/ 2607c478bd9Sstevel@tonic-gate 261450d6964Smyers /* Object caches */ 262450d6964Smyers 26327f7c583Smyers ACPI_EXTERN ACPI_CACHE_T *AcpiGbl_NamespaceCache; 264450d6964Smyers ACPI_EXTERN ACPI_CACHE_T *AcpiGbl_StateCache; 265450d6964Smyers ACPI_EXTERN ACPI_CACHE_T *AcpiGbl_PsNodeCache; 266450d6964Smyers ACPI_EXTERN ACPI_CACHE_T *AcpiGbl_PsNodeExtCache; 267450d6964Smyers ACPI_EXTERN ACPI_CACHE_T *AcpiGbl_OperandCache; 268450d6964Smyers 269450d6964Smyers /* Global handlers */ 2707c478bd9Sstevel@tonic-gate 2717c478bd9Sstevel@tonic-gate ACPI_EXTERN ACPI_OBJECT_NOTIFY_HANDLER AcpiGbl_DeviceNotify; 2727c478bd9Sstevel@tonic-gate ACPI_EXTERN ACPI_OBJECT_NOTIFY_HANDLER AcpiGbl_SystemNotify; 2737c478bd9Sstevel@tonic-gate ACPI_EXTERN ACPI_EXCEPTION_HANDLER AcpiGbl_ExceptionHandler; 2747c478bd9Sstevel@tonic-gate ACPI_EXTERN ACPI_INIT_HANDLER AcpiGbl_InitHandler; 275db2bae30SDana Myers ACPI_EXTERN ACPI_TABLE_HANDLER AcpiGbl_TableHandler; 276db2bae30SDana Myers ACPI_EXTERN void *AcpiGbl_TableHandlerContext; 2777c478bd9Sstevel@tonic-gate ACPI_EXTERN ACPI_WALK_STATE *AcpiGbl_BreakpointWalk; 2787c478bd9Sstevel@tonic-gate 279db2bae30SDana Myers 280db2bae30SDana Myers /* Owner ID support */ 281db2bae30SDana Myers 282db2bae30SDana Myers ACPI_EXTERN UINT32 AcpiGbl_OwnerIdMask[ACPI_NUM_OWNERID_MASKS]; 283db2bae30SDana Myers ACPI_EXTERN UINT8 AcpiGbl_LastOwnerIdIndex; 284db2bae30SDana Myers ACPI_EXTERN UINT8 AcpiGbl_NextOwnerIdOffset; 285db2bae30SDana Myers 286450d6964Smyers /* Misc */ 287450d6964Smyers 2887c478bd9Sstevel@tonic-gate ACPI_EXTERN UINT32 AcpiGbl_OriginalMode; 2897c478bd9Sstevel@tonic-gate ACPI_EXTERN UINT32 AcpiGbl_RsdpOriginalLocation; 2907c478bd9Sstevel@tonic-gate ACPI_EXTERN UINT32 AcpiGbl_NsLookupCount; 2917c478bd9Sstevel@tonic-gate ACPI_EXTERN UINT32 AcpiGbl_PsFindCount; 2927c478bd9Sstevel@tonic-gate ACPI_EXTERN UINT16 AcpiGbl_Pm1EnableRegisterSave; 2937c478bd9Sstevel@tonic-gate ACPI_EXTERN UINT8 AcpiGbl_DebuggerConfiguration; 2947c478bd9Sstevel@tonic-gate ACPI_EXTERN BOOLEAN AcpiGbl_StepToNextCall; 2957c478bd9Sstevel@tonic-gate ACPI_EXTERN BOOLEAN AcpiGbl_AcpiHardwarePresent; 2967c478bd9Sstevel@tonic-gate ACPI_EXTERN BOOLEAN AcpiGbl_EventsInitialized; 2977c478bd9Sstevel@tonic-gate ACPI_EXTERN BOOLEAN AcpiGbl_SystemAwakeAndRunning; 298*aa2aa9a6SDana Myers ACPI_EXTERN UINT8 AcpiGbl_OsiData; 2997c478bd9Sstevel@tonic-gate 300db2bae30SDana Myers 301db2bae30SDana Myers #ifndef DEFINE_ACPI_GLOBALS 302db2bae30SDana Myers 303db2bae30SDana Myers /* Exception codes */ 304db2bae30SDana Myers 305db2bae30SDana Myers extern char const *AcpiGbl_ExceptionNames_Env[]; 306db2bae30SDana Myers extern char const *AcpiGbl_ExceptionNames_Pgm[]; 307db2bae30SDana Myers extern char const *AcpiGbl_ExceptionNames_Tbl[]; 308db2bae30SDana Myers extern char const *AcpiGbl_ExceptionNames_Aml[]; 309db2bae30SDana Myers extern char const *AcpiGbl_ExceptionNames_Ctrl[]; 310db2bae30SDana Myers 311db2bae30SDana Myers /* Other miscellaneous */ 312db2bae30SDana Myers 3137c478bd9Sstevel@tonic-gate extern BOOLEAN AcpiGbl_Shutdown; 3147c478bd9Sstevel@tonic-gate extern UINT32 AcpiGbl_StartupFlags; 3157c478bd9Sstevel@tonic-gate extern const char *AcpiGbl_SleepStateNames[ACPI_S_STATE_COUNT]; 3167c478bd9Sstevel@tonic-gate extern const char *AcpiGbl_HighestDstateNames[4]; 3177c478bd9Sstevel@tonic-gate extern const ACPI_OPCODE_INFO AcpiGbl_AmlOpInfo[AML_NUM_OPCODES]; 3187c478bd9Sstevel@tonic-gate extern const char *AcpiGbl_RegionTypes[ACPI_NUM_PREDEFINED_REGIONS]; 319db2bae30SDana Myers #endif 320db2bae30SDana Myers 321db2bae30SDana Myers 322db2bae30SDana Myers #ifdef ACPI_DBG_TRACK_ALLOCATIONS 323db2bae30SDana Myers 324db2bae30SDana Myers /* Lists for tracking memory allocations */ 325db2bae30SDana Myers 326db2bae30SDana Myers ACPI_EXTERN ACPI_MEMORY_LIST *AcpiGbl_GlobalList; 327db2bae30SDana Myers ACPI_EXTERN ACPI_MEMORY_LIST *AcpiGbl_NsNodeList; 328db2bae30SDana Myers ACPI_EXTERN BOOLEAN AcpiGbl_DisplayFinalMemStats; 329db2bae30SDana Myers #endif 3307c478bd9Sstevel@tonic-gate 3317c478bd9Sstevel@tonic-gate 3327c478bd9Sstevel@tonic-gate /***************************************************************************** 3337c478bd9Sstevel@tonic-gate * 3347c478bd9Sstevel@tonic-gate * Namespace globals 3357c478bd9Sstevel@tonic-gate * 3367c478bd9Sstevel@tonic-gate ****************************************************************************/ 3377c478bd9Sstevel@tonic-gate 3387c478bd9Sstevel@tonic-gate #if !defined (ACPI_NO_METHOD_EXECUTION) || defined (ACPI_CONSTANT_EVAL_ONLY) 3397c478bd9Sstevel@tonic-gate #define NUM_PREDEFINED_NAMES 10 3407c478bd9Sstevel@tonic-gate #else 3417c478bd9Sstevel@tonic-gate #define NUM_PREDEFINED_NAMES 9 3427c478bd9Sstevel@tonic-gate #endif 3437c478bd9Sstevel@tonic-gate 3447c478bd9Sstevel@tonic-gate ACPI_EXTERN ACPI_NAMESPACE_NODE AcpiGbl_RootNodeStruct; 3457c478bd9Sstevel@tonic-gate ACPI_EXTERN ACPI_NAMESPACE_NODE *AcpiGbl_RootNode; 3467c478bd9Sstevel@tonic-gate ACPI_EXTERN ACPI_NAMESPACE_NODE *AcpiGbl_FadtGpeDevice; 3477c478bd9Sstevel@tonic-gate 348db2bae30SDana Myers extern const UINT8 AcpiGbl_NsProperties [ACPI_NUM_NS_TYPES]; 3497c478bd9Sstevel@tonic-gate extern const ACPI_PREDEFINED_NAMES AcpiGbl_PreDefinedNames [NUM_PREDEFINED_NAMES]; 3507c478bd9Sstevel@tonic-gate 3517c478bd9Sstevel@tonic-gate #ifdef ACPI_DEBUG_OUTPUT 3527c478bd9Sstevel@tonic-gate ACPI_EXTERN UINT32 AcpiGbl_CurrentNodeCount; 3537c478bd9Sstevel@tonic-gate ACPI_EXTERN UINT32 AcpiGbl_CurrentNodeSize; 3547c478bd9Sstevel@tonic-gate ACPI_EXTERN UINT32 AcpiGbl_MaxConcurrentNodeCount; 355db2bae30SDana Myers ACPI_EXTERN ACPI_SIZE *AcpiGbl_EntryStackPointer; 356db2bae30SDana Myers ACPI_EXTERN ACPI_SIZE *AcpiGbl_LowestStackPointer; 3577c478bd9Sstevel@tonic-gate ACPI_EXTERN UINT32 AcpiGbl_DeepestNesting; 3587c478bd9Sstevel@tonic-gate #endif 3597c478bd9Sstevel@tonic-gate 3607c478bd9Sstevel@tonic-gate 3617c478bd9Sstevel@tonic-gate /***************************************************************************** 3627c478bd9Sstevel@tonic-gate * 3637c478bd9Sstevel@tonic-gate * Interpreter globals 3647c478bd9Sstevel@tonic-gate * 3657c478bd9Sstevel@tonic-gate ****************************************************************************/ 3667c478bd9Sstevel@tonic-gate 3677c478bd9Sstevel@tonic-gate 3687c478bd9Sstevel@tonic-gate ACPI_EXTERN ACPI_THREAD_STATE *AcpiGbl_CurrentWalkList; 3697c478bd9Sstevel@tonic-gate 3707c478bd9Sstevel@tonic-gate /* Control method single step flag */ 3717c478bd9Sstevel@tonic-gate 3727c478bd9Sstevel@tonic-gate ACPI_EXTERN UINT8 AcpiGbl_CmSingleStep; 3737c478bd9Sstevel@tonic-gate 3747c478bd9Sstevel@tonic-gate 3757c478bd9Sstevel@tonic-gate /***************************************************************************** 3767c478bd9Sstevel@tonic-gate * 3777c478bd9Sstevel@tonic-gate * Hardware globals 3787c478bd9Sstevel@tonic-gate * 3797c478bd9Sstevel@tonic-gate ****************************************************************************/ 3807c478bd9Sstevel@tonic-gate 3817c478bd9Sstevel@tonic-gate extern ACPI_BIT_REGISTER_INFO AcpiGbl_BitRegisterInfo[ACPI_NUM_BITREG]; 3827c478bd9Sstevel@tonic-gate ACPI_EXTERN UINT8 AcpiGbl_SleepTypeA; 3837c478bd9Sstevel@tonic-gate ACPI_EXTERN UINT8 AcpiGbl_SleepTypeB; 3847c478bd9Sstevel@tonic-gate 3857c478bd9Sstevel@tonic-gate 3867c478bd9Sstevel@tonic-gate /***************************************************************************** 3877c478bd9Sstevel@tonic-gate * 3887c478bd9Sstevel@tonic-gate * Event and GPE globals 3897c478bd9Sstevel@tonic-gate * 3907c478bd9Sstevel@tonic-gate ****************************************************************************/ 3917c478bd9Sstevel@tonic-gate 3927c478bd9Sstevel@tonic-gate extern ACPI_FIXED_EVENT_INFO AcpiGbl_FixedEventInfo[ACPI_NUM_FIXED_EVENTS]; 3937c478bd9Sstevel@tonic-gate ACPI_EXTERN ACPI_FIXED_EVENT_HANDLER AcpiGbl_FixedEventHandlers[ACPI_NUM_FIXED_EVENTS]; 3947c478bd9Sstevel@tonic-gate ACPI_EXTERN ACPI_GPE_XRUPT_INFO *AcpiGbl_GpeXruptListHead; 3957c478bd9Sstevel@tonic-gate ACPI_EXTERN ACPI_GPE_BLOCK_INFO *AcpiGbl_GpeFadtBlocks[ACPI_MAX_GPE_BLOCKS]; 396*aa2aa9a6SDana Myers ACPI_EXTERN UINT32 AcpiCurrentGpeCount; 3977c478bd9Sstevel@tonic-gate 3987c478bd9Sstevel@tonic-gate 399db2bae30SDana Myers /***************************************************************************** 400db2bae30SDana Myers * 401db2bae30SDana Myers * Debug support 402db2bae30SDana Myers * 403db2bae30SDana Myers ****************************************************************************/ 404db2bae30SDana Myers 405db2bae30SDana Myers /* Runtime configuration of debug print levels */ 406db2bae30SDana Myers 407db2bae30SDana Myers extern UINT32 AcpiDbgLevel; 408db2bae30SDana Myers extern UINT32 AcpiDbgLayer; 409db2bae30SDana Myers 410db2bae30SDana Myers /* Procedure nesting level for debug output */ 411db2bae30SDana Myers 412db2bae30SDana Myers extern UINT32 AcpiGbl_NestingLevel; 413db2bae30SDana Myers 414db2bae30SDana Myers /* Event counters */ 415db2bae30SDana Myers 416db2bae30SDana Myers ACPI_EXTERN UINT32 AcpiMethodCount; 417db2bae30SDana Myers ACPI_EXTERN UINT32 AcpiGpeCount; 418db2bae30SDana Myers ACPI_EXTERN UINT32 AcpiSciCount; 419db2bae30SDana Myers ACPI_EXTERN UINT32 AcpiFixedEventCount[ACPI_NUM_FIXED_EVENTS]; 420db2bae30SDana Myers 421db2bae30SDana Myers /* Support for dynamic control method tracing mechanism */ 422db2bae30SDana Myers 423db2bae30SDana Myers ACPI_EXTERN UINT32 AcpiGbl_OriginalDbgLevel; 424db2bae30SDana Myers ACPI_EXTERN UINT32 AcpiGbl_OriginalDbgLayer; 425db2bae30SDana Myers ACPI_EXTERN ACPI_NAME AcpiGbl_TraceMethodName; 426db2bae30SDana Myers ACPI_EXTERN UINT32 AcpiGbl_TraceDbgLevel; 427db2bae30SDana Myers ACPI_EXTERN UINT32 AcpiGbl_TraceDbgLayer; 428db2bae30SDana Myers ACPI_EXTERN UINT32 AcpiGbl_TraceFlags; 429db2bae30SDana Myers 430db2bae30SDana Myers 4317c478bd9Sstevel@tonic-gate /***************************************************************************** 4327c478bd9Sstevel@tonic-gate * 4337c478bd9Sstevel@tonic-gate * Debugger globals 4347c478bd9Sstevel@tonic-gate * 4357c478bd9Sstevel@tonic-gate ****************************************************************************/ 4367c478bd9Sstevel@tonic-gate 4377c478bd9Sstevel@tonic-gate ACPI_EXTERN UINT8 AcpiGbl_DbOutputFlags; 4387c478bd9Sstevel@tonic-gate 4397c478bd9Sstevel@tonic-gate #ifdef ACPI_DISASSEMBLER 4407c478bd9Sstevel@tonic-gate 4417c478bd9Sstevel@tonic-gate ACPI_EXTERN BOOLEAN AcpiGbl_DbOpt_disasm; 4427c478bd9Sstevel@tonic-gate ACPI_EXTERN BOOLEAN AcpiGbl_DbOpt_verbose; 4437c478bd9Sstevel@tonic-gate #endif 4447c478bd9Sstevel@tonic-gate 4457c478bd9Sstevel@tonic-gate 4467c478bd9Sstevel@tonic-gate #ifdef ACPI_DEBUGGER 4477c478bd9Sstevel@tonic-gate 4487c478bd9Sstevel@tonic-gate extern BOOLEAN AcpiGbl_MethodExecuting; 4497c478bd9Sstevel@tonic-gate extern BOOLEAN AcpiGbl_AbortMethod; 4507c478bd9Sstevel@tonic-gate extern BOOLEAN AcpiGbl_DbTerminateThreads; 4517c478bd9Sstevel@tonic-gate 4527c478bd9Sstevel@tonic-gate ACPI_EXTERN BOOLEAN AcpiGbl_DbOpt_tables; 4537c478bd9Sstevel@tonic-gate ACPI_EXTERN BOOLEAN AcpiGbl_DbOpt_stats; 4547c478bd9Sstevel@tonic-gate ACPI_EXTERN BOOLEAN AcpiGbl_DbOpt_ini_methods; 455db2bae30SDana Myers ACPI_EXTERN BOOLEAN AcpiGbl_DbOpt_NoRegionSupport; 4567c478bd9Sstevel@tonic-gate 4577c478bd9Sstevel@tonic-gate ACPI_EXTERN char *AcpiGbl_DbArgs[ACPI_DEBUGGER_MAX_ARGS]; 4587c478bd9Sstevel@tonic-gate ACPI_EXTERN char AcpiGbl_DbLineBuf[80]; 4597c478bd9Sstevel@tonic-gate ACPI_EXTERN char AcpiGbl_DbParsedBuf[80]; 4607c478bd9Sstevel@tonic-gate ACPI_EXTERN char AcpiGbl_DbScopeBuf[40]; 4617c478bd9Sstevel@tonic-gate ACPI_EXTERN char AcpiGbl_DbDebugFilename[40]; 4627c478bd9Sstevel@tonic-gate ACPI_EXTERN BOOLEAN AcpiGbl_DbOutputToFile; 4637c478bd9Sstevel@tonic-gate ACPI_EXTERN char *AcpiGbl_DbBuffer; 4647c478bd9Sstevel@tonic-gate ACPI_EXTERN char *AcpiGbl_DbFilename; 4657c478bd9Sstevel@tonic-gate ACPI_EXTERN UINT32 AcpiGbl_DbDebugLevel; 4667c478bd9Sstevel@tonic-gate ACPI_EXTERN UINT32 AcpiGbl_DbConsoleDebugLevel; 4677c478bd9Sstevel@tonic-gate ACPI_EXTERN ACPI_NAMESPACE_NODE *AcpiGbl_DbScopeNode; 4687c478bd9Sstevel@tonic-gate 4697c478bd9Sstevel@tonic-gate /* 4707c478bd9Sstevel@tonic-gate * Statistic globals 4717c478bd9Sstevel@tonic-gate */ 4727c478bd9Sstevel@tonic-gate ACPI_EXTERN UINT16 AcpiGbl_ObjTypeCount[ACPI_TYPE_NS_NODE_MAX+1]; 4737c478bd9Sstevel@tonic-gate ACPI_EXTERN UINT16 AcpiGbl_NodeTypeCount[ACPI_TYPE_NS_NODE_MAX+1]; 4747c478bd9Sstevel@tonic-gate ACPI_EXTERN UINT16 AcpiGbl_ObjTypeCountMisc; 4757c478bd9Sstevel@tonic-gate ACPI_EXTERN UINT16 AcpiGbl_NodeTypeCountMisc; 4767c478bd9Sstevel@tonic-gate ACPI_EXTERN UINT32 AcpiGbl_NumNodes; 4777c478bd9Sstevel@tonic-gate ACPI_EXTERN UINT32 AcpiGbl_NumObjects; 4787c478bd9Sstevel@tonic-gate 4797c478bd9Sstevel@tonic-gate 4807c478bd9Sstevel@tonic-gate ACPI_EXTERN UINT32 AcpiGbl_SizeOfParseTree; 4817c478bd9Sstevel@tonic-gate ACPI_EXTERN UINT32 AcpiGbl_SizeOfMethodTrees; 4827c478bd9Sstevel@tonic-gate ACPI_EXTERN UINT32 AcpiGbl_SizeOfNodeEntries; 4837c478bd9Sstevel@tonic-gate ACPI_EXTERN UINT32 AcpiGbl_SizeOfAcpiObjects; 4847c478bd9Sstevel@tonic-gate 4857c478bd9Sstevel@tonic-gate #endif /* ACPI_DEBUGGER */ 4867c478bd9Sstevel@tonic-gate 4877c478bd9Sstevel@tonic-gate #endif /* __ACGLOBAL_H__ */ 488