xref: /dflybsd-src/sys/contrib/dev/acpica/source/include/acglobal.h (revision 20294b7e33bbb88515745d3036e94e3155ea80a9)
10d02842fSSascha Wildner /******************************************************************************
20d02842fSSascha Wildner  *
30d02842fSSascha Wildner  * Name: acglobal.h - Declarations for global variables
40d02842fSSascha Wildner  *
50d02842fSSascha Wildner  *****************************************************************************/
60d02842fSSascha Wildner 
70d02842fSSascha Wildner /*
8*20294b7eSSascha Wildner  * Copyright (C) 2000 - 2014, Intel Corp.
90d02842fSSascha Wildner  * All rights reserved.
100d02842fSSascha Wildner  *
110d02842fSSascha Wildner  * Redistribution and use in source and binary forms, with or without
120d02842fSSascha Wildner  * modification, are permitted provided that the following conditions
130d02842fSSascha Wildner  * are met:
140d02842fSSascha Wildner  * 1. Redistributions of source code must retain the above copyright
150d02842fSSascha Wildner  *    notice, this list of conditions, and the following disclaimer,
160d02842fSSascha Wildner  *    without modification.
170d02842fSSascha Wildner  * 2. Redistributions in binary form must reproduce at minimum a disclaimer
180d02842fSSascha Wildner  *    substantially similar to the "NO WARRANTY" disclaimer below
190d02842fSSascha Wildner  *    ("Disclaimer") and any redistribution must be conditioned upon
200d02842fSSascha Wildner  *    including a substantially similar Disclaimer requirement for further
210d02842fSSascha Wildner  *    binary redistribution.
220d02842fSSascha Wildner  * 3. Neither the names of the above-listed copyright holders nor the names
230d02842fSSascha Wildner  *    of any contributors may be used to endorse or promote products derived
240d02842fSSascha Wildner  *    from this software without specific prior written permission.
250d02842fSSascha Wildner  *
260d02842fSSascha Wildner  * Alternatively, this software may be distributed under the terms of the
270d02842fSSascha Wildner  * GNU General Public License ("GPL") version 2 as published by the Free
280d02842fSSascha Wildner  * Software Foundation.
290d02842fSSascha Wildner  *
300d02842fSSascha Wildner  * NO WARRANTY
310d02842fSSascha Wildner  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
320d02842fSSascha Wildner  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
330d02842fSSascha Wildner  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
340d02842fSSascha Wildner  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
350d02842fSSascha Wildner  * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
360d02842fSSascha Wildner  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
370d02842fSSascha Wildner  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
380d02842fSSascha Wildner  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
390d02842fSSascha Wildner  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
400d02842fSSascha Wildner  * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
410d02842fSSascha Wildner  * POSSIBILITY OF SUCH DAMAGES.
420d02842fSSascha Wildner  */
430d02842fSSascha Wildner 
440d02842fSSascha Wildner #ifndef __ACGLOBAL_H__
450d02842fSSascha Wildner #define __ACGLOBAL_H__
460d02842fSSascha Wildner 
470d02842fSSascha Wildner 
480d02842fSSascha Wildner /*
490d02842fSSascha Wildner  * Ensure that the globals are actually defined and initialized only once.
500d02842fSSascha Wildner  *
510d02842fSSascha Wildner  * The use of these macros allows a single list of globals (here) in order
520d02842fSSascha Wildner  * to simplify maintenance of the code.
530d02842fSSascha Wildner  */
540d02842fSSascha Wildner #ifdef DEFINE_ACPI_GLOBALS
550d02842fSSascha Wildner #define ACPI_EXTERN
560d02842fSSascha Wildner #define ACPI_INIT_GLOBAL(a,b) a=b
570d02842fSSascha Wildner #else
580d02842fSSascha Wildner #define ACPI_EXTERN extern
590d02842fSSascha Wildner #define ACPI_INIT_GLOBAL(a,b) a
600d02842fSSascha Wildner #endif
610d02842fSSascha Wildner 
620d02842fSSascha Wildner 
630d02842fSSascha Wildner #ifdef DEFINE_ACPI_GLOBALS
640d02842fSSascha Wildner 
650d02842fSSascha Wildner /* Public globals, available from outside ACPICA subsystem */
660d02842fSSascha Wildner 
670d02842fSSascha Wildner /*****************************************************************************
680d02842fSSascha Wildner  *
690d02842fSSascha Wildner  * Runtime configuration (static defaults that can be overriden at runtime)
700d02842fSSascha Wildner  *
710d02842fSSascha Wildner  ****************************************************************************/
720d02842fSSascha Wildner 
730d02842fSSascha Wildner /*
740d02842fSSascha Wildner  * Enable "slack" in the AML interpreter?  Default is FALSE, and the
750d02842fSSascha Wildner  * interpreter strictly follows the ACPI specification. Setting to TRUE
760d02842fSSascha Wildner  * allows the interpreter to ignore certain errors and/or bad AML constructs.
770d02842fSSascha Wildner  *
780d02842fSSascha Wildner  * Currently, these features are enabled by this flag:
790d02842fSSascha Wildner  *
800d02842fSSascha Wildner  * 1) Allow "implicit return" of last value in a control method
810d02842fSSascha Wildner  * 2) Allow access beyond the end of an operation region
820d02842fSSascha Wildner  * 3) Allow access to uninitialized locals/args (auto-init to integer 0)
830d02842fSSascha Wildner  * 4) Allow ANY object type to be a source operand for the Store() operator
840d02842fSSascha Wildner  * 5) Allow unresolved references (invalid target name) in package objects
850d02842fSSascha Wildner  * 6) Enable warning messages for behavior that is not ACPI spec compliant
860d02842fSSascha Wildner  */
870d02842fSSascha Wildner UINT8       ACPI_INIT_GLOBAL (AcpiGbl_EnableInterpreterSlack, FALSE);
880d02842fSSascha Wildner 
890d02842fSSascha Wildner /*
900d02842fSSascha Wildner  * Automatically serialize ALL control methods? Default is FALSE, meaning
910d02842fSSascha Wildner  * to use the Serialized/NotSerialized method flags on a per method basis.
920d02842fSSascha Wildner  * Only change this if the ASL code is poorly written and cannot handle
930d02842fSSascha Wildner  * reentrancy even though methods are marked "NotSerialized".
940d02842fSSascha Wildner  */
950d02842fSSascha Wildner UINT8       ACPI_INIT_GLOBAL (AcpiGbl_AllMethodsSerialized, FALSE);
960d02842fSSascha Wildner 
970d02842fSSascha Wildner /*
980d02842fSSascha Wildner  * Create the predefined _OSI method in the namespace? Default is TRUE
990d02842fSSascha Wildner  * because ACPI CA is fully compatible with other ACPI implementations.
1000d02842fSSascha Wildner  * Changing this will revert ACPI CA (and machine ASL) to pre-OSI behavior.
1010d02842fSSascha Wildner  */
1020d02842fSSascha Wildner UINT8       ACPI_INIT_GLOBAL (AcpiGbl_CreateOsiMethod, TRUE);
1030d02842fSSascha Wildner 
1040d02842fSSascha Wildner /*
1050d02842fSSascha Wildner  * Optionally use default values for the ACPI register widths. Set this to
1060d02842fSSascha Wildner  * TRUE to use the defaults, if an FADT contains incorrect widths/lengths.
1070d02842fSSascha Wildner  */
1080d02842fSSascha Wildner UINT8       ACPI_INIT_GLOBAL (AcpiGbl_UseDefaultRegisterWidths, TRUE);
1090d02842fSSascha Wildner 
1100d02842fSSascha Wildner /*
1110d02842fSSascha Wildner  * Optionally enable output from the AML Debug Object.
1120d02842fSSascha Wildner  */
1130d02842fSSascha Wildner UINT8       ACPI_INIT_GLOBAL (AcpiGbl_EnableAmlDebugObject, FALSE);
1140d02842fSSascha Wildner 
1150d02842fSSascha Wildner /*
1160d02842fSSascha Wildner  * Optionally copy the entire DSDT to local memory (instead of simply
1170d02842fSSascha Wildner  * mapping it.) There are some BIOSs that corrupt or replace the original
1180d02842fSSascha Wildner  * DSDT, creating the need for this option. Default is FALSE, do not copy
1190d02842fSSascha Wildner  * the DSDT.
1200d02842fSSascha Wildner  */
1210d02842fSSascha Wildner UINT8       ACPI_INIT_GLOBAL (AcpiGbl_CopyDsdtLocally, FALSE);
1220d02842fSSascha Wildner 
1230d02842fSSascha Wildner /*
1240d02842fSSascha Wildner  * Optionally ignore an XSDT if present and use the RSDT instead.
1250d02842fSSascha Wildner  * Although the ACPI specification requires that an XSDT be used instead
1260d02842fSSascha Wildner  * of the RSDT, the XSDT has been found to be corrupt or ill-formed on
1270d02842fSSascha Wildner  * some machines. Default behavior is to use the XSDT if present.
1280d02842fSSascha Wildner  */
1290d02842fSSascha Wildner UINT8       ACPI_INIT_GLOBAL (AcpiGbl_DoNotUseXsdt, FALSE);
1300d02842fSSascha Wildner 
1310d02842fSSascha Wildner 
1320d02842fSSascha Wildner /*
1330d02842fSSascha Wildner  * Optionally use 32-bit FADT addresses if and when there is a conflict
1340d02842fSSascha Wildner  * (address mismatch) between the 32-bit and 64-bit versions of the
1350d02842fSSascha Wildner  * address. Although ACPICA adheres to the ACPI specification which
1360d02842fSSascha Wildner  * requires the use of the corresponding 64-bit address if it is non-zero,
1370d02842fSSascha Wildner  * some machines have been found to have a corrupted non-zero 64-bit
1380d02842fSSascha Wildner  * address. Default is FALSE, do not favor the 32-bit addresses.
1390d02842fSSascha Wildner  */
1400d02842fSSascha Wildner UINT8       ACPI_INIT_GLOBAL (AcpiGbl_Use32BitFadtAddresses, FALSE);
1410d02842fSSascha Wildner 
1420d02842fSSascha Wildner /*
1430d02842fSSascha Wildner  * Optionally truncate I/O addresses to 16 bits. Provides compatibility
1440d02842fSSascha Wildner  * with other ACPI implementations. NOTE: During ACPICA initialization,
1450d02842fSSascha Wildner  * this value is set to TRUE if any Windows OSI strings have been
1460d02842fSSascha Wildner  * requested by the BIOS.
1470d02842fSSascha Wildner  */
1480d02842fSSascha Wildner UINT8       ACPI_INIT_GLOBAL (AcpiGbl_TruncateIoAddresses, FALSE);
1490d02842fSSascha Wildner 
1500d02842fSSascha Wildner /*
1510d02842fSSascha Wildner  * Disable runtime checking and repair of values returned by control methods.
1520d02842fSSascha Wildner  * Use only if the repair is causing a problem on a particular machine.
1530d02842fSSascha Wildner  */
1540d02842fSSascha Wildner UINT8       ACPI_INIT_GLOBAL (AcpiGbl_DisableAutoRepair, FALSE);
1550d02842fSSascha Wildner 
1560d02842fSSascha Wildner /*
1570d02842fSSascha Wildner  * Optionally do not load any SSDTs from the RSDT/XSDT during initialization.
1580d02842fSSascha Wildner  * This can be useful for debugging ACPI problems on some machines.
1590d02842fSSascha Wildner  */
1600d02842fSSascha Wildner UINT8       ACPI_INIT_GLOBAL (AcpiGbl_DisableSsdtTableLoad, FALSE);
1610d02842fSSascha Wildner 
1620d02842fSSascha Wildner /*
1630d02842fSSascha Wildner  * We keep track of the latest version of Windows that has been requested by
1640d02842fSSascha Wildner  * the BIOS.
1650d02842fSSascha Wildner  */
1660d02842fSSascha Wildner UINT8       ACPI_INIT_GLOBAL (AcpiGbl_OsiData, 0);
1670d02842fSSascha Wildner 
1680d02842fSSascha Wildner 
1690d02842fSSascha Wildner /* AcpiGbl_FADT is a local copy of the FADT, converted to a common format. */
1700d02842fSSascha Wildner 
1710d02842fSSascha Wildner ACPI_TABLE_FADT             AcpiGbl_FADT;
1720d02842fSSascha Wildner UINT32                      AcpiCurrentGpeCount;
1730d02842fSSascha Wildner UINT32                      AcpiGbl_TraceFlags;
1740d02842fSSascha Wildner ACPI_NAME                   AcpiGbl_TraceMethodName;
1750d02842fSSascha Wildner BOOLEAN                     AcpiGbl_SystemAwakeAndRunning;
1760d02842fSSascha Wildner 
1770d02842fSSascha Wildner /*
1780d02842fSSascha Wildner  * ACPI 5.0 introduces the concept of a "reduced hardware platform", meaning
1790d02842fSSascha Wildner  * that the ACPI hardware is no longer required. A flag in the FADT indicates
1800d02842fSSascha Wildner  * a reduced HW machine, and that flag is duplicated here for convenience.
1810d02842fSSascha Wildner  */
1820d02842fSSascha Wildner BOOLEAN                     AcpiGbl_ReducedHardware;
1830d02842fSSascha Wildner 
1840d02842fSSascha Wildner #endif /* DEFINE_ACPI_GLOBALS */
1850d02842fSSascha Wildner 
1860d02842fSSascha Wildner /* Do not disassemble buffers to resource descriptors */
1870d02842fSSascha Wildner 
1880d02842fSSascha Wildner ACPI_EXTERN UINT8       ACPI_INIT_GLOBAL (AcpiGbl_NoResourceDisassembly, FALSE);
1890d02842fSSascha Wildner 
1900d02842fSSascha Wildner /*****************************************************************************
1910d02842fSSascha Wildner  *
1920d02842fSSascha Wildner  * ACPI Table globals
1930d02842fSSascha Wildner  *
1940d02842fSSascha Wildner  ****************************************************************************/
1950d02842fSSascha Wildner 
1960d02842fSSascha Wildner /*
1970d02842fSSascha Wildner  * AcpiGbl_RootTableList is the master list of ACPI tables that were
1980d02842fSSascha Wildner  * found in the RSDT/XSDT.
1990d02842fSSascha Wildner  */
2000d02842fSSascha Wildner ACPI_EXTERN ACPI_TABLE_LIST             AcpiGbl_RootTableList;
2010d02842fSSascha Wildner 
2020d02842fSSascha Wildner #if (!ACPI_REDUCED_HARDWARE)
2030d02842fSSascha Wildner ACPI_EXTERN ACPI_TABLE_FACS            *AcpiGbl_FACS;
2040d02842fSSascha Wildner 
2050d02842fSSascha Wildner #endif /* !ACPI_REDUCED_HARDWARE */
2060d02842fSSascha Wildner 
2070d02842fSSascha Wildner /* These addresses are calculated from the FADT Event Block addresses */
2080d02842fSSascha Wildner 
2090d02842fSSascha Wildner ACPI_EXTERN ACPI_GENERIC_ADDRESS        AcpiGbl_XPm1aStatus;
2100d02842fSSascha Wildner ACPI_EXTERN ACPI_GENERIC_ADDRESS        AcpiGbl_XPm1aEnable;
2110d02842fSSascha Wildner 
2120d02842fSSascha Wildner ACPI_EXTERN ACPI_GENERIC_ADDRESS        AcpiGbl_XPm1bStatus;
2130d02842fSSascha Wildner ACPI_EXTERN ACPI_GENERIC_ADDRESS        AcpiGbl_XPm1bEnable;
2140d02842fSSascha Wildner 
2150d02842fSSascha Wildner /* DSDT information. Used to check for DSDT corruption */
2160d02842fSSascha Wildner 
2170d02842fSSascha Wildner ACPI_EXTERN ACPI_TABLE_HEADER          *AcpiGbl_DSDT;
2180d02842fSSascha Wildner ACPI_EXTERN ACPI_TABLE_HEADER           AcpiGbl_OriginalDsdtHeader;
2190d02842fSSascha Wildner 
2200d02842fSSascha Wildner /*
2210d02842fSSascha Wildner  * Handle both ACPI 1.0 and ACPI 2.0 Integer widths. The integer width is
2220d02842fSSascha Wildner  * determined by the revision of the DSDT: If the DSDT revision is less than
2230d02842fSSascha Wildner  * 2, use only the lower 32 bits of the internal 64-bit Integer.
2240d02842fSSascha Wildner  */
2250d02842fSSascha Wildner ACPI_EXTERN UINT8                       AcpiGbl_IntegerBitWidth;
2260d02842fSSascha Wildner ACPI_EXTERN UINT8                       AcpiGbl_IntegerByteWidth;
2270d02842fSSascha Wildner ACPI_EXTERN UINT8                       AcpiGbl_IntegerNybbleWidth;
2280d02842fSSascha Wildner 
2290d02842fSSascha Wildner 
2300d02842fSSascha Wildner /*****************************************************************************
2310d02842fSSascha Wildner  *
2320d02842fSSascha Wildner  * Mutual exclusion within ACPICA subsystem
2330d02842fSSascha Wildner  *
2340d02842fSSascha Wildner  ****************************************************************************/
2350d02842fSSascha Wildner 
2360d02842fSSascha Wildner /*
2370d02842fSSascha Wildner  * Predefined mutex objects. This array contains the
2380d02842fSSascha Wildner  * actual OS mutex handles, indexed by the local ACPI_MUTEX_HANDLEs.
2390d02842fSSascha Wildner  * (The table maps local handles to the real OS handles)
2400d02842fSSascha Wildner  */
2410d02842fSSascha Wildner ACPI_EXTERN ACPI_MUTEX_INFO             AcpiGbl_MutexInfo[ACPI_NUM_MUTEX];
2420d02842fSSascha Wildner 
2430d02842fSSascha Wildner /*
2440d02842fSSascha Wildner  * Global lock mutex is an actual AML mutex object
2450d02842fSSascha Wildner  * Global lock semaphore works in conjunction with the actual global lock
2460d02842fSSascha Wildner  * Global lock spinlock is used for "pending" handshake
2470d02842fSSascha Wildner  */
2480d02842fSSascha Wildner ACPI_EXTERN ACPI_OPERAND_OBJECT        *AcpiGbl_GlobalLockMutex;
2490d02842fSSascha Wildner ACPI_EXTERN ACPI_SEMAPHORE              AcpiGbl_GlobalLockSemaphore;
2500d02842fSSascha Wildner ACPI_EXTERN ACPI_SPINLOCK               AcpiGbl_GlobalLockPendingLock;
2510d02842fSSascha Wildner ACPI_EXTERN UINT16                      AcpiGbl_GlobalLockHandle;
2520d02842fSSascha Wildner ACPI_EXTERN BOOLEAN                     AcpiGbl_GlobalLockAcquired;
2530d02842fSSascha Wildner ACPI_EXTERN BOOLEAN                     AcpiGbl_GlobalLockPresent;
2540d02842fSSascha Wildner ACPI_EXTERN BOOLEAN                     AcpiGbl_GlobalLockPending;
2550d02842fSSascha Wildner 
2560d02842fSSascha Wildner /*
2570d02842fSSascha Wildner  * Spinlocks are used for interfaces that can be possibly called at
2580d02842fSSascha Wildner  * interrupt level
2590d02842fSSascha Wildner  */
2600d02842fSSascha Wildner ACPI_EXTERN ACPI_SPINLOCK               AcpiGbl_GpeLock;      /* For GPE data structs and registers */
2610d02842fSSascha Wildner ACPI_EXTERN ACPI_SPINLOCK               AcpiGbl_HardwareLock; /* For ACPI H/W except GPE registers */
2620d02842fSSascha Wildner ACPI_EXTERN ACPI_SPINLOCK               AcpiGbl_ReferenceCountLock;
2630d02842fSSascha Wildner 
2640d02842fSSascha Wildner /* Mutex for _OSI support */
2650d02842fSSascha Wildner 
2660d02842fSSascha Wildner ACPI_EXTERN ACPI_MUTEX                  AcpiGbl_OsiMutex;
2670d02842fSSascha Wildner 
2680d02842fSSascha Wildner /* Reader/Writer lock is used for namespace walk and dynamic table unload */
2690d02842fSSascha Wildner 
2700d02842fSSascha Wildner ACPI_EXTERN ACPI_RW_LOCK                AcpiGbl_NamespaceRwLock;
2710d02842fSSascha Wildner 
2720d02842fSSascha Wildner 
2730d02842fSSascha Wildner /*****************************************************************************
2740d02842fSSascha Wildner  *
2750d02842fSSascha Wildner  * Miscellaneous globals
2760d02842fSSascha Wildner  *
2770d02842fSSascha Wildner  ****************************************************************************/
2780d02842fSSascha Wildner 
2790d02842fSSascha Wildner /* Object caches */
2800d02842fSSascha Wildner 
2810d02842fSSascha Wildner ACPI_EXTERN ACPI_CACHE_T               *AcpiGbl_NamespaceCache;
2820d02842fSSascha Wildner ACPI_EXTERN ACPI_CACHE_T               *AcpiGbl_StateCache;
2830d02842fSSascha Wildner ACPI_EXTERN ACPI_CACHE_T               *AcpiGbl_PsNodeCache;
2840d02842fSSascha Wildner ACPI_EXTERN ACPI_CACHE_T               *AcpiGbl_PsNodeExtCache;
2850d02842fSSascha Wildner ACPI_EXTERN ACPI_CACHE_T               *AcpiGbl_OperandCache;
2860d02842fSSascha Wildner 
2870d02842fSSascha Wildner /* Global handlers */
2880d02842fSSascha Wildner 
2890d02842fSSascha Wildner ACPI_EXTERN ACPI_GLOBAL_NOTIFY_HANDLER  AcpiGbl_GlobalNotify[2];
2900d02842fSSascha Wildner ACPI_EXTERN ACPI_EXCEPTION_HANDLER      AcpiGbl_ExceptionHandler;
2910d02842fSSascha Wildner ACPI_EXTERN ACPI_INIT_HANDLER           AcpiGbl_InitHandler;
2920d02842fSSascha Wildner ACPI_EXTERN ACPI_TABLE_HANDLER          AcpiGbl_TableHandler;
2930d02842fSSascha Wildner ACPI_EXTERN void                       *AcpiGbl_TableHandlerContext;
2940d02842fSSascha Wildner ACPI_EXTERN ACPI_WALK_STATE            *AcpiGbl_BreakpointWalk;
2950d02842fSSascha Wildner ACPI_EXTERN ACPI_INTERFACE_HANDLER      AcpiGbl_InterfaceHandler;
2960d02842fSSascha Wildner ACPI_EXTERN ACPI_SCI_HANDLER_INFO      *AcpiGbl_SciHandlerList;
2970d02842fSSascha Wildner 
2980d02842fSSascha Wildner /* Owner ID support */
2990d02842fSSascha Wildner 
3000d02842fSSascha Wildner ACPI_EXTERN UINT32                      AcpiGbl_OwnerIdMask[ACPI_NUM_OWNERID_MASKS];
3010d02842fSSascha Wildner ACPI_EXTERN UINT8                       AcpiGbl_LastOwnerIdIndex;
3020d02842fSSascha Wildner ACPI_EXTERN UINT8                       AcpiGbl_NextOwnerIdOffset;
3030d02842fSSascha Wildner 
3040d02842fSSascha Wildner /* Initialization sequencing */
3050d02842fSSascha Wildner 
3060d02842fSSascha Wildner ACPI_EXTERN BOOLEAN                     AcpiGbl_RegMethodsExecuted;
3070d02842fSSascha Wildner 
3080d02842fSSascha Wildner /* Misc */
3090d02842fSSascha Wildner 
3100d02842fSSascha Wildner ACPI_EXTERN UINT32                      AcpiGbl_OriginalMode;
3110d02842fSSascha Wildner ACPI_EXTERN UINT32                      AcpiGbl_RsdpOriginalLocation;
3120d02842fSSascha Wildner ACPI_EXTERN UINT32                      AcpiGbl_NsLookupCount;
3130d02842fSSascha Wildner ACPI_EXTERN UINT32                      AcpiGbl_PsFindCount;
3140d02842fSSascha Wildner ACPI_EXTERN UINT16                      AcpiGbl_Pm1EnableRegisterSave;
3150d02842fSSascha Wildner ACPI_EXTERN UINT8                       AcpiGbl_DebuggerConfiguration;
3160d02842fSSascha Wildner ACPI_EXTERN BOOLEAN                     AcpiGbl_StepToNextCall;
3170d02842fSSascha Wildner ACPI_EXTERN BOOLEAN                     AcpiGbl_AcpiHardwarePresent;
3180d02842fSSascha Wildner ACPI_EXTERN BOOLEAN                     AcpiGbl_EventsInitialized;
3190d02842fSSascha Wildner ACPI_EXTERN ACPI_INTERFACE_INFO        *AcpiGbl_SupportedInterfaces;
3200d02842fSSascha Wildner ACPI_EXTERN ACPI_ADDRESS_RANGE         *AcpiGbl_AddressRangeList[ACPI_ADDRESS_RANGE_MAX];
3210d02842fSSascha Wildner 
3220d02842fSSascha Wildner #ifndef DEFINE_ACPI_GLOBALS
3230d02842fSSascha Wildner 
3240d02842fSSascha Wildner /* Other miscellaneous */
3250d02842fSSascha Wildner 
3260d02842fSSascha Wildner extern BOOLEAN                          AcpiGbl_Shutdown;
3270d02842fSSascha Wildner extern UINT32                           AcpiGbl_StartupFlags;
3280d02842fSSascha Wildner extern const char                      *AcpiGbl_SleepStateNames[ACPI_S_STATE_COUNT];
3290d02842fSSascha Wildner extern const char                      *AcpiGbl_LowestDstateNames[ACPI_NUM_SxW_METHODS];
3300d02842fSSascha Wildner extern const char                      *AcpiGbl_HighestDstateNames[ACPI_NUM_SxD_METHODS];
3310d02842fSSascha Wildner extern const ACPI_OPCODE_INFO           AcpiGbl_AmlOpInfo[AML_NUM_OPCODES];
3320d02842fSSascha Wildner extern const char                      *AcpiGbl_RegionTypes[ACPI_NUM_PREDEFINED_REGIONS];
3330d02842fSSascha Wildner #endif
3340d02842fSSascha Wildner 
3350d02842fSSascha Wildner 
3360d02842fSSascha Wildner #ifdef ACPI_DBG_TRACK_ALLOCATIONS
3370d02842fSSascha Wildner 
3380d02842fSSascha Wildner /* Lists for tracking memory allocations */
3390d02842fSSascha Wildner 
3400d02842fSSascha Wildner ACPI_EXTERN ACPI_MEMORY_LIST           *AcpiGbl_GlobalList;
3410d02842fSSascha Wildner ACPI_EXTERN ACPI_MEMORY_LIST           *AcpiGbl_NsNodeList;
3420d02842fSSascha Wildner ACPI_EXTERN BOOLEAN                     AcpiGbl_DisplayFinalMemStats;
3430d02842fSSascha Wildner ACPI_EXTERN BOOLEAN                     AcpiGbl_DisableMemTracking;
3440d02842fSSascha Wildner #endif
3450d02842fSSascha Wildner 
3460d02842fSSascha Wildner 
3470d02842fSSascha Wildner /*****************************************************************************
3480d02842fSSascha Wildner  *
3490d02842fSSascha Wildner  * Namespace globals
3500d02842fSSascha Wildner  *
3510d02842fSSascha Wildner  ****************************************************************************/
3520d02842fSSascha Wildner 
3530d02842fSSascha Wildner #if !defined (ACPI_NO_METHOD_EXECUTION) || defined (ACPI_CONSTANT_EVAL_ONLY)
3540d02842fSSascha Wildner #define NUM_PREDEFINED_NAMES            10
3550d02842fSSascha Wildner #else
3560d02842fSSascha Wildner #define NUM_PREDEFINED_NAMES            9
3570d02842fSSascha Wildner #endif
3580d02842fSSascha Wildner 
3590d02842fSSascha Wildner ACPI_EXTERN ACPI_NAMESPACE_NODE         AcpiGbl_RootNodeStruct;
3600d02842fSSascha Wildner ACPI_EXTERN ACPI_NAMESPACE_NODE        *AcpiGbl_RootNode;
3610d02842fSSascha Wildner ACPI_EXTERN ACPI_NAMESPACE_NODE        *AcpiGbl_FadtGpeDevice;
3620d02842fSSascha Wildner ACPI_EXTERN ACPI_OPERAND_OBJECT        *AcpiGbl_ModuleCodeList;
3630d02842fSSascha Wildner 
3640d02842fSSascha Wildner 
3650d02842fSSascha Wildner extern const UINT8                      AcpiGbl_NsProperties [ACPI_NUM_NS_TYPES];
3660d02842fSSascha Wildner extern const ACPI_PREDEFINED_NAMES      AcpiGbl_PreDefinedNames [NUM_PREDEFINED_NAMES];
3670d02842fSSascha Wildner 
3680d02842fSSascha Wildner #ifdef ACPI_DEBUG_OUTPUT
3690d02842fSSascha Wildner ACPI_EXTERN UINT32                      AcpiGbl_CurrentNodeCount;
3700d02842fSSascha Wildner ACPI_EXTERN UINT32                      AcpiGbl_CurrentNodeSize;
3710d02842fSSascha Wildner ACPI_EXTERN UINT32                      AcpiGbl_MaxConcurrentNodeCount;
3720d02842fSSascha Wildner ACPI_EXTERN ACPI_SIZE                  *AcpiGbl_EntryStackPointer;
3730d02842fSSascha Wildner ACPI_EXTERN ACPI_SIZE                  *AcpiGbl_LowestStackPointer;
3740d02842fSSascha Wildner ACPI_EXTERN UINT32                      AcpiGbl_DeepestNesting;
3750d02842fSSascha Wildner #endif
3760d02842fSSascha Wildner 
3770d02842fSSascha Wildner 
3780d02842fSSascha Wildner /*****************************************************************************
3790d02842fSSascha Wildner  *
3800d02842fSSascha Wildner  * Interpreter globals
3810d02842fSSascha Wildner  *
3820d02842fSSascha Wildner  ****************************************************************************/
3830d02842fSSascha Wildner 
3840d02842fSSascha Wildner ACPI_EXTERN ACPI_THREAD_STATE          *AcpiGbl_CurrentWalkList;
3850d02842fSSascha Wildner 
3860d02842fSSascha Wildner /* Control method single step flag */
3870d02842fSSascha Wildner 
3880d02842fSSascha Wildner ACPI_EXTERN UINT8                       AcpiGbl_CmSingleStep;
3890d02842fSSascha Wildner 
3900d02842fSSascha Wildner 
3910d02842fSSascha Wildner /*****************************************************************************
3920d02842fSSascha Wildner  *
3930d02842fSSascha Wildner  * Hardware globals
3940d02842fSSascha Wildner  *
3950d02842fSSascha Wildner  ****************************************************************************/
3960d02842fSSascha Wildner 
3970d02842fSSascha Wildner extern      ACPI_BIT_REGISTER_INFO      AcpiGbl_BitRegisterInfo[ACPI_NUM_BITREG];
3980d02842fSSascha Wildner ACPI_EXTERN UINT8                       AcpiGbl_SleepTypeA;
3990d02842fSSascha Wildner ACPI_EXTERN UINT8                       AcpiGbl_SleepTypeB;
4000d02842fSSascha Wildner 
4010d02842fSSascha Wildner 
4020d02842fSSascha Wildner /*****************************************************************************
4030d02842fSSascha Wildner  *
4040d02842fSSascha Wildner  * Event and GPE globals
4050d02842fSSascha Wildner  *
4060d02842fSSascha Wildner  ****************************************************************************/
4070d02842fSSascha Wildner 
4080d02842fSSascha Wildner #if (!ACPI_REDUCED_HARDWARE)
4090d02842fSSascha Wildner 
4100d02842fSSascha Wildner ACPI_EXTERN UINT8                       AcpiGbl_AllGpesInitialized;
4110d02842fSSascha Wildner ACPI_EXTERN ACPI_GPE_XRUPT_INFO        *AcpiGbl_GpeXruptListHead;
4120d02842fSSascha Wildner ACPI_EXTERN ACPI_GPE_BLOCK_INFO        *AcpiGbl_GpeFadtBlocks[ACPI_MAX_GPE_BLOCKS];
4130d02842fSSascha Wildner ACPI_EXTERN ACPI_GBL_EVENT_HANDLER      AcpiGbl_GlobalEventHandler;
4140d02842fSSascha Wildner ACPI_EXTERN void                       *AcpiGbl_GlobalEventHandlerContext;
4150d02842fSSascha Wildner ACPI_EXTERN ACPI_FIXED_EVENT_HANDLER    AcpiGbl_FixedEventHandlers[ACPI_NUM_FIXED_EVENTS];
4160d02842fSSascha Wildner extern      ACPI_FIXED_EVENT_INFO       AcpiGbl_FixedEventInfo[ACPI_NUM_FIXED_EVENTS];
4170d02842fSSascha Wildner 
4180d02842fSSascha Wildner #endif /* !ACPI_REDUCED_HARDWARE */
4190d02842fSSascha Wildner 
4200d02842fSSascha Wildner /*****************************************************************************
4210d02842fSSascha Wildner  *
4220d02842fSSascha Wildner  * Debug support
4230d02842fSSascha Wildner  *
4240d02842fSSascha Wildner  ****************************************************************************/
4250d02842fSSascha Wildner 
4260d02842fSSascha Wildner /* Procedure nesting level for debug output */
4270d02842fSSascha Wildner 
4280d02842fSSascha Wildner extern      UINT32                      AcpiGbl_NestingLevel;
4290d02842fSSascha Wildner 
4300d02842fSSascha Wildner /* Event counters */
4310d02842fSSascha Wildner 
4320d02842fSSascha Wildner ACPI_EXTERN UINT32                      AcpiMethodCount;
4330d02842fSSascha Wildner ACPI_EXTERN UINT32                      AcpiGpeCount;
4340d02842fSSascha Wildner ACPI_EXTERN UINT32                      AcpiSciCount;
4350d02842fSSascha Wildner ACPI_EXTERN UINT32                      AcpiFixedEventCount[ACPI_NUM_FIXED_EVENTS];
4360d02842fSSascha Wildner 
4370d02842fSSascha Wildner /* Support for dynamic control method tracing mechanism */
4380d02842fSSascha Wildner 
4390d02842fSSascha Wildner ACPI_EXTERN UINT32                      AcpiGbl_OriginalDbgLevel;
4400d02842fSSascha Wildner ACPI_EXTERN UINT32                      AcpiGbl_OriginalDbgLayer;
4410d02842fSSascha Wildner ACPI_EXTERN UINT32                      AcpiGbl_TraceDbgLevel;
4420d02842fSSascha Wildner ACPI_EXTERN UINT32                      AcpiGbl_TraceDbgLayer;
4430d02842fSSascha Wildner 
4440d02842fSSascha Wildner 
4450d02842fSSascha Wildner /*****************************************************************************
4460d02842fSSascha Wildner  *
4470d02842fSSascha Wildner  * Debugger and Disassembler globals
4480d02842fSSascha Wildner  *
4490d02842fSSascha Wildner  ****************************************************************************/
4500d02842fSSascha Wildner 
4510d02842fSSascha Wildner ACPI_EXTERN UINT8                       AcpiGbl_DbOutputFlags;
4520d02842fSSascha Wildner 
4530d02842fSSascha Wildner #ifdef ACPI_DISASSEMBLER
4540d02842fSSascha Wildner 
4550d02842fSSascha Wildner ACPI_EXTERN BOOLEAN                     ACPI_INIT_GLOBAL (AcpiGbl_IgnoreNoopOperator, FALSE);
4560d02842fSSascha Wildner 
4570d02842fSSascha Wildner ACPI_EXTERN BOOLEAN                     AcpiGbl_DbOpt_disasm;
4580d02842fSSascha Wildner ACPI_EXTERN BOOLEAN                     AcpiGbl_DbOpt_verbose;
4590d02842fSSascha Wildner ACPI_EXTERN BOOLEAN                     AcpiGbl_NumExternalMethods;
4600d02842fSSascha Wildner ACPI_EXTERN UINT32                      AcpiGbl_ResolvedExternalMethods;
4610d02842fSSascha Wildner ACPI_EXTERN ACPI_EXTERNAL_LIST         *AcpiGbl_ExternalList;
4620d02842fSSascha Wildner ACPI_EXTERN ACPI_EXTERNAL_FILE         *AcpiGbl_ExternalFileList;
4630d02842fSSascha Wildner #endif
4640d02842fSSascha Wildner 
4650d02842fSSascha Wildner 
4660d02842fSSascha Wildner #ifdef ACPI_DEBUGGER
4670d02842fSSascha Wildner 
4680d02842fSSascha Wildner extern      BOOLEAN                     AcpiGbl_MethodExecuting;
4690d02842fSSascha Wildner extern      BOOLEAN                     AcpiGbl_AbortMethod;
4700d02842fSSascha Wildner extern      BOOLEAN                     AcpiGbl_DbTerminateThreads;
4710d02842fSSascha Wildner 
4720d02842fSSascha Wildner ACPI_EXTERN BOOLEAN                     AcpiGbl_DbOpt_tables;
4730d02842fSSascha Wildner ACPI_EXTERN BOOLEAN                     AcpiGbl_DbOpt_stats;
4740d02842fSSascha Wildner ACPI_EXTERN BOOLEAN                     AcpiGbl_DbOpt_ini_methods;
4750d02842fSSascha Wildner ACPI_EXTERN BOOLEAN                     AcpiGbl_DbOpt_NoRegionSupport;
4760d02842fSSascha Wildner ACPI_EXTERN BOOLEAN                     AcpiGbl_DbOutputToFile;
4770d02842fSSascha Wildner ACPI_EXTERN char                       *AcpiGbl_DbBuffer;
4780d02842fSSascha Wildner ACPI_EXTERN char                       *AcpiGbl_DbFilename;
4790d02842fSSascha Wildner ACPI_EXTERN UINT32                      AcpiGbl_DbDebugLevel;
4800d02842fSSascha Wildner ACPI_EXTERN UINT32                      AcpiGbl_DbConsoleDebugLevel;
4810d02842fSSascha Wildner ACPI_EXTERN ACPI_NAMESPACE_NODE        *AcpiGbl_DbScopeNode;
4820d02842fSSascha Wildner 
4830d02842fSSascha Wildner ACPI_EXTERN char                       *AcpiGbl_DbArgs[ACPI_DEBUGGER_MAX_ARGS];
4840d02842fSSascha Wildner ACPI_EXTERN ACPI_OBJECT_TYPE            AcpiGbl_DbArgTypes[ACPI_DEBUGGER_MAX_ARGS];
4850d02842fSSascha Wildner 
4860d02842fSSascha Wildner /* These buffers should all be the same size */
4870d02842fSSascha Wildner 
4880d02842fSSascha Wildner ACPI_EXTERN char                        AcpiGbl_DbLineBuf[ACPI_DB_LINE_BUFFER_SIZE];
4890d02842fSSascha Wildner ACPI_EXTERN char                        AcpiGbl_DbParsedBuf[ACPI_DB_LINE_BUFFER_SIZE];
4900d02842fSSascha Wildner ACPI_EXTERN char                        AcpiGbl_DbScopeBuf[ACPI_DB_LINE_BUFFER_SIZE];
4910d02842fSSascha Wildner ACPI_EXTERN char                        AcpiGbl_DbDebugFilename[ACPI_DB_LINE_BUFFER_SIZE];
4920d02842fSSascha Wildner 
4930d02842fSSascha Wildner /*
4940d02842fSSascha Wildner  * Statistic globals
4950d02842fSSascha Wildner  */
4960d02842fSSascha Wildner ACPI_EXTERN UINT16                      AcpiGbl_ObjTypeCount[ACPI_TYPE_NS_NODE_MAX+1];
4970d02842fSSascha Wildner ACPI_EXTERN UINT16                      AcpiGbl_NodeTypeCount[ACPI_TYPE_NS_NODE_MAX+1];
4980d02842fSSascha Wildner ACPI_EXTERN UINT16                      AcpiGbl_ObjTypeCountMisc;
4990d02842fSSascha Wildner ACPI_EXTERN UINT16                      AcpiGbl_NodeTypeCountMisc;
5000d02842fSSascha Wildner ACPI_EXTERN UINT32                      AcpiGbl_NumNodes;
5010d02842fSSascha Wildner ACPI_EXTERN UINT32                      AcpiGbl_NumObjects;
5020d02842fSSascha Wildner 
5030d02842fSSascha Wildner 
5040d02842fSSascha Wildner ACPI_EXTERN UINT32                      AcpiGbl_SizeOfParseTree;
5050d02842fSSascha Wildner ACPI_EXTERN UINT32                      AcpiGbl_SizeOfMethodTrees;
5060d02842fSSascha Wildner ACPI_EXTERN UINT32                      AcpiGbl_SizeOfNodeEntries;
5070d02842fSSascha Wildner ACPI_EXTERN UINT32                      AcpiGbl_SizeOfAcpiObjects;
5080d02842fSSascha Wildner 
5090d02842fSSascha Wildner #endif /* ACPI_DEBUGGER */
5100d02842fSSascha Wildner 
5110d02842fSSascha Wildner 
5120d02842fSSascha Wildner /*****************************************************************************
5130d02842fSSascha Wildner  *
5140d02842fSSascha Wildner  * Application globals
5150d02842fSSascha Wildner  *
5160d02842fSSascha Wildner  ****************************************************************************/
5170d02842fSSascha Wildner 
5180d02842fSSascha Wildner #ifdef ACPI_APPLICATION
5190d02842fSSascha Wildner 
5200d02842fSSascha Wildner ACPI_FILE   ACPI_INIT_GLOBAL (AcpiGbl_DebugFile, NULL);
5210d02842fSSascha Wildner 
5220d02842fSSascha Wildner #endif /* ACPI_APPLICATION */
5230d02842fSSascha Wildner 
5240d02842fSSascha Wildner 
5250d02842fSSascha Wildner /*****************************************************************************
5260d02842fSSascha Wildner  *
5270d02842fSSascha Wildner  * Info/help support
5280d02842fSSascha Wildner  *
5290d02842fSSascha Wildner  ****************************************************************************/
5300d02842fSSascha Wildner 
5310d02842fSSascha Wildner extern const AH_PREDEFINED_NAME     AslPredefinedInfo[];
5320d02842fSSascha Wildner 
5330d02842fSSascha Wildner 
5340d02842fSSascha Wildner #endif /* __ACGLOBAL_H__ */
535