xref: /freebsd/sys/contrib/dev/acpica/include/acglobal.h (revision 493deb390baef09f40125589cbdb714cb274ab04)
1a9f12690SJung-uk Kim /******************************************************************************
2a9f12690SJung-uk Kim  *
3a9f12690SJung-uk Kim  * Name: acglobal.h - Declarations for global variables
4a9f12690SJung-uk Kim  *
5a9f12690SJung-uk Kim  *****************************************************************************/
6a9f12690SJung-uk Kim 
7d244b227SJung-uk Kim /*
8f8146b88SJung-uk Kim  * Copyright (C) 2000 - 2016, Intel Corp.
9a9f12690SJung-uk Kim  * All rights reserved.
10a9f12690SJung-uk Kim  *
11d244b227SJung-uk Kim  * Redistribution and use in source and binary forms, with or without
12d244b227SJung-uk Kim  * modification, are permitted provided that the following conditions
13d244b227SJung-uk Kim  * are met:
14d244b227SJung-uk Kim  * 1. Redistributions of source code must retain the above copyright
15d244b227SJung-uk Kim  *    notice, this list of conditions, and the following disclaimer,
16d244b227SJung-uk Kim  *    without modification.
17d244b227SJung-uk Kim  * 2. Redistributions in binary form must reproduce at minimum a disclaimer
18d244b227SJung-uk Kim  *    substantially similar to the "NO WARRANTY" disclaimer below
19d244b227SJung-uk Kim  *    ("Disclaimer") and any redistribution must be conditioned upon
20d244b227SJung-uk Kim  *    including a substantially similar Disclaimer requirement for further
21d244b227SJung-uk Kim  *    binary redistribution.
22d244b227SJung-uk Kim  * 3. Neither the names of the above-listed copyright holders nor the names
23d244b227SJung-uk Kim  *    of any contributors may be used to endorse or promote products derived
24d244b227SJung-uk Kim  *    from this software without specific prior written permission.
25a9f12690SJung-uk Kim  *
26d244b227SJung-uk Kim  * Alternatively, this software may be distributed under the terms of the
27d244b227SJung-uk Kim  * GNU General Public License ("GPL") version 2 as published by the Free
28d244b227SJung-uk Kim  * Software Foundation.
29a9f12690SJung-uk Kim  *
30d244b227SJung-uk Kim  * NO WARRANTY
31d244b227SJung-uk Kim  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
32d244b227SJung-uk Kim  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
33d244b227SJung-uk Kim  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
34d244b227SJung-uk Kim  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
35d244b227SJung-uk Kim  * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
36d244b227SJung-uk Kim  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
37d244b227SJung-uk Kim  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
38d244b227SJung-uk Kim  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
39d244b227SJung-uk Kim  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
40d244b227SJung-uk Kim  * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
41d244b227SJung-uk Kim  * POSSIBILITY OF SUCH DAMAGES.
42d244b227SJung-uk Kim  */
43a9f12690SJung-uk Kim 
44a9f12690SJung-uk Kim #ifndef __ACGLOBAL_H__
45a9f12690SJung-uk Kim #define __ACGLOBAL_H__
46a9f12690SJung-uk Kim 
47a9f12690SJung-uk Kim 
48a9f12690SJung-uk Kim /*****************************************************************************
49a9f12690SJung-uk Kim  *
50313a0c13SJung-uk Kim  * Globals related to the ACPI tables
51a9f12690SJung-uk Kim  *
52a9f12690SJung-uk Kim  ****************************************************************************/
53a9f12690SJung-uk Kim 
54313a0c13SJung-uk Kim /* Master list of all ACPI tables that were found in the RSDT/XSDT */
55a9f12690SJung-uk Kim 
56313a0c13SJung-uk Kim ACPI_GLOBAL (ACPI_TABLE_LIST,           AcpiGbl_RootTableList);
57a9f12690SJung-uk Kim 
58313a0c13SJung-uk Kim /* DSDT information. Used to check for DSDT corruption */
59a9f12690SJung-uk Kim 
60313a0c13SJung-uk Kim ACPI_GLOBAL (ACPI_TABLE_HEADER *,       AcpiGbl_DSDT);
61313a0c13SJung-uk Kim ACPI_GLOBAL (ACPI_TABLE_HEADER,         AcpiGbl_OriginalDsdtHeader);
6270e6ab8fSJung-uk Kim ACPI_INIT_GLOBAL (UINT32,               AcpiGbl_DsdtIndex, ACPI_INVALID_TABLE_INDEX);
6370e6ab8fSJung-uk Kim ACPI_INIT_GLOBAL (UINT32,               AcpiGbl_FacsIndex, ACPI_INVALID_TABLE_INDEX);
6470e6ab8fSJung-uk Kim ACPI_INIT_GLOBAL (UINT32,               AcpiGbl_XFacsIndex, ACPI_INVALID_TABLE_INDEX);
65f8146b88SJung-uk Kim ACPI_INIT_GLOBAL (UINT32,               AcpiGbl_FadtIndex, ACPI_INVALID_TABLE_INDEX);
66a159c266SJung-uk Kim 
67a159c266SJung-uk Kim #if (!ACPI_REDUCED_HARDWARE)
68313a0c13SJung-uk Kim ACPI_GLOBAL (ACPI_TABLE_FACS *,         AcpiGbl_FACS);
69a9f12690SJung-uk Kim 
70a159c266SJung-uk Kim #endif /* !ACPI_REDUCED_HARDWARE */
71a159c266SJung-uk Kim 
72a9f12690SJung-uk Kim /* These addresses are calculated from the FADT Event Block addresses */
73a9f12690SJung-uk Kim 
74313a0c13SJung-uk Kim ACPI_GLOBAL (ACPI_GENERIC_ADDRESS,      AcpiGbl_XPm1aStatus);
75313a0c13SJung-uk Kim ACPI_GLOBAL (ACPI_GENERIC_ADDRESS,      AcpiGbl_XPm1aEnable);
76a9f12690SJung-uk Kim 
77313a0c13SJung-uk Kim ACPI_GLOBAL (ACPI_GENERIC_ADDRESS,      AcpiGbl_XPm1bStatus);
78313a0c13SJung-uk Kim ACPI_GLOBAL (ACPI_GENERIC_ADDRESS,      AcpiGbl_XPm1bEnable);
798c8be05fSJung-uk Kim 
80a9f12690SJung-uk Kim /*
81313a0c13SJung-uk Kim  * Handle both ACPI 1.0 and ACPI 2.0+ Integer widths. The integer width is
82a9f12690SJung-uk Kim  * determined by the revision of the DSDT: If the DSDT revision is less than
83a9f12690SJung-uk Kim  * 2, use only the lower 32 bits of the internal 64-bit Integer.
84a9f12690SJung-uk Kim  */
85313a0c13SJung-uk Kim ACPI_GLOBAL (UINT8,                     AcpiGbl_IntegerBitWidth);
86313a0c13SJung-uk Kim ACPI_GLOBAL (UINT8,                     AcpiGbl_IntegerByteWidth);
87313a0c13SJung-uk Kim ACPI_GLOBAL (UINT8,                     AcpiGbl_IntegerNybbleWidth);
88a9f12690SJung-uk Kim 
89a9f12690SJung-uk Kim 
90a9f12690SJung-uk Kim /*****************************************************************************
91a9f12690SJung-uk Kim  *
923f0275a0SJung-uk Kim  * Mutual exclusion within ACPICA subsystem
93a9f12690SJung-uk Kim  *
94a9f12690SJung-uk Kim  ****************************************************************************/
95a9f12690SJung-uk Kim 
96a9f12690SJung-uk Kim /*
97a9f12690SJung-uk Kim  * Predefined mutex objects. This array contains the
98a9f12690SJung-uk Kim  * actual OS mutex handles, indexed by the local ACPI_MUTEX_HANDLEs.
99a9f12690SJung-uk Kim  * (The table maps local handles to the real OS handles)
100a9f12690SJung-uk Kim  */
101313a0c13SJung-uk Kim ACPI_GLOBAL (ACPI_MUTEX_INFO,           AcpiGbl_MutexInfo[ACPI_NUM_MUTEX]);
102a9f12690SJung-uk Kim 
103a9f12690SJung-uk Kim /*
104a9f12690SJung-uk Kim  * Global lock mutex is an actual AML mutex object
105dcbce41eSJung-uk Kim  * Global lock semaphore works in conjunction with the actual global lock
106dcbce41eSJung-uk Kim  * Global lock spinlock is used for "pending" handshake
107a9f12690SJung-uk Kim  */
108313a0c13SJung-uk Kim ACPI_GLOBAL (ACPI_OPERAND_OBJECT *,     AcpiGbl_GlobalLockMutex);
109313a0c13SJung-uk Kim ACPI_GLOBAL (ACPI_SEMAPHORE,            AcpiGbl_GlobalLockSemaphore);
110313a0c13SJung-uk Kim ACPI_GLOBAL (ACPI_SPINLOCK,             AcpiGbl_GlobalLockPendingLock);
111313a0c13SJung-uk Kim ACPI_GLOBAL (UINT16,                    AcpiGbl_GlobalLockHandle);
112313a0c13SJung-uk Kim ACPI_GLOBAL (BOOLEAN,                   AcpiGbl_GlobalLockAcquired);
113313a0c13SJung-uk Kim ACPI_GLOBAL (BOOLEAN,                   AcpiGbl_GlobalLockPresent);
114313a0c13SJung-uk Kim ACPI_GLOBAL (BOOLEAN,                   AcpiGbl_GlobalLockPending);
115a9f12690SJung-uk Kim 
116a9f12690SJung-uk Kim /*
117a9f12690SJung-uk Kim  * Spinlocks are used for interfaces that can be possibly called at
118a9f12690SJung-uk Kim  * interrupt level
119a9f12690SJung-uk Kim  */
120313a0c13SJung-uk Kim ACPI_GLOBAL (ACPI_SPINLOCK,             AcpiGbl_GpeLock);       /* For GPE data structs and registers */
121313a0c13SJung-uk Kim ACPI_GLOBAL (ACPI_SPINLOCK,             AcpiGbl_HardwareLock);  /* For ACPI H/W except GPE registers */
122313a0c13SJung-uk Kim ACPI_GLOBAL (ACPI_SPINLOCK,             AcpiGbl_ReferenceCountLock);
123a9f12690SJung-uk Kim 
124709fac06SJung-uk Kim /* Mutex for _OSI support */
125709fac06SJung-uk Kim 
126313a0c13SJung-uk Kim ACPI_GLOBAL (ACPI_MUTEX,                AcpiGbl_OsiMutex);
127709fac06SJung-uk Kim 
128a9f12690SJung-uk Kim /* Reader/Writer lock is used for namespace walk and dynamic table unload */
129a9f12690SJung-uk Kim 
130313a0c13SJung-uk Kim ACPI_GLOBAL (ACPI_RW_LOCK,              AcpiGbl_NamespaceRwLock);
131a9f12690SJung-uk Kim 
132a9f12690SJung-uk Kim 
133a9f12690SJung-uk Kim /*****************************************************************************
134a9f12690SJung-uk Kim  *
135a9f12690SJung-uk Kim  * Miscellaneous globals
136a9f12690SJung-uk Kim  *
137a9f12690SJung-uk Kim  ****************************************************************************/
138a9f12690SJung-uk Kim 
139a9f12690SJung-uk Kim /* Object caches */
140a9f12690SJung-uk Kim 
141313a0c13SJung-uk Kim ACPI_GLOBAL (ACPI_CACHE_T *,            AcpiGbl_NamespaceCache);
142313a0c13SJung-uk Kim ACPI_GLOBAL (ACPI_CACHE_T *,            AcpiGbl_StateCache);
143313a0c13SJung-uk Kim ACPI_GLOBAL (ACPI_CACHE_T *,            AcpiGbl_PsNodeCache);
144313a0c13SJung-uk Kim ACPI_GLOBAL (ACPI_CACHE_T *,            AcpiGbl_PsNodeExtCache);
145313a0c13SJung-uk Kim ACPI_GLOBAL (ACPI_CACHE_T *,            AcpiGbl_OperandCache);
146313a0c13SJung-uk Kim 
147313a0c13SJung-uk Kim /* System */
148313a0c13SJung-uk Kim 
149313a0c13SJung-uk Kim ACPI_INIT_GLOBAL (UINT32,               AcpiGbl_StartupFlags, 0);
150313a0c13SJung-uk Kim ACPI_INIT_GLOBAL (BOOLEAN,              AcpiGbl_Shutdown, TRUE);
151f8146b88SJung-uk Kim ACPI_INIT_GLOBAL (BOOLEAN,              AcpiGbl_EarlyInitialization, TRUE);
152a9f12690SJung-uk Kim 
153a9f12690SJung-uk Kim /* Global handlers */
154a9f12690SJung-uk Kim 
155313a0c13SJung-uk Kim ACPI_GLOBAL (ACPI_GLOBAL_NOTIFY_HANDLER,AcpiGbl_GlobalNotify[2]);
156313a0c13SJung-uk Kim ACPI_GLOBAL (ACPI_EXCEPTION_HANDLER,    AcpiGbl_ExceptionHandler);
157313a0c13SJung-uk Kim ACPI_GLOBAL (ACPI_INIT_HANDLER,         AcpiGbl_InitHandler);
158313a0c13SJung-uk Kim ACPI_GLOBAL (ACPI_TABLE_HANDLER,        AcpiGbl_TableHandler);
159313a0c13SJung-uk Kim ACPI_GLOBAL (void *,                    AcpiGbl_TableHandlerContext);
160313a0c13SJung-uk Kim ACPI_GLOBAL (ACPI_INTERFACE_HANDLER,    AcpiGbl_InterfaceHandler);
161313a0c13SJung-uk Kim ACPI_GLOBAL (ACPI_SCI_HANDLER_INFO *,   AcpiGbl_SciHandlerList);
162a9f12690SJung-uk Kim 
163a9f12690SJung-uk Kim /* Owner ID support */
164a9f12690SJung-uk Kim 
165313a0c13SJung-uk Kim ACPI_GLOBAL (UINT32,                    AcpiGbl_OwnerIdMask[ACPI_NUM_OWNERID_MASKS]);
166313a0c13SJung-uk Kim ACPI_GLOBAL (UINT8,                     AcpiGbl_LastOwnerIdIndex);
167313a0c13SJung-uk Kim ACPI_GLOBAL (UINT8,                     AcpiGbl_NextOwnerIdOffset);
168a9f12690SJung-uk Kim 
1690b94ba42SJung-uk Kim /* Initialization sequencing */
1700b94ba42SJung-uk Kim 
171f8146b88SJung-uk Kim ACPI_INIT_GLOBAL (BOOLEAN,              AcpiGbl_NamespaceInitialized, FALSE);
1720b94ba42SJung-uk Kim 
173a9f12690SJung-uk Kim /* Misc */
174a9f12690SJung-uk Kim 
175313a0c13SJung-uk Kim ACPI_GLOBAL (UINT32,                    AcpiGbl_OriginalMode);
176313a0c13SJung-uk Kim ACPI_GLOBAL (UINT32,                    AcpiGbl_NsLookupCount);
177313a0c13SJung-uk Kim ACPI_GLOBAL (UINT32,                    AcpiGbl_PsFindCount);
178313a0c13SJung-uk Kim ACPI_GLOBAL (UINT16,                    AcpiGbl_Pm1EnableRegisterSave);
179313a0c13SJung-uk Kim ACPI_GLOBAL (UINT8,                     AcpiGbl_DebuggerConfiguration);
180313a0c13SJung-uk Kim ACPI_GLOBAL (BOOLEAN,                   AcpiGbl_StepToNextCall);
181313a0c13SJung-uk Kim ACPI_GLOBAL (BOOLEAN,                   AcpiGbl_AcpiHardwarePresent);
182313a0c13SJung-uk Kim ACPI_GLOBAL (BOOLEAN,                   AcpiGbl_EventsInitialized);
183313a0c13SJung-uk Kim ACPI_GLOBAL (ACPI_INTERFACE_INFO *,     AcpiGbl_SupportedInterfaces);
184313a0c13SJung-uk Kim ACPI_GLOBAL (ACPI_ADDRESS_RANGE *,      AcpiGbl_AddressRangeList[ACPI_ADDRESS_RANGE_MAX]);
185a9f12690SJung-uk Kim 
186313a0c13SJung-uk Kim /* Other miscellaneous, declared and initialized in utglobal */
187a9f12690SJung-uk Kim 
188a9f12690SJung-uk Kim extern const char                      *AcpiGbl_SleepStateNames[ACPI_S_STATE_COUNT];
189d6dd1baeSJung-uk Kim extern const char                      *AcpiGbl_LowestDstateNames[ACPI_NUM_SxW_METHODS];
190d6dd1baeSJung-uk Kim extern const char                      *AcpiGbl_HighestDstateNames[ACPI_NUM_SxD_METHODS];
191a9f12690SJung-uk Kim extern const char                      *AcpiGbl_RegionTypes[ACPI_NUM_PREDEFINED_REGIONS];
192f8146b88SJung-uk Kim extern const char                       AcpiGbl_LowerHexDigits[];
193f8146b88SJung-uk Kim extern const char                       AcpiGbl_UpperHexDigits[];
194313a0c13SJung-uk Kim extern const ACPI_OPCODE_INFO           AcpiGbl_AmlOpInfo[AML_NUM_OPCODES];
195a9f12690SJung-uk Kim 
196a9f12690SJung-uk Kim 
197a9f12690SJung-uk Kim #ifdef ACPI_DBG_TRACK_ALLOCATIONS
198a9f12690SJung-uk Kim 
199313a0c13SJung-uk Kim /* Lists for tracking memory allocations (debug only) */
200a9f12690SJung-uk Kim 
201313a0c13SJung-uk Kim ACPI_GLOBAL (ACPI_MEMORY_LIST *,        AcpiGbl_GlobalList);
202313a0c13SJung-uk Kim ACPI_GLOBAL (ACPI_MEMORY_LIST *,        AcpiGbl_NsNodeList);
203313a0c13SJung-uk Kim ACPI_GLOBAL (BOOLEAN,                   AcpiGbl_DisplayFinalMemStats);
204313a0c13SJung-uk Kim ACPI_GLOBAL (BOOLEAN,                   AcpiGbl_DisableMemTracking);
205a9f12690SJung-uk Kim #endif
206a9f12690SJung-uk Kim 
207a9f12690SJung-uk Kim 
208a9f12690SJung-uk Kim /*****************************************************************************
209a9f12690SJung-uk Kim  *
210a9f12690SJung-uk Kim  * Namespace globals
211a9f12690SJung-uk Kim  *
212a9f12690SJung-uk Kim  ****************************************************************************/
213a9f12690SJung-uk Kim 
214a9f12690SJung-uk Kim #if !defined (ACPI_NO_METHOD_EXECUTION) || defined (ACPI_CONSTANT_EVAL_ONLY)
215a9f12690SJung-uk Kim #define NUM_PREDEFINED_NAMES            10
216a9f12690SJung-uk Kim #else
217a9f12690SJung-uk Kim #define NUM_PREDEFINED_NAMES            9
218a9f12690SJung-uk Kim #endif
219a9f12690SJung-uk Kim 
220313a0c13SJung-uk Kim ACPI_GLOBAL (ACPI_NAMESPACE_NODE,       AcpiGbl_RootNodeStruct);
221313a0c13SJung-uk Kim ACPI_GLOBAL (ACPI_NAMESPACE_NODE *,     AcpiGbl_RootNode);
222313a0c13SJung-uk Kim ACPI_GLOBAL (ACPI_NAMESPACE_NODE *,     AcpiGbl_FadtGpeDevice);
223313a0c13SJung-uk Kim ACPI_GLOBAL (ACPI_OPERAND_OBJECT *,     AcpiGbl_ModuleCodeList);
224d6dd1baeSJung-uk Kim 
225a9f12690SJung-uk Kim 
226a9f12690SJung-uk Kim extern const UINT8                      AcpiGbl_NsProperties [ACPI_NUM_NS_TYPES];
227a9f12690SJung-uk Kim extern const ACPI_PREDEFINED_NAMES      AcpiGbl_PreDefinedNames [NUM_PREDEFINED_NAMES];
228a9f12690SJung-uk Kim 
229a9f12690SJung-uk Kim #ifdef ACPI_DEBUG_OUTPUT
230313a0c13SJung-uk Kim ACPI_GLOBAL (UINT32,                    AcpiGbl_CurrentNodeCount);
231313a0c13SJung-uk Kim ACPI_GLOBAL (UINT32,                    AcpiGbl_CurrentNodeSize);
232313a0c13SJung-uk Kim ACPI_GLOBAL (UINT32,                    AcpiGbl_MaxConcurrentNodeCount);
233313a0c13SJung-uk Kim ACPI_GLOBAL (ACPI_SIZE *,               AcpiGbl_EntryStackPointer);
234313a0c13SJung-uk Kim ACPI_GLOBAL (ACPI_SIZE *,               AcpiGbl_LowestStackPointer);
235313a0c13SJung-uk Kim ACPI_GLOBAL (UINT32,                    AcpiGbl_DeepestNesting);
236313a0c13SJung-uk Kim ACPI_INIT_GLOBAL (UINT32,               AcpiGbl_NestingLevel, 0);
237a9f12690SJung-uk Kim #endif
238a9f12690SJung-uk Kim 
239a9f12690SJung-uk Kim 
240a9f12690SJung-uk Kim /*****************************************************************************
241a9f12690SJung-uk Kim  *
242a9f12690SJung-uk Kim  * Interpreter globals
243a9f12690SJung-uk Kim  *
244a9f12690SJung-uk Kim  ****************************************************************************/
245a9f12690SJung-uk Kim 
246313a0c13SJung-uk Kim ACPI_GLOBAL (ACPI_THREAD_STATE *,       AcpiGbl_CurrentWalkList);
247a9f12690SJung-uk Kim 
248a9f12690SJung-uk Kim /* Control method single step flag */
249a9f12690SJung-uk Kim 
250313a0c13SJung-uk Kim ACPI_GLOBAL (UINT8,                     AcpiGbl_CmSingleStep);
251a9f12690SJung-uk Kim 
252a9f12690SJung-uk Kim 
253a9f12690SJung-uk Kim /*****************************************************************************
254a9f12690SJung-uk Kim  *
255a9f12690SJung-uk Kim  * Hardware globals
256a9f12690SJung-uk Kim  *
257a9f12690SJung-uk Kim  ****************************************************************************/
258a9f12690SJung-uk Kim 
259a9f12690SJung-uk Kim extern ACPI_BIT_REGISTER_INFO           AcpiGbl_BitRegisterInfo[ACPI_NUM_BITREG];
260313a0c13SJung-uk Kim 
261313a0c13SJung-uk Kim ACPI_GLOBAL (UINT8,                     AcpiGbl_SleepTypeA);
262313a0c13SJung-uk Kim ACPI_GLOBAL (UINT8,                     AcpiGbl_SleepTypeB);
263a9f12690SJung-uk Kim 
264a9f12690SJung-uk Kim 
265a9f12690SJung-uk Kim /*****************************************************************************
266a9f12690SJung-uk Kim  *
267a9f12690SJung-uk Kim  * Event and GPE globals
268a9f12690SJung-uk Kim  *
269a9f12690SJung-uk Kim  ****************************************************************************/
270a9f12690SJung-uk Kim 
271a159c266SJung-uk Kim #if (!ACPI_REDUCED_HARDWARE)
272a159c266SJung-uk Kim 
273313a0c13SJung-uk Kim ACPI_GLOBAL (UINT8,                     AcpiGbl_AllGpesInitialized);
274313a0c13SJung-uk Kim ACPI_GLOBAL (ACPI_GPE_XRUPT_INFO *,     AcpiGbl_GpeXruptListHead);
275313a0c13SJung-uk Kim ACPI_GLOBAL (ACPI_GPE_BLOCK_INFO *,     AcpiGbl_GpeFadtBlocks[ACPI_MAX_GPE_BLOCKS]);
276313a0c13SJung-uk Kim ACPI_GLOBAL (ACPI_GBL_EVENT_HANDLER,    AcpiGbl_GlobalEventHandler);
277313a0c13SJung-uk Kim ACPI_GLOBAL (void *,                    AcpiGbl_GlobalEventHandlerContext);
278313a0c13SJung-uk Kim ACPI_GLOBAL (ACPI_FIXED_EVENT_HANDLER,  AcpiGbl_FixedEventHandlers[ACPI_NUM_FIXED_EVENTS]);
279313a0c13SJung-uk Kim 
2805a77b11bSJung-uk Kim extern ACPI_FIXED_EVENT_INFO            AcpiGbl_FixedEventInfo[ACPI_NUM_FIXED_EVENTS];
281a9f12690SJung-uk Kim 
282a159c266SJung-uk Kim #endif /* !ACPI_REDUCED_HARDWARE */
283a9f12690SJung-uk Kim 
284a9f12690SJung-uk Kim /*****************************************************************************
285a9f12690SJung-uk Kim  *
286a9f12690SJung-uk Kim  * Debug support
287a9f12690SJung-uk Kim  *
288a9f12690SJung-uk Kim  ****************************************************************************/
289a9f12690SJung-uk Kim 
290a9f12690SJung-uk Kim /* Event counters */
291a9f12690SJung-uk Kim 
292313a0c13SJung-uk Kim ACPI_GLOBAL (UINT32,                    AcpiMethodCount);
293313a0c13SJung-uk Kim ACPI_GLOBAL (UINT32,                    AcpiGpeCount);
294313a0c13SJung-uk Kim ACPI_GLOBAL (UINT32,                    AcpiSciCount);
295313a0c13SJung-uk Kim ACPI_GLOBAL (UINT32,                    AcpiFixedEventCount[ACPI_NUM_FIXED_EVENTS]);
296a9f12690SJung-uk Kim 
297a9f12690SJung-uk Kim /* Support for dynamic control method tracing mechanism */
298a9f12690SJung-uk Kim 
299313a0c13SJung-uk Kim ACPI_GLOBAL (UINT32,                    AcpiGbl_OriginalDbgLevel);
300313a0c13SJung-uk Kim ACPI_GLOBAL (UINT32,                    AcpiGbl_OriginalDbgLayer);
301a9f12690SJung-uk Kim 
302a9f12690SJung-uk Kim 
303a9f12690SJung-uk Kim /*****************************************************************************
304a9f12690SJung-uk Kim  *
305efcc2a30SJung-uk Kim  * Debugger and Disassembler globals
306a9f12690SJung-uk Kim  *
307a9f12690SJung-uk Kim  ****************************************************************************/
308a9f12690SJung-uk Kim 
309313a0c13SJung-uk Kim ACPI_INIT_GLOBAL (UINT8,                AcpiGbl_DbOutputFlags, ACPI_DB_CONSOLE_OUTPUT);
310a9f12690SJung-uk Kim 
311a9f12690SJung-uk Kim #ifdef ACPI_DISASSEMBLER
312a9f12690SJung-uk Kim 
313313a0c13SJung-uk Kim /* Do not disassemble buffers to resource descriptors */
314efcc2a30SJung-uk Kim 
315313a0c13SJung-uk Kim ACPI_INIT_GLOBAL (UINT8,                AcpiGbl_NoResourceDisassembly, FALSE);
316313a0c13SJung-uk Kim ACPI_INIT_GLOBAL (BOOLEAN,              AcpiGbl_IgnoreNoopOperator, FALSE);
3171c0e1b6dSJung-uk Kim ACPI_INIT_GLOBAL (BOOLEAN,              AcpiGbl_CstyleDisassembly, TRUE);
3187cf3e94aSJung-uk Kim ACPI_INIT_GLOBAL (BOOLEAN,              AcpiGbl_ForceAmlDisassembly, FALSE);
31970e6ab8fSJung-uk Kim ACPI_INIT_GLOBAL (BOOLEAN,              AcpiGbl_DmOpt_Verbose, TRUE);
3203920312eSJung-uk Kim ACPI_INIT_GLOBAL (BOOLEAN,              AcpiGbl_DmEmitExternalOpcodes, FALSE);
321*493deb39SJung-uk Kim ACPI_INIT_GLOBAL (BOOLEAN,              AcpiGbl_DoDisassemblerOptimizations, TRUE);
322313a0c13SJung-uk Kim 
32370e6ab8fSJung-uk Kim ACPI_GLOBAL (BOOLEAN,                   AcpiGbl_DmOpt_Disasm);
32470e6ab8fSJung-uk Kim ACPI_GLOBAL (BOOLEAN,                   AcpiGbl_DmOpt_Listing);
325313a0c13SJung-uk Kim ACPI_GLOBAL (BOOLEAN,                   AcpiGbl_NumExternalMethods);
326313a0c13SJung-uk Kim ACPI_GLOBAL (UINT32,                    AcpiGbl_ResolvedExternalMethods);
327313a0c13SJung-uk Kim ACPI_GLOBAL (ACPI_EXTERNAL_LIST *,      AcpiGbl_ExternalList);
328313a0c13SJung-uk Kim ACPI_GLOBAL (ACPI_EXTERNAL_FILE *,      AcpiGbl_ExternalFileList);
329a9f12690SJung-uk Kim #endif
330a9f12690SJung-uk Kim 
331a9f12690SJung-uk Kim #ifdef ACPI_DEBUGGER
332a9f12690SJung-uk Kim 
333313a0c13SJung-uk Kim ACPI_INIT_GLOBAL (BOOLEAN,              AcpiGbl_AbortMethod, FALSE);
334313a0c13SJung-uk Kim ACPI_INIT_GLOBAL (BOOLEAN,              AcpiGbl_MethodExecuting, FALSE);
335f8146b88SJung-uk Kim ACPI_INIT_GLOBAL (ACPI_THREAD_ID,       AcpiGbl_DbThreadId, ACPI_INVALID_THREAD_ID);
336a9f12690SJung-uk Kim 
3377cf3e94aSJung-uk Kim ACPI_GLOBAL (BOOLEAN,                   AcpiGbl_DbOpt_NoIniMethods);
338313a0c13SJung-uk Kim ACPI_GLOBAL (BOOLEAN,                   AcpiGbl_DbOpt_NoRegionSupport);
339313a0c13SJung-uk Kim ACPI_GLOBAL (BOOLEAN,                   AcpiGbl_DbOutputToFile);
340313a0c13SJung-uk Kim ACPI_GLOBAL (char *,                    AcpiGbl_DbBuffer);
341313a0c13SJung-uk Kim ACPI_GLOBAL (char *,                    AcpiGbl_DbFilename);
342313a0c13SJung-uk Kim ACPI_GLOBAL (UINT32,                    AcpiGbl_DbDebugLevel);
343313a0c13SJung-uk Kim ACPI_GLOBAL (UINT32,                    AcpiGbl_DbConsoleDebugLevel);
344313a0c13SJung-uk Kim ACPI_GLOBAL (ACPI_NAMESPACE_NODE *,     AcpiGbl_DbScopeNode);
345f8146b88SJung-uk Kim ACPI_GLOBAL (BOOLEAN,                   AcpiGbl_DbTerminateLoop);
346f8146b88SJung-uk Kim ACPI_GLOBAL (BOOLEAN,                   AcpiGbl_DbThreadsTerminated);
347a9f12690SJung-uk Kim 
348313a0c13SJung-uk Kim ACPI_GLOBAL (char *,                    AcpiGbl_DbArgs[ACPI_DEBUGGER_MAX_ARGS]);
349313a0c13SJung-uk Kim ACPI_GLOBAL (ACPI_OBJECT_TYPE,          AcpiGbl_DbArgTypes[ACPI_DEBUGGER_MAX_ARGS]);
35079c6d946SJung-uk Kim 
35179c6d946SJung-uk Kim /* These buffers should all be the same size */
35279c6d946SJung-uk Kim 
353313a0c13SJung-uk Kim ACPI_GLOBAL (char,                      AcpiGbl_DbLineBuf[ACPI_DB_LINE_BUFFER_SIZE]);
354313a0c13SJung-uk Kim ACPI_GLOBAL (char,                      AcpiGbl_DbParsedBuf[ACPI_DB_LINE_BUFFER_SIZE]);
355313a0c13SJung-uk Kim ACPI_GLOBAL (char,                      AcpiGbl_DbScopeBuf[ACPI_DB_LINE_BUFFER_SIZE]);
356313a0c13SJung-uk Kim ACPI_GLOBAL (char,                      AcpiGbl_DbDebugFilename[ACPI_DB_LINE_BUFFER_SIZE]);
35779c6d946SJung-uk Kim 
358a9f12690SJung-uk Kim /*
359a9f12690SJung-uk Kim  * Statistic globals
360a9f12690SJung-uk Kim  */
36170e6ab8fSJung-uk Kim ACPI_GLOBAL (UINT16,                    AcpiGbl_ObjTypeCount[ACPI_TOTAL_TYPES]);
36270e6ab8fSJung-uk Kim ACPI_GLOBAL (UINT16,                    AcpiGbl_NodeTypeCount[ACPI_TOTAL_TYPES]);
363313a0c13SJung-uk Kim ACPI_GLOBAL (UINT16,                    AcpiGbl_ObjTypeCountMisc);
364313a0c13SJung-uk Kim ACPI_GLOBAL (UINT16,                    AcpiGbl_NodeTypeCountMisc);
365313a0c13SJung-uk Kim ACPI_GLOBAL (UINT32,                    AcpiGbl_NumNodes);
366313a0c13SJung-uk Kim ACPI_GLOBAL (UINT32,                    AcpiGbl_NumObjects);
367a9f12690SJung-uk Kim 
368f8146b88SJung-uk Kim ACPI_GLOBAL (ACPI_MUTEX,                AcpiGbl_DbCommandReady);
369f8146b88SJung-uk Kim ACPI_GLOBAL (ACPI_MUTEX,                AcpiGbl_DbCommandComplete);
370f8146b88SJung-uk Kim 
371a9f12690SJung-uk Kim #endif /* ACPI_DEBUGGER */
372a9f12690SJung-uk Kim 
373f8146b88SJung-uk Kim #if defined (ACPI_DISASSEMBLER) || defined (ACPI_ASL_COMPILER)
374f8146b88SJung-uk Kim 
375f8146b88SJung-uk Kim ACPI_GLOBAL (const char,                *AcpiGbl_PldPanelList[]);
376f8146b88SJung-uk Kim ACPI_GLOBAL (const char,                *AcpiGbl_PldVerticalPositionList[]);
377f8146b88SJung-uk Kim ACPI_GLOBAL (const char,                *AcpiGbl_PldHorizontalPositionList[]);
378f8146b88SJung-uk Kim ACPI_GLOBAL (const char,                *AcpiGbl_PldShapeList[]);
379f8146b88SJung-uk Kim 
380f8146b88SJung-uk Kim #endif
381f38b0f21SJung-uk Kim 
382f38b0f21SJung-uk Kim /*****************************************************************************
383f38b0f21SJung-uk Kim  *
384313a0c13SJung-uk Kim  * Application globals
385313a0c13SJung-uk Kim  *
386313a0c13SJung-uk Kim  ****************************************************************************/
387313a0c13SJung-uk Kim 
388313a0c13SJung-uk Kim #ifdef ACPI_APPLICATION
389313a0c13SJung-uk Kim 
390313a0c13SJung-uk Kim ACPI_INIT_GLOBAL (ACPI_FILE,            AcpiGbl_DebugFile, NULL);
391313a0c13SJung-uk Kim ACPI_INIT_GLOBAL (ACPI_FILE,            AcpiGbl_OutputFile, NULL);
392*493deb39SJung-uk Kim ACPI_INIT_GLOBAL (BOOLEAN,              AcpiGbl_DebugTimeout, FALSE);
393313a0c13SJung-uk Kim 
394313a0c13SJung-uk Kim /* Print buffer */
395313a0c13SJung-uk Kim 
396313a0c13SJung-uk Kim ACPI_GLOBAL (ACPI_SPINLOCK,             AcpiGbl_PrintLock);     /* For print buffer */
397313a0c13SJung-uk Kim ACPI_GLOBAL (char,                      AcpiGbl_PrintBuffer[1024]);
398313a0c13SJung-uk Kim 
399313a0c13SJung-uk Kim #endif /* ACPI_APPLICATION */
400313a0c13SJung-uk Kim 
401313a0c13SJung-uk Kim 
402313a0c13SJung-uk Kim /*****************************************************************************
403313a0c13SJung-uk Kim  *
404f38b0f21SJung-uk Kim  * Info/help support
405f38b0f21SJung-uk Kim  *
406f38b0f21SJung-uk Kim  ****************************************************************************/
407f38b0f21SJung-uk Kim 
408f38b0f21SJung-uk Kim extern const AH_PREDEFINED_NAME         AslPredefinedInfo[];
409313a0c13SJung-uk Kim extern const AH_DEVICE_ID               AslDeviceIds[];
410f38b0f21SJung-uk Kim 
411f38b0f21SJung-uk Kim 
412a9f12690SJung-uk Kim #endif /* __ACGLOBAL_H__ */
413