1/******************************************************************************
2 *
3 * Name: acglobal.h - Declarations for global variables
4 *
5 *****************************************************************************/
6
7/*
8 * Copyright (C) 2000 - 2023, Intel Corp.
9 * All rights reserved.
10 *
11 * Redistribution and use in source and binary forms, with or without
12 * modification, are permitted provided that the following conditions
13 * are met:
14 * 1. Redistributions of source code must retain the above copyright
15 *    notice, this list of conditions, and the following disclaimer,
16 *    without modification.
17 * 2. Redistributions in binary form must reproduce at minimum a disclaimer
18 *    substantially similar to the "NO WARRANTY" disclaimer below
19 *    ("Disclaimer") and any redistribution must be conditioned upon
20 *    including a substantially similar Disclaimer requirement for further
21 *    binary redistribution.
22 * 3. Neither the names of the above-listed copyright holders nor the names
23 *    of any contributors may be used to endorse or promote products derived
24 *    from this software without specific prior written permission.
25 *
26 * Alternatively, this software may be distributed under the terms of the
27 * GNU General Public License ("GPL") version 2 as published by the Free
28 * Software Foundation.
29 *
30 * NO WARRANTY
31 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
32 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
33 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
34 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
35 * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
36 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
37 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
38 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
39 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
40 * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
41 * POSSIBILITY OF SUCH DAMAGES.
42 */
43
44#ifndef __ACGLOBAL_H__
45#define __ACGLOBAL_H__
46
47
48/*****************************************************************************
49 *
50 * Globals related to the incoming ACPI tables
51 *
52 ****************************************************************************/
53
54/* Master list of all ACPI tables that were found in the RSDT/XSDT */
55
56ACPI_GLOBAL (ACPI_TABLE_LIST,           AcpiGbl_RootTableList);
57
58/* DSDT information. Used to check for DSDT corruption */
59
60ACPI_GLOBAL (ACPI_TABLE_HEADER *,       AcpiGbl_DSDT);
61ACPI_GLOBAL (ACPI_TABLE_HEADER,         AcpiGbl_OriginalDsdtHeader);
62ACPI_INIT_GLOBAL (char *,               AcpiGbl_CDAT, NULL);
63ACPI_INIT_GLOBAL (UINT32,               AcpiGbl_DsdtIndex, ACPI_INVALID_TABLE_INDEX);
64ACPI_INIT_GLOBAL (UINT32,               AcpiGbl_FacsIndex, ACPI_INVALID_TABLE_INDEX);
65ACPI_INIT_GLOBAL (UINT32,               AcpiGbl_XFacsIndex, ACPI_INVALID_TABLE_INDEX);
66ACPI_INIT_GLOBAL (UINT32,               AcpiGbl_FadtIndex, ACPI_INVALID_TABLE_INDEX);
67
68#if (!ACPI_REDUCED_HARDWARE)
69ACPI_GLOBAL (ACPI_TABLE_FACS *,         AcpiGbl_FACS);
70
71#endif /* !ACPI_REDUCED_HARDWARE */
72
73/* These addresses are calculated from the FADT Event Block addresses */
74
75ACPI_GLOBAL (ACPI_GENERIC_ADDRESS,      AcpiGbl_XPm1aStatus);
76ACPI_GLOBAL (ACPI_GENERIC_ADDRESS,      AcpiGbl_XPm1aEnable);
77
78ACPI_GLOBAL (ACPI_GENERIC_ADDRESS,      AcpiGbl_XPm1bStatus);
79ACPI_GLOBAL (ACPI_GENERIC_ADDRESS,      AcpiGbl_XPm1bEnable);
80
81/*
82 * Handle both ACPI 1.0 and ACPI 2.0+ Integer widths. The integer width is
83 * determined by the revision of the DSDT: If the DSDT revision is less than
84 * 2, use only the lower 32 bits of the internal 64-bit Integer.
85 */
86ACPI_GLOBAL (UINT8,                     AcpiGbl_IntegerBitWidth);
87ACPI_GLOBAL (UINT8,                     AcpiGbl_IntegerByteWidth);
88ACPI_GLOBAL (UINT8,                     AcpiGbl_IntegerNybbleWidth);
89
90
91/*****************************************************************************
92 *
93 * Mutual exclusion within the ACPICA subsystem
94 *
95 ****************************************************************************/
96
97/*
98 * Predefined mutex objects. This array contains the
99 * actual OS mutex handles, indexed by the local ACPI_MUTEX_HANDLEs.
100 * (The table maps local handles to the real OS handles)
101 */
102ACPI_GLOBAL (ACPI_MUTEX_INFO,           AcpiGbl_MutexInfo[ACPI_NUM_MUTEX]);
103
104/*
105 * Global lock mutex is an actual AML mutex object
106 * Global lock semaphore works in conjunction with the actual global lock
107 * Global lock spinlock is used for "pending" handshake
108 */
109ACPI_GLOBAL (ACPI_OPERAND_OBJECT *,     AcpiGbl_GlobalLockMutex);
110ACPI_GLOBAL (ACPI_SEMAPHORE,            AcpiGbl_GlobalLockSemaphore);
111ACPI_GLOBAL (ACPI_SPINLOCK,             AcpiGbl_GlobalLockPendingLock);
112ACPI_GLOBAL (UINT16,                    AcpiGbl_GlobalLockHandle);
113ACPI_GLOBAL (BOOLEAN,                   AcpiGbl_GlobalLockAcquired);
114ACPI_GLOBAL (BOOLEAN,                   AcpiGbl_GlobalLockPresent);
115ACPI_GLOBAL (BOOLEAN,                   AcpiGbl_GlobalLockPending);
116
117/*
118 * Spinlocks are used for interfaces that can be possibly called at
119 * interrupt level
120 */
121ACPI_GLOBAL (ACPI_SPINLOCK,             AcpiGbl_GpeLock);       /* For GPE data structs and registers */
122ACPI_GLOBAL (ACPI_SPINLOCK,             AcpiGbl_HardwareLock);  /* For ACPI H/W except GPE registers */
123ACPI_GLOBAL (ACPI_SPINLOCK,             AcpiGbl_ReferenceCountLock);
124
125/* Mutex for _OSI support */
126
127ACPI_GLOBAL (ACPI_MUTEX,                AcpiGbl_OsiMutex);
128
129/* Reader/Writer lock is used for namespace walk and dynamic table unload */
130
131ACPI_GLOBAL (ACPI_RW_LOCK,              AcpiGbl_NamespaceRwLock);
132
133
134/*****************************************************************************
135 *
136 * Miscellaneous globals
137 *
138 ****************************************************************************/
139
140/* Object caches */
141
142ACPI_GLOBAL (ACPI_CACHE_T *,            AcpiGbl_NamespaceCache);
143ACPI_GLOBAL (ACPI_CACHE_T *,            AcpiGbl_StateCache);
144ACPI_GLOBAL (ACPI_CACHE_T *,            AcpiGbl_PsNodeCache);
145ACPI_GLOBAL (ACPI_CACHE_T *,            AcpiGbl_PsNodeExtCache);
146ACPI_GLOBAL (ACPI_CACHE_T *,            AcpiGbl_OperandCache);
147
148/* System */
149
150ACPI_INIT_GLOBAL (UINT32,               AcpiGbl_StartupFlags, 0);
151ACPI_INIT_GLOBAL (BOOLEAN,              AcpiGbl_Shutdown, TRUE);
152ACPI_INIT_GLOBAL (BOOLEAN,              AcpiGbl_EarlyInitialization, TRUE);
153
154/* Global handlers */
155
156ACPI_GLOBAL (ACPI_GLOBAL_NOTIFY_HANDLER,AcpiGbl_GlobalNotify[2]);
157ACPI_GLOBAL (ACPI_EXCEPTION_HANDLER,    AcpiGbl_ExceptionHandler);
158ACPI_GLOBAL (ACPI_INIT_HANDLER,         AcpiGbl_InitHandler);
159ACPI_GLOBAL (ACPI_TABLE_HANDLER,        AcpiGbl_TableHandler);
160ACPI_GLOBAL (void *,                    AcpiGbl_TableHandlerContext);
161ACPI_GLOBAL (ACPI_INTERFACE_HANDLER,    AcpiGbl_InterfaceHandler);
162ACPI_GLOBAL (ACPI_SCI_HANDLER_INFO *,   AcpiGbl_SciHandlerList);
163ACPI_GLOBAL (ACPI_GED_HANDLER_INFO *,   AcpiGbl_GedHandlerList);
164
165/* Owner ID support */
166
167ACPI_GLOBAL (UINT32,                    AcpiGbl_OwnerIdMask[ACPI_NUM_OWNERID_MASKS]);
168ACPI_GLOBAL (UINT8,                     AcpiGbl_LastOwnerIdIndex);
169ACPI_GLOBAL (UINT8,                     AcpiGbl_NextOwnerIdOffset);
170
171/* Initialization sequencing */
172
173ACPI_INIT_GLOBAL (BOOLEAN,              AcpiGbl_NamespaceInitialized, FALSE);
174
175/* Miscellaneous */
176
177ACPI_GLOBAL (UINT32,                    AcpiGbl_OriginalMode);
178ACPI_GLOBAL (UINT32,                    AcpiGbl_NsLookupCount);
179ACPI_GLOBAL (UINT32,                    AcpiGbl_PsFindCount);
180ACPI_GLOBAL (UINT16,                    AcpiGbl_Pm1EnableRegisterSave);
181ACPI_GLOBAL (UINT8,                     AcpiGbl_DebuggerConfiguration);
182ACPI_GLOBAL (BOOLEAN,                   AcpiGbl_StepToNextCall);
183ACPI_GLOBAL (BOOLEAN,                   AcpiGbl_AcpiHardwarePresent);
184ACPI_GLOBAL (BOOLEAN,                   AcpiGbl_EventsInitialized);
185ACPI_GLOBAL (ACPI_INTERFACE_INFO *,     AcpiGbl_SupportedInterfaces);
186ACPI_GLOBAL (ACPI_ADDRESS_RANGE *,      AcpiGbl_AddressRangeList[ACPI_ADDRESS_RANGE_MAX]);
187
188/* Other miscellaneous, declared and initialized in utglobal */
189
190extern const char                      *AcpiGbl_SleepStateNames[ACPI_S_STATE_COUNT];
191extern const char                      *AcpiGbl_LowestDstateNames[ACPI_NUM_SxW_METHODS];
192extern const char                      *AcpiGbl_HighestDstateNames[ACPI_NUM_SxD_METHODS];
193extern const char                      *AcpiGbl_RegionTypes[ACPI_NUM_PREDEFINED_REGIONS];
194extern const char                       AcpiGbl_LowerHexDigits[];
195extern const char                       AcpiGbl_UpperHexDigits[];
196extern const ACPI_OPCODE_INFO           AcpiGbl_AmlOpInfo[AML_NUM_OPCODES];
197
198/* Lists for tracking memory allocations (debug only) */
199
200#ifdef ACPI_DBG_TRACK_ALLOCATIONS
201ACPI_GLOBAL (ACPI_MEMORY_LIST *,        AcpiGbl_GlobalList);
202ACPI_GLOBAL (ACPI_MEMORY_LIST *,        AcpiGbl_NsNodeList);
203ACPI_GLOBAL (BOOLEAN,                   AcpiGbl_DisplayFinalMemStats);
204ACPI_GLOBAL (BOOLEAN,                   AcpiGbl_DisableMemTracking);
205ACPI_GLOBAL (BOOLEAN,                   AcpiGbl_VerboseLeakDump);
206#endif
207
208
209/*****************************************************************************
210 *
211 * ACPI Namespace
212 *
213 ****************************************************************************/
214
215#define NUM_PREDEFINED_NAMES            10
216
217ACPI_GLOBAL (ACPI_NAMESPACE_NODE,       AcpiGbl_RootNodeStruct);
218ACPI_GLOBAL (ACPI_NAMESPACE_NODE *,     AcpiGbl_RootNode);
219ACPI_GLOBAL (ACPI_NAMESPACE_NODE *,     AcpiGbl_FadtGpeDevice);
220
221extern const UINT8                      AcpiGbl_NsProperties [ACPI_NUM_NS_TYPES];
222extern const ACPI_PREDEFINED_NAMES      AcpiGbl_PreDefinedNames [NUM_PREDEFINED_NAMES];
223
224#ifdef ACPI_DEBUG_OUTPUT
225ACPI_GLOBAL (UINT32,                    AcpiGbl_CurrentNodeCount);
226ACPI_GLOBAL (UINT32,                    AcpiGbl_CurrentNodeSize);
227ACPI_GLOBAL (UINT32,                    AcpiGbl_MaxConcurrentNodeCount);
228ACPI_GLOBAL (ACPI_SIZE *,               AcpiGbl_EntryStackPointer);
229ACPI_GLOBAL (ACPI_SIZE *,               AcpiGbl_LowestStackPointer);
230ACPI_GLOBAL (UINT32,                    AcpiGbl_DeepestNesting);
231ACPI_INIT_GLOBAL (UINT32,               AcpiGbl_NestingLevel, 0);
232#endif
233
234
235/*****************************************************************************
236 *
237 * Interpreter/Parser globals
238 *
239 ****************************************************************************/
240
241/* Control method single step flag */
242
243ACPI_GLOBAL (UINT8,                     AcpiGbl_CmSingleStep);
244ACPI_GLOBAL (ACPI_THREAD_STATE *,       AcpiGbl_CurrentWalkList);
245ACPI_INIT_GLOBAL (ACPI_PARSE_OBJECT,   *AcpiGbl_CurrentScope, NULL);
246
247/* ASL/ASL+ converter */
248
249ACPI_INIT_GLOBAL (BOOLEAN,              AcpiGbl_CaptureComments, FALSE);
250ACPI_INIT_GLOBAL (ACPI_COMMENT_NODE,   *AcpiGbl_LastListHead, NULL);
251
252
253/*****************************************************************************
254 *
255 * Hardware globals
256 *
257 ****************************************************************************/
258
259extern ACPI_BIT_REGISTER_INFO           AcpiGbl_BitRegisterInfo[ACPI_NUM_BITREG];
260ACPI_GLOBAL (UINT8,                     AcpiGbl_SleepTypeA);
261ACPI_GLOBAL (UINT8,                     AcpiGbl_SleepTypeB);
262ACPI_GLOBAL (UINT8,                     AcpiGbl_SleepTypeAS0);
263ACPI_GLOBAL (UINT8,                     AcpiGbl_SleepTypeBS0);
264
265
266/*****************************************************************************
267 *
268 * Event and GPE globals
269 *
270 ****************************************************************************/
271
272#if (!ACPI_REDUCED_HARDWARE)
273ACPI_GLOBAL (UINT8,                     AcpiGbl_AllGpesInitialized);
274ACPI_GLOBAL (ACPI_GPE_XRUPT_INFO *,     AcpiGbl_GpeXruptListHead);
275ACPI_GLOBAL (ACPI_GPE_BLOCK_INFO *,     AcpiGbl_GpeFadtBlocks[ACPI_MAX_GPE_BLOCKS]);
276ACPI_GLOBAL (ACPI_GBL_EVENT_HANDLER,    AcpiGbl_GlobalEventHandler);
277ACPI_GLOBAL (void *,                    AcpiGbl_GlobalEventHandlerContext);
278ACPI_GLOBAL (ACPI_FIXED_EVENT_HANDLER,  AcpiGbl_FixedEventHandlers[ACPI_NUM_FIXED_EVENTS]);
279extern ACPI_FIXED_EVENT_INFO            AcpiGbl_FixedEventInfo[ACPI_NUM_FIXED_EVENTS];
280#endif /* !ACPI_REDUCED_HARDWARE */
281
282
283/*****************************************************************************
284 *
285 * Debug support
286 *
287 ****************************************************************************/
288
289/* Event counters */
290
291ACPI_GLOBAL (UINT64,                    AcpiMethodCount);
292ACPI_GLOBAL (UINT64,                    AcpiGpeCount);
293ACPI_GLOBAL (UINT64,                    AcpiSciCount);
294ACPI_GLOBAL (UINT64,                    AcpiFixedEventCount[ACPI_NUM_FIXED_EVENTS]);
295
296/* Dynamic control method tracing mechanism */
297
298ACPI_GLOBAL (UINT32,                    AcpiGbl_OriginalDbgLevel);
299ACPI_GLOBAL (UINT32,                    AcpiGbl_OriginalDbgLayer);
300
301
302/*****************************************************************************
303 *
304 * Debugger and Disassembler
305 *
306 ****************************************************************************/
307
308ACPI_INIT_GLOBAL (UINT8,                AcpiGbl_DbOutputFlags, ACPI_DB_CONSOLE_OUTPUT);
309
310
311#ifdef ACPI_DISASSEMBLER
312
313/* Do not disassemble buffers to resource descriptors */
314
315ACPI_INIT_GLOBAL (UINT8,                AcpiGbl_NoResourceDisassembly, FALSE);
316ACPI_INIT_GLOBAL (BOOLEAN,              AcpiGbl_IgnoreNoopOperator, FALSE);
317ACPI_INIT_GLOBAL (BOOLEAN,              AcpiGbl_CstyleDisassembly, TRUE);
318ACPI_INIT_GLOBAL (BOOLEAN,              AcpiGbl_ForceAmlDisassembly, FALSE);
319ACPI_INIT_GLOBAL (BOOLEAN,              AcpiGbl_DmOpt_Verbose, TRUE);
320ACPI_INIT_GLOBAL (BOOLEAN,              AcpiGbl_DmEmitExternalOpcodes, FALSE);
321ACPI_INIT_GLOBAL (BOOLEAN,              AcpiGbl_DoDisassemblerOptimizations, TRUE);
322ACPI_INIT_GLOBAL (ACPI_PARSE_OBJECT_LIST, *AcpiGbl_TempListHead, NULL);
323
324ACPI_GLOBAL (BOOLEAN,                   AcpiGbl_DmOpt_Disasm);
325ACPI_GLOBAL (BOOLEAN,                   AcpiGbl_DmOpt_Listing);
326ACPI_GLOBAL (BOOLEAN,                   AcpiGbl_NumExternalMethods);
327ACPI_GLOBAL (UINT32,                    AcpiGbl_ResolvedExternalMethods);
328ACPI_GLOBAL (ACPI_EXTERNAL_LIST *,      AcpiGbl_ExternalList);
329ACPI_GLOBAL (ACPI_EXTERNAL_FILE *,      AcpiGbl_ExternalFileList);
330#endif
331
332#ifdef ACPI_DEBUGGER
333ACPI_INIT_GLOBAL (BOOLEAN,              AcpiGbl_AbortMethod, FALSE);
334ACPI_INIT_GLOBAL (ACPI_THREAD_ID,       AcpiGbl_DbThreadId, ACPI_INVALID_THREAD_ID);
335ACPI_INIT_GLOBAL (UINT32,               AcpiGbl_NextCmdNum, 1);
336
337ACPI_GLOBAL (BOOLEAN,                   AcpiGbl_DbOpt_NoIniMethods);
338ACPI_GLOBAL (BOOLEAN,                   AcpiGbl_DbOpt_NoRegionSupport);
339ACPI_GLOBAL (BOOLEAN,                   AcpiGbl_DbOutputToFile);
340ACPI_GLOBAL (char *,                    AcpiGbl_DbBuffer);
341ACPI_GLOBAL (char *,                    AcpiGbl_DbFilename);
342ACPI_GLOBAL (UINT32,                    AcpiGbl_DbDebugLevel);
343ACPI_GLOBAL (UINT32,                    AcpiGbl_DbConsoleDebugLevel);
344ACPI_GLOBAL (ACPI_NAMESPACE_NODE *,     AcpiGbl_DbScopeNode);
345ACPI_GLOBAL (BOOLEAN,                   AcpiGbl_DbTerminateLoop);
346ACPI_GLOBAL (BOOLEAN,                   AcpiGbl_DbThreadsTerminated);
347ACPI_GLOBAL (char *,                    AcpiGbl_DbArgs[ACPI_DEBUGGER_MAX_ARGS]);
348ACPI_GLOBAL (ACPI_OBJECT_TYPE,          AcpiGbl_DbArgTypes[ACPI_DEBUGGER_MAX_ARGS]);
349
350/* These buffers should all be the same size */
351
352ACPI_GLOBAL (char,                      AcpiGbl_DbParsedBuf[ACPI_DB_LINE_BUFFER_SIZE]);
353ACPI_GLOBAL (char,                      AcpiGbl_DbScopeBuf[ACPI_DB_LINE_BUFFER_SIZE]);
354ACPI_GLOBAL (char,                      AcpiGbl_DbDebugFilename[ACPI_DB_LINE_BUFFER_SIZE]);
355
356/* Statistics globals */
357
358ACPI_GLOBAL (UINT16,                    AcpiGbl_ObjTypeCount[ACPI_TOTAL_TYPES]);
359ACPI_GLOBAL (UINT16,                    AcpiGbl_NodeTypeCount[ACPI_TOTAL_TYPES]);
360ACPI_GLOBAL (UINT16,                    AcpiGbl_ObjTypeCountMisc);
361ACPI_GLOBAL (UINT16,                    AcpiGbl_NodeTypeCountMisc);
362ACPI_GLOBAL (UINT32,                    AcpiGbl_NumNodes);
363ACPI_GLOBAL (UINT32,                    AcpiGbl_NumObjects);
364#endif /* ACPI_DEBUGGER */
365
366#if defined (ACPI_DISASSEMBLER) || defined (ACPI_ASL_COMPILER)
367ACPI_GLOBAL (const char,               *AcpiGbl_PldPanelList[]);
368ACPI_GLOBAL (const char,               *AcpiGbl_PldVerticalPositionList[]);
369ACPI_GLOBAL (const char,               *AcpiGbl_PldHorizontalPositionList[]);
370ACPI_GLOBAL (const char,               *AcpiGbl_PldShapeList[]);
371ACPI_INIT_GLOBAL (BOOLEAN,              AcpiGbl_DisasmFlag, FALSE);
372#endif
373
374
375/*****************************************************************************
376 *
377 * ACPICA application-specific globals
378 *
379 ****************************************************************************/
380
381/* ASL-to-ASL+ conversion utility (implemented within the iASL compiler) */
382
383#ifdef ACPI_ASL_COMPILER
384ACPI_INIT_GLOBAL (char *,               AcpiGbl_CurrentInlineComment, NULL);
385ACPI_INIT_GLOBAL (char *,               AcpiGbl_CurrentEndNodeComment, NULL);
386ACPI_INIT_GLOBAL (char *,               AcpiGbl_CurrentOpenBraceComment, NULL);
387ACPI_INIT_GLOBAL (char *,               AcpiGbl_CurrentCloseBraceComment, NULL);
388
389ACPI_INIT_GLOBAL (char *,               AcpiGbl_RootFilename, NULL);
390ACPI_INIT_GLOBAL (char *,               AcpiGbl_CurrentFilename, NULL);
391ACPI_INIT_GLOBAL (char *,               AcpiGbl_CurrentParentFilename, NULL);
392ACPI_INIT_GLOBAL (char *,               AcpiGbl_CurrentIncludeFilename, NULL);
393
394ACPI_INIT_GLOBAL (ACPI_COMMENT_NODE,   *AcpiGbl_DefBlkCommentListHead, NULL);
395ACPI_INIT_GLOBAL (ACPI_COMMENT_NODE,   *AcpiGbl_DefBlkCommentListTail, NULL);
396ACPI_INIT_GLOBAL (ACPI_COMMENT_NODE,   *AcpiGbl_RegCommentListHead, NULL);
397ACPI_INIT_GLOBAL (ACPI_COMMENT_NODE,   *AcpiGbl_RegCommentListTail, NULL);
398ACPI_INIT_GLOBAL (ACPI_COMMENT_NODE,   *AcpiGbl_IncCommentListHead, NULL);
399ACPI_INIT_GLOBAL (ACPI_COMMENT_NODE,   *AcpiGbl_IncCommentListTail, NULL);
400ACPI_INIT_GLOBAL (ACPI_COMMENT_NODE,   *AcpiGbl_EndBlkCommentListHead, NULL);
401ACPI_INIT_GLOBAL (ACPI_COMMENT_NODE,   *AcpiGbl_EndBlkCommentListTail, NULL);
402
403ACPI_INIT_GLOBAL (ACPI_COMMENT_ADDR_NODE, *AcpiGbl_CommentAddrListHead, NULL);
404ACPI_INIT_GLOBAL (ACPI_FILE_NODE,      *AcpiGbl_FileTreeRoot, NULL);
405
406ACPI_GLOBAL (ACPI_CACHE_T *,            AcpiGbl_RegCommentCache);
407ACPI_GLOBAL (ACPI_CACHE_T *,            AcpiGbl_CommentAddrCache);
408ACPI_GLOBAL (ACPI_CACHE_T *,            AcpiGbl_FileCache);
409
410ACPI_INIT_GLOBAL (BOOLEAN,              AcpiGbl_DebugAslConversion, FALSE);
411ACPI_INIT_GLOBAL (ACPI_FILE,            AcpiGbl_ConvDebugFile, NULL);
412ACPI_GLOBAL (char,                      AcpiGbl_TableSig[4]);
413#endif
414
415#ifdef ACPI_APPLICATION
416ACPI_INIT_GLOBAL (ACPI_FILE,            AcpiGbl_DebugFile, NULL);
417ACPI_INIT_GLOBAL (ACPI_FILE,            AcpiGbl_OutputFile, NULL);
418ACPI_INIT_GLOBAL (BOOLEAN,              AcpiGbl_DebugTimeout, FALSE);
419
420/* Print buffer */
421
422ACPI_GLOBAL (ACPI_SPINLOCK,             AcpiGbl_PrintLock);     /* For print buffer */
423ACPI_GLOBAL (char,                      AcpiGbl_PrintBuffer[1024]);
424#endif /* ACPI_APPLICATION */
425
426#endif /* __ACGLOBAL_H__ */
427