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