acglobal.h revision 228110
167754Smsmith/******************************************************************************
267754Smsmith *
367754Smsmith * Name: acglobal.h - Declarations for global variables
467754Smsmith *
567754Smsmith *****************************************************************************/
667754Smsmith
7217365Sjkim/*
8217365Sjkim * Copyright (C) 2000 - 2011, 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
153228110Sjkim
154193267Sjkim#endif
155193267Sjkim
156228110Sjkim/* Do not disassemble buffers to resource descriptors */
157228110Sjkim
158228110SjkimACPI_EXTERN UINT8       ACPI_INIT_GLOBAL (AcpiGbl_NoResourceDisassembly, FALSE);
159228110Sjkim
16067754Smsmith/*****************************************************************************
16167754Smsmith *
16267754Smsmith * ACPI Table globals
16367754Smsmith *
16467754Smsmith ****************************************************************************/
16567754Smsmith
16667754Smsmith/*
167207344Sjkim * AcpiGbl_RootTableList is the master list of ACPI tables that were
168207344Sjkim * found in the RSDT/XSDT.
16967754Smsmith */
170207344SjkimACPI_EXTERN ACPI_TABLE_LIST             AcpiGbl_RootTableList;
171193267SjkimACPI_EXTERN ACPI_TABLE_FACS            *AcpiGbl_FACS;
17269450Smsmith
173193267Sjkim/* These addresses are calculated from the FADT Event Block addresses */
174126372Snjl
175193267SjkimACPI_EXTERN ACPI_GENERIC_ADDRESS        AcpiGbl_XPm1aStatus;
176167802SjkimACPI_EXTERN ACPI_GENERIC_ADDRESS        AcpiGbl_XPm1aEnable;
177193267Sjkim
178193267SjkimACPI_EXTERN ACPI_GENERIC_ADDRESS        AcpiGbl_XPm1bStatus;
179167802SjkimACPI_EXTERN ACPI_GENERIC_ADDRESS        AcpiGbl_XPm1bEnable;
180151937Sjkim
181206117Sjkim/* DSDT information. Used to check for DSDT corruption */
182206117Sjkim
183206117SjkimACPI_EXTERN ACPI_TABLE_HEADER          *AcpiGbl_DSDT;
184206117SjkimACPI_EXTERN ACPI_TABLE_HEADER           AcpiGbl_OriginalDsdtHeader;
185206117Sjkim
18667754Smsmith/*
187167802Sjkim * Handle both ACPI 1.0 and ACPI 2.0 Integer widths. The integer width is
188167802Sjkim * determined by the revision of the DSDT: If the DSDT revision is less than
189167802Sjkim * 2, use only the lower 32 bits of the internal 64-bit Integer.
19099679Siwasaki */
19199679SiwasakiACPI_EXTERN UINT8                       AcpiGbl_IntegerBitWidth;
19299679SiwasakiACPI_EXTERN UINT8                       AcpiGbl_IntegerByteWidth;
193117521SnjlACPI_EXTERN UINT8                       AcpiGbl_IntegerNybbleWidth;
194123315Snjl
19567754Smsmith
196167802Sjkim/*****************************************************************************
197167802Sjkim *
198228110Sjkim * Mutual exclusion within ACPICA subsystem
199167802Sjkim *
200167802Sjkim ****************************************************************************/
201167802Sjkim
20267754Smsmith/*
203167802Sjkim * Predefined mutex objects. This array contains the
20467754Smsmith * actual OS mutex handles, indexed by the local ACPI_MUTEX_HANDLEs.
20567754Smsmith * (The table maps local handles to the real OS handles)
20667754Smsmith */
207167802SjkimACPI_EXTERN ACPI_MUTEX_INFO             AcpiGbl_MutexInfo[ACPI_NUM_MUTEX];
20867754Smsmith
209167802Sjkim/*
210167802Sjkim * Global lock mutex is an actual AML mutex object
211219707Sjkim * Global lock semaphore works in conjunction with the actual global lock
212219707Sjkim * Global lock spinlock is used for "pending" handshake
213167802Sjkim */
214167802SjkimACPI_EXTERN ACPI_OPERAND_OBJECT        *AcpiGbl_GlobalLockMutex;
215167802SjkimACPI_EXTERN ACPI_SEMAPHORE              AcpiGbl_GlobalLockSemaphore;
216219707SjkimACPI_EXTERN ACPI_SPINLOCK               AcpiGbl_GlobalLockPendingLock;
217167802SjkimACPI_EXTERN UINT16                      AcpiGbl_GlobalLockHandle;
218167802SjkimACPI_EXTERN BOOLEAN                     AcpiGbl_GlobalLockAcquired;
219167802SjkimACPI_EXTERN BOOLEAN                     AcpiGbl_GlobalLockPresent;
220219707SjkimACPI_EXTERN BOOLEAN                     AcpiGbl_GlobalLockPending;
22167754Smsmith
222167802Sjkim/*
223167802Sjkim * Spinlocks are used for interfaces that can be possibly called at
224167802Sjkim * interrupt level
225167802Sjkim */
226167802SjkimACPI_EXTERN ACPI_SPINLOCK               AcpiGbl_GpeLock;      /* For GPE data structs and registers */
227167802SjkimACPI_EXTERN ACPI_SPINLOCK               AcpiGbl_HardwareLock; /* For ACPI H/W except GPE registers */
228167802Sjkim
229210976Sjkim/* Mutex for _OSI support */
230210976Sjkim
231210976SjkimACPI_EXTERN ACPI_MUTEX                  AcpiGbl_OsiMutex;
232210976Sjkim
233193267Sjkim/* Reader/Writer lock is used for namespace walk and dynamic table unload */
234167802Sjkim
235193267SjkimACPI_EXTERN ACPI_RW_LOCK                AcpiGbl_NamespaceRwLock;
236193267Sjkim
237193267Sjkim
23867754Smsmith/*****************************************************************************
23967754Smsmith *
24067754Smsmith * Miscellaneous globals
24167754Smsmith *
24267754Smsmith ****************************************************************************/
24367754Smsmith
244151937Sjkim/* Object caches */
245151937Sjkim
246167802SjkimACPI_EXTERN ACPI_CACHE_T               *AcpiGbl_NamespaceCache;
247151937SjkimACPI_EXTERN ACPI_CACHE_T               *AcpiGbl_StateCache;
248151937SjkimACPI_EXTERN ACPI_CACHE_T               *AcpiGbl_PsNodeCache;
249151937SjkimACPI_EXTERN ACPI_CACHE_T               *AcpiGbl_PsNodeExtCache;
250151937SjkimACPI_EXTERN ACPI_CACHE_T               *AcpiGbl_OperandCache;
251151937Sjkim
252151937Sjkim/* Global handlers */
253151937Sjkim
254117521SnjlACPI_EXTERN ACPI_OBJECT_NOTIFY_HANDLER  AcpiGbl_DeviceNotify;
255117521SnjlACPI_EXTERN ACPI_OBJECT_NOTIFY_HANDLER  AcpiGbl_SystemNotify;
256138287SmarksACPI_EXTERN ACPI_EXCEPTION_HANDLER      AcpiGbl_ExceptionHandler;
25799679SiwasakiACPI_EXTERN ACPI_INIT_HANDLER           AcpiGbl_InitHandler;
258193267SjkimACPI_EXTERN ACPI_TABLE_HANDLER          AcpiGbl_TableHandler;
259193267SjkimACPI_EXTERN void                       *AcpiGbl_TableHandlerContext;
26067754SmsmithACPI_EXTERN ACPI_WALK_STATE            *AcpiGbl_BreakpointWalk;
261210976SjkimACPI_EXTERN ACPI_INTERFACE_HANDLER      AcpiGbl_InterfaceHandler;
26267754Smsmith
263167802Sjkim/* Owner ID support */
264167802Sjkim
265167802SjkimACPI_EXTERN UINT32                      AcpiGbl_OwnerIdMask[ACPI_NUM_OWNERID_MASKS];
266167802SjkimACPI_EXTERN UINT8                       AcpiGbl_LastOwnerIdIndex;
267167802SjkimACPI_EXTERN UINT8                       AcpiGbl_NextOwnerIdOffset;
268167802Sjkim
269218590Sjkim/* Initialization sequencing */
270218590Sjkim
271218590SjkimACPI_EXTERN BOOLEAN                     AcpiGbl_RegMethodsExecuted;
272218590Sjkim
273151937Sjkim/* Misc */
274151937Sjkim
27567754SmsmithACPI_EXTERN UINT32                      AcpiGbl_OriginalMode;
27667754SmsmithACPI_EXTERN UINT32                      AcpiGbl_RsdpOriginalLocation;
27767754SmsmithACPI_EXTERN UINT32                      AcpiGbl_NsLookupCount;
27867754SmsmithACPI_EXTERN UINT32                      AcpiGbl_PsFindCount;
27967754SmsmithACPI_EXTERN UINT16                      AcpiGbl_Pm1EnableRegisterSave;
28067754SmsmithACPI_EXTERN UINT8                       AcpiGbl_DebuggerConfiguration;
28167754SmsmithACPI_EXTERN BOOLEAN                     AcpiGbl_StepToNextCall;
28267754SmsmithACPI_EXTERN BOOLEAN                     AcpiGbl_AcpiHardwarePresent;
283104470SiwasakiACPI_EXTERN BOOLEAN                     AcpiGbl_EventsInitialized;
284193267SjkimACPI_EXTERN UINT8                       AcpiGbl_OsiData;
285210976SjkimACPI_EXTERN ACPI_INTERFACE_INFO        *AcpiGbl_SupportedInterfaces;
28667754Smsmith
287167802Sjkim
288167802Sjkim#ifndef DEFINE_ACPI_GLOBALS
289167802Sjkim
290167802Sjkim/* Exception codes */
291167802Sjkim
292167802Sjkimextern char const                       *AcpiGbl_ExceptionNames_Env[];
293167802Sjkimextern char const                       *AcpiGbl_ExceptionNames_Pgm[];
294167802Sjkimextern char const                       *AcpiGbl_ExceptionNames_Tbl[];
295167802Sjkimextern char const                       *AcpiGbl_ExceptionNames_Aml[];
296167802Sjkimextern char const                       *AcpiGbl_ExceptionNames_Ctrl[];
297167802Sjkim
298167802Sjkim/* Other miscellaneous */
299167802Sjkim
30077424Smsmithextern BOOLEAN                          AcpiGbl_Shutdown;
30177424Smsmithextern UINT32                           AcpiGbl_StartupFlags;
302126372Snjlextern const char                      *AcpiGbl_SleepStateNames[ACPI_S_STATE_COUNT];
303197104Sjkimextern const char                      *AcpiGbl_LowestDstateNames[ACPI_NUM_SxW_METHODS];
304197104Sjkimextern const char                      *AcpiGbl_HighestDstateNames[ACPI_NUM_SxD_METHODS];
30599679Siwasakiextern const ACPI_OPCODE_INFO           AcpiGbl_AmlOpInfo[AML_NUM_OPCODES];
306114237Snjlextern const char                      *AcpiGbl_RegionTypes[ACPI_NUM_PREDEFINED_REGIONS];
307167802Sjkim#endif
30867754Smsmith
30967754Smsmith
310167802Sjkim#ifdef ACPI_DBG_TRACK_ALLOCATIONS
311167802Sjkim
312167802Sjkim/* Lists for tracking memory allocations */
313167802Sjkim
314167802SjkimACPI_EXTERN ACPI_MEMORY_LIST           *AcpiGbl_GlobalList;
315167802SjkimACPI_EXTERN ACPI_MEMORY_LIST           *AcpiGbl_NsNodeList;
316167802SjkimACPI_EXTERN BOOLEAN                     AcpiGbl_DisplayFinalMemStats;
317209746SjkimACPI_EXTERN BOOLEAN                     AcpiGbl_DisableMemTracking;
318167802Sjkim#endif
319167802Sjkim
320167802Sjkim
32167754Smsmith/*****************************************************************************
32267754Smsmith *
32367754Smsmith * Namespace globals
32467754Smsmith *
32567754Smsmith ****************************************************************************/
32667754Smsmith
327127175Snjl#if !defined (ACPI_NO_METHOD_EXECUTION) || defined (ACPI_CONSTANT_EVAL_ONLY)
328102550Siwasaki#define NUM_PREDEFINED_NAMES            10
329102550Siwasaki#else
33067754Smsmith#define NUM_PREDEFINED_NAMES            9
331102550Siwasaki#endif
33267754Smsmith
33367754SmsmithACPI_EXTERN ACPI_NAMESPACE_NODE         AcpiGbl_RootNodeStruct;
33467754SmsmithACPI_EXTERN ACPI_NAMESPACE_NODE        *AcpiGbl_RootNode;
335128212SnjlACPI_EXTERN ACPI_NAMESPACE_NODE        *AcpiGbl_FadtGpeDevice;
336197104SjkimACPI_EXTERN ACPI_OPERAND_OBJECT        *AcpiGbl_ModuleCodeList;
33767754Smsmith
338197104Sjkim
339193267Sjkimextern const UINT8                      AcpiGbl_NsProperties [ACPI_NUM_NS_TYPES];
34091116Smsmithextern const ACPI_PREDEFINED_NAMES      AcpiGbl_PreDefinedNames [NUM_PREDEFINED_NAMES];
34167754Smsmith
342102550Siwasaki#ifdef ACPI_DEBUG_OUTPUT
34382367SmsmithACPI_EXTERN UINT32                      AcpiGbl_CurrentNodeCount;
34482367SmsmithACPI_EXTERN UINT32                      AcpiGbl_CurrentNodeSize;
34582367SmsmithACPI_EXTERN UINT32                      AcpiGbl_MaxConcurrentNodeCount;
346193267SjkimACPI_EXTERN ACPI_SIZE                  *AcpiGbl_EntryStackPointer;
347193267SjkimACPI_EXTERN ACPI_SIZE                  *AcpiGbl_LowestStackPointer;
34883174SmsmithACPI_EXTERN UINT32                      AcpiGbl_DeepestNesting;
34967754Smsmith#endif
35067754Smsmith
351151937Sjkim
35267754Smsmith/*****************************************************************************
35367754Smsmith *
35467754Smsmith * Interpreter globals
35567754Smsmith *
35667754Smsmith ****************************************************************************/
35767754Smsmith
35867754Smsmith
359117521SnjlACPI_EXTERN ACPI_THREAD_STATE          *AcpiGbl_CurrentWalkList;
36067754Smsmith
36167754Smsmith/* Control method single step flag */
36267754Smsmith
36367754SmsmithACPI_EXTERN UINT8                       AcpiGbl_CmSingleStep;
36467754Smsmith
36567754Smsmith
36667754Smsmith/*****************************************************************************
36767754Smsmith *
36891116Smsmith * Hardware globals
36991116Smsmith *
37091116Smsmith ****************************************************************************/
37167754Smsmith
37299679Siwasakiextern      ACPI_BIT_REGISTER_INFO      AcpiGbl_BitRegisterInfo[ACPI_NUM_BITREG];
37391116SmsmithACPI_EXTERN UINT8                       AcpiGbl_SleepTypeA;
37491116SmsmithACPI_EXTERN UINT8                       AcpiGbl_SleepTypeB;
37591116Smsmith
37691116Smsmith
37767754Smsmith/*****************************************************************************
37867754Smsmith *
37991116Smsmith * Event and GPE globals
38067754Smsmith *
38167754Smsmith ****************************************************************************/
38267754Smsmith
383216471SjkimACPI_EXTERN UINT8                       AcpiGbl_AllGpesInitialized;
384117521SnjlACPI_EXTERN ACPI_GPE_XRUPT_INFO        *AcpiGbl_GpeXruptListHead;
385117521SnjlACPI_EXTERN ACPI_GPE_BLOCK_INFO        *AcpiGbl_GpeFadtBlocks[ACPI_MAX_GPE_BLOCKS];
386216471SjkimACPI_EXTERN ACPI_GBL_EVENT_HANDLER      AcpiGbl_GlobalEventHandler;
387216471SjkimACPI_EXTERN void                       *AcpiGbl_GlobalEventHandlerContext;
388216471SjkimACPI_EXTERN ACPI_FIXED_EVENT_HANDLER    AcpiGbl_FixedEventHandlers[ACPI_NUM_FIXED_EVENTS];
389216471Sjkimextern      ACPI_FIXED_EVENT_INFO       AcpiGbl_FixedEventInfo[ACPI_NUM_FIXED_EVENTS];
39091116Smsmith
39167754Smsmith
39267754Smsmith/*****************************************************************************
39367754Smsmith *
394167802Sjkim * Debug support
395167802Sjkim *
396167802Sjkim ****************************************************************************/
397167802Sjkim
398167802Sjkim/* Procedure nesting level for debug output */
399167802Sjkim
400167802Sjkimextern      UINT32                      AcpiGbl_NestingLevel;
401167802Sjkim
402167802Sjkim/* Event counters */
403167802Sjkim
404193267SjkimACPI_EXTERN UINT32                      AcpiMethodCount;
405167802SjkimACPI_EXTERN UINT32                      AcpiGpeCount;
406193267SjkimACPI_EXTERN UINT32                      AcpiSciCount;
407193267SjkimACPI_EXTERN UINT32                      AcpiFixedEventCount[ACPI_NUM_FIXED_EVENTS];
408167802Sjkim
409167802Sjkim/* Support for dynamic control method tracing mechanism */
410167802Sjkim
411167802SjkimACPI_EXTERN UINT32                      AcpiGbl_OriginalDbgLevel;
412167802SjkimACPI_EXTERN UINT32                      AcpiGbl_OriginalDbgLayer;
413167802SjkimACPI_EXTERN UINT32                      AcpiGbl_TraceDbgLevel;
414167802SjkimACPI_EXTERN UINT32                      AcpiGbl_TraceDbgLayer;
415167802Sjkim
416167802Sjkim
417167802Sjkim/*****************************************************************************
418167802Sjkim *
41967754Smsmith * Debugger globals
42067754Smsmith *
42167754Smsmith ****************************************************************************/
42267754Smsmith
42391116SmsmithACPI_EXTERN UINT8                       AcpiGbl_DbOutputFlags;
42491116Smsmith
425100966Siwasaki#ifdef ACPI_DISASSEMBLER
42691116Smsmith
427100966SiwasakiACPI_EXTERN BOOLEAN                     AcpiGbl_DbOpt_disasm;
428100966SiwasakiACPI_EXTERN BOOLEAN                     AcpiGbl_DbOpt_verbose;
429198237SjkimACPI_EXTERN ACPI_EXTERNAL_LIST         *AcpiGbl_ExternalList;
430210976SjkimACPI_EXTERN ACPI_EXTERNAL_FILE         *AcpiGbl_ExternalFileList;
431100966Siwasaki#endif
432100966Siwasaki
433100966Siwasaki
434102550Siwasaki#ifdef ACPI_DEBUGGER
43591116Smsmith
43699679Siwasakiextern      BOOLEAN                     AcpiGbl_MethodExecuting;
437114237Snjlextern      BOOLEAN                     AcpiGbl_AbortMethod;
43899679Siwasakiextern      BOOLEAN                     AcpiGbl_DbTerminateThreads;
43967754Smsmith
44091116SmsmithACPI_EXTERN BOOLEAN                     AcpiGbl_DbOpt_tables;
44191116SmsmithACPI_EXTERN BOOLEAN                     AcpiGbl_DbOpt_stats;
44291116SmsmithACPI_EXTERN BOOLEAN                     AcpiGbl_DbOpt_ini_methods;
443193267SjkimACPI_EXTERN BOOLEAN                     AcpiGbl_DbOpt_NoRegionSupport;
44491116Smsmith
445114237SnjlACPI_EXTERN char                       *AcpiGbl_DbArgs[ACPI_DEBUGGER_MAX_ARGS];
446222544SjkimACPI_EXTERN ACPI_OBJECT_TYPE            AcpiGbl_DbArgTypes[ACPI_DEBUGGER_MAX_ARGS];
447222544SjkimACPI_EXTERN char                        AcpiGbl_DbLineBuf[ACPI_DB_LINE_BUFFER_SIZE];
448222544SjkimACPI_EXTERN char                        AcpiGbl_DbParsedBuf[ACPI_DB_LINE_BUFFER_SIZE];
449222544SjkimACPI_EXTERN char                        AcpiGbl_DbScopeBuf[80];
450222544SjkimACPI_EXTERN char                        AcpiGbl_DbDebugFilename[80];
45191116SmsmithACPI_EXTERN BOOLEAN                     AcpiGbl_DbOutputToFile;
452114237SnjlACPI_EXTERN char                       *AcpiGbl_DbBuffer;
453114237SnjlACPI_EXTERN char                       *AcpiGbl_DbFilename;
45491116SmsmithACPI_EXTERN UINT32                      AcpiGbl_DbDebugLevel;
45591116SmsmithACPI_EXTERN UINT32                      AcpiGbl_DbConsoleDebugLevel;
45691116SmsmithACPI_EXTERN ACPI_NAMESPACE_NODE        *AcpiGbl_DbScopeNode;
45791116Smsmith
45891116Smsmith/*
45991116Smsmith * Statistic globals
46091116Smsmith */
461107325SiwasakiACPI_EXTERN UINT16                      AcpiGbl_ObjTypeCount[ACPI_TYPE_NS_NODE_MAX+1];
462107325SiwasakiACPI_EXTERN UINT16                      AcpiGbl_NodeTypeCount[ACPI_TYPE_NS_NODE_MAX+1];
46391116SmsmithACPI_EXTERN UINT16                      AcpiGbl_ObjTypeCountMisc;
46491116SmsmithACPI_EXTERN UINT16                      AcpiGbl_NodeTypeCountMisc;
46591116SmsmithACPI_EXTERN UINT32                      AcpiGbl_NumNodes;
46691116SmsmithACPI_EXTERN UINT32                      AcpiGbl_NumObjects;
46791116Smsmith
46891116Smsmith
46991116SmsmithACPI_EXTERN UINT32                      AcpiGbl_SizeOfParseTree;
47091116SmsmithACPI_EXTERN UINT32                      AcpiGbl_SizeOfMethodTrees;
47191116SmsmithACPI_EXTERN UINT32                      AcpiGbl_SizeOfNodeEntries;
47291116SmsmithACPI_EXTERN UINT32                      AcpiGbl_SizeOfAcpiObjects;
47391116Smsmith
474102550Siwasaki#endif /* ACPI_DEBUGGER */
47591116Smsmith
47667754Smsmith#endif /* __ACGLOBAL_H__ */
477