aslglobal.h revision 220663
1272343Sngie 2272343Sngie 3272343Sngie/****************************************************************************** 4272343Sngie * 5272343Sngie * Module Name: aslglobal.h - Global variable definitions 6272343Sngie * 7272343Sngie *****************************************************************************/ 8272343Sngie 9272343Sngie/* 10272343Sngie * Copyright (C) 2000 - 2011, Intel Corp. 11272343Sngie * All rights reserved. 12272343Sngie * 13272343Sngie * Redistribution and use in source and binary forms, with or without 14272343Sngie * modification, are permitted provided that the following conditions 15272343Sngie * are met: 16272343Sngie * 1. Redistributions of source code must retain the above copyright 17272343Sngie * notice, this list of conditions, and the following disclaimer, 18272343Sngie * without modification. 19272343Sngie * 2. Redistributions in binary form must reproduce at minimum a disclaimer 20272343Sngie * substantially similar to the "NO WARRANTY" disclaimer below 21272343Sngie * ("Disclaimer") and any redistribution must be conditioned upon 22272343Sngie * including a substantially similar Disclaimer requirement for further 23272343Sngie * binary redistribution. 24272343Sngie * 3. Neither the names of the above-listed copyright holders nor the names 25272343Sngie * of any contributors may be used to endorse or promote products derived 26272343Sngie * from this software without specific prior written permission. 27272343Sngie * 28272343Sngie * Alternatively, this software may be distributed under the terms of the 29272343Sngie * GNU General Public License ("GPL") version 2 as published by the Free 30272343Sngie * Software Foundation. 31272343Sngie * 32272343Sngie * NO WARRANTY 33272343Sngie * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 34272343Sngie * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 35272343Sngie * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR 36272343Sngie * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 37272343Sngie * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 38272343Sngie * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 39272343Sngie * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 40272343Sngie * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 41272343Sngie * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING 42272343Sngie * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 43272343Sngie * POSSIBILITY OF SUCH DAMAGES. 44272343Sngie */ 45272343Sngie 46272343Sngie 47272343Sngie#ifndef __ASLGLOBAL_H 48272343Sngie#define __ASLGLOBAL_H 49272343Sngie 50272343Sngie 51272343Sngie/* 52272343Sngie * Global variables. Defined in aslmain.c only, externed in all other files 53272343Sngie */ 54272343Sngie 55272343Sngie#undef ASL_EXTERN 56272343Sngie 57272343Sngie#ifdef _DECLARE_GLOBALS 58272343Sngie#define ASL_EXTERN 59272343Sngie#define ASL_INIT_GLOBAL(a,b) (a)=(b) 60272343Sngie#else 61272343Sngie#define ASL_EXTERN extern 62272343Sngie#define ASL_INIT_GLOBAL(a,b) (a) 63272343Sngie#endif 64272343Sngie 65272343Sngie 66272343Sngie/* 67272343Sngie * Parser and other externals 68272343Sngie */ 69272343Sngieextern int yydebug; 70272343Sngieextern FILE *AslCompilerin; 71272343Sngieextern int AslCompilerdebug; 72272343Sngieextern int DtParserdebug; 73272343Sngieextern const ASL_MAPPING_ENTRY AslKeywordMapping[]; 74272343Sngieextern char *AslCompilertext; 75272343Sngie 76272343Sngie#define ASL_LINE_BUFFER_SIZE 1024 77272343Sngie#define ASL_MSG_BUFFER_SIZE 4096 78272343Sngie#define HEX_TABLE_LINE_SIZE 8 79272343Sngie#define HEX_LISTING_LINE_SIZE 8 80272343Sngie 81272343Sngie 82272343Sngie/* Source code buffers and pointers for error reporting */ 83272343Sngie 84272343SngieASL_EXTERN char Gbl_CurrentLineBuffer[ASL_LINE_BUFFER_SIZE]; 85272343SngieASL_EXTERN UINT32 ASL_INIT_GLOBAL (Gbl_CurrentColumn, 0); 86272343SngieASL_EXTERN UINT32 ASL_INIT_GLOBAL (Gbl_CurrentLineNumber, 1); 87272343SngieASL_EXTERN UINT32 ASL_INIT_GLOBAL (Gbl_LogicalLineNumber, 1); 88272343SngieASL_EXTERN UINT32 ASL_INIT_GLOBAL (Gbl_CurrentLineOffset, 0); 89272343SngieASL_EXTERN char ASL_INIT_GLOBAL (*Gbl_LineBufPtr, Gbl_CurrentLineBuffer); 90272343Sngie 91272343Sngie 92272343Sngie/* Exception reporting */ 93272343Sngie 94272343SngieASL_EXTERN ASL_ERROR_MSG ASL_INIT_GLOBAL (*Gbl_ErrorLog,NULL); 95272343SngieASL_EXTERN ASL_ERROR_MSG ASL_INIT_GLOBAL (*Gbl_NextError,NULL); 96272343Sngie 97272343Sngie 98272343Sngie/* Option flags */ 99272343Sngie 100272343SngieASL_EXTERN BOOLEAN ASL_INIT_GLOBAL (Gbl_DoCompile, TRUE); 101272343SngieASL_EXTERN BOOLEAN ASL_INIT_GLOBAL (Gbl_DoSignon, TRUE); 102272343SngieASL_EXTERN BOOLEAN ASL_INIT_GLOBAL (Gbl_DisassembleAll, FALSE); 103272343Sngie 104272343SngieASL_EXTERN BOOLEAN ASL_INIT_GLOBAL (Gbl_Acpi2, FALSE); 105272343SngieASL_EXTERN BOOLEAN ASL_INIT_GLOBAL (Gbl_UseDefaultAmlFilename, TRUE); 106272343SngieASL_EXTERN BOOLEAN ASL_INIT_GLOBAL (Gbl_NsOutputFlag, FALSE); 107272343SngieASL_EXTERN BOOLEAN ASL_INIT_GLOBAL (Gbl_DebugFlag, FALSE); 108272343SngieASL_EXTERN BOOLEAN ASL_INIT_GLOBAL (Gbl_AsmOutputFlag, FALSE); 109272343SngieASL_EXTERN BOOLEAN ASL_INIT_GLOBAL (Gbl_C_OutputFlag, FALSE); 110272343SngieASL_EXTERN BOOLEAN ASL_INIT_GLOBAL (Gbl_AsmIncludeOutputFlag, FALSE); 111272343SngieASL_EXTERN BOOLEAN ASL_INIT_GLOBAL (Gbl_C_IncludeOutputFlag, FALSE); 112272343SngieASL_EXTERN BOOLEAN ASL_INIT_GLOBAL (Gbl_ListingFlag, FALSE); 113272343SngieASL_EXTERN BOOLEAN ASL_INIT_GLOBAL (Gbl_IgnoreErrors, FALSE); 114272343SngieASL_EXTERN BOOLEAN ASL_INIT_GLOBAL (Gbl_SourceOutputFlag, FALSE); 115272343SngieASL_EXTERN BOOLEAN ASL_INIT_GLOBAL (Gbl_ParseOnlyFlag, FALSE); 116272343SngieASL_EXTERN BOOLEAN ASL_INIT_GLOBAL (Gbl_CompileTimesFlag, FALSE); 117272343SngieASL_EXTERN BOOLEAN ASL_INIT_GLOBAL (Gbl_FoldConstants, TRUE); 118272343SngieASL_EXTERN BOOLEAN ASL_INIT_GLOBAL (Gbl_VerboseErrors, TRUE); 119272343SngieASL_EXTERN BOOLEAN ASL_INIT_GLOBAL (Gbl_NoErrors, FALSE); 120272343SngieASL_EXTERN BOOLEAN ASL_INIT_GLOBAL (Gbl_NoResourceChecking, FALSE); 121272343SngieASL_EXTERN BOOLEAN ASL_INIT_GLOBAL (Gbl_DisasmFlag, FALSE); 122272343SngieASL_EXTERN BOOLEAN ASL_INIT_GLOBAL (Gbl_GetAllTables, FALSE); 123272343SngieASL_EXTERN BOOLEAN ASL_INIT_GLOBAL (Gbl_IntegerOptimizationFlag, TRUE); 124272343SngieASL_EXTERN BOOLEAN ASL_INIT_GLOBAL (Gbl_ReferenceOptimizationFlag, TRUE); 125272343SngieASL_EXTERN BOOLEAN ASL_INIT_GLOBAL (Gbl_DisplayRemarks, TRUE); 126272343SngieASL_EXTERN BOOLEAN ASL_INIT_GLOBAL (Gbl_DisplayOptimizations, FALSE); 127272343SngieASL_EXTERN UINT8 ASL_INIT_GLOBAL (Gbl_WarningLevel, ASL_WARNING); 128272343SngieASL_EXTERN BOOLEAN ASL_INIT_GLOBAL (Gbl_UseOriginalCompilerId, FALSE); 129272343SngieASL_EXTERN BOOLEAN ASL_INIT_GLOBAL (Gbl_VerboseTemplates, FALSE); 130272343SngieASL_EXTERN BOOLEAN ASL_INIT_GLOBAL (Gbl_DoTemplates, FALSE); 131272343Sngie 132272343Sngie 133272343Sngie#define HEX_OUTPUT_NONE 0 134272343Sngie#define HEX_OUTPUT_C 1 135272343Sngie#define HEX_OUTPUT_ASM 2 136272343Sngie#define HEX_OUTPUT_ASL 3 137272343Sngie 138272343SngieASL_EXTERN BOOLEAN ASL_INIT_GLOBAL (Gbl_HexOutputFlag, HEX_OUTPUT_NONE); 139272343Sngie 140272343Sngie 141272343Sngie/* Files */ 142272343Sngie 143272343SngieASL_EXTERN ASL_FILE_INFO Gbl_Files [ASL_NUM_FILES]; 144272343Sngie 145272343SngieASL_EXTERN char *Gbl_DirectoryPath; 146272343SngieASL_EXTERN char ASL_INIT_GLOBAL (*Gbl_IncludeFilename, NULL); 147272343SngieASL_EXTERN char ASL_INIT_GLOBAL (*Gbl_OutputFilenamePrefix, NULL); 148272343SngieASL_EXTERN ASL_INCLUDE_DIR ASL_INIT_GLOBAL (*Gbl_IncludeDirList, NULL); 149272343SngieASL_EXTERN char *Gbl_CurrentInputFilename; 150272343Sngie 151272343SngieASL_EXTERN BOOLEAN ASL_INIT_GLOBAL (Gbl_HasIncludeFiles, FALSE); 152272343Sngie 153272343Sngie 154272343Sngie/* Statistics */ 155272343Sngie 156272343SngieASL_EXTERN UINT32 ASL_INIT_GLOBAL (Gbl_InputByteCount, 0); 157272343SngieASL_EXTERN UINT32 ASL_INIT_GLOBAL (Gbl_InputFieldCount, 0); 158272343SngieASL_EXTERN UINT32 ASL_INIT_GLOBAL (Gbl_NsLookupCount, 0); 159272343SngieASL_EXTERN UINT32 ASL_INIT_GLOBAL (TotalKeywords, 0); 160272343SngieASL_EXTERN UINT32 ASL_INIT_GLOBAL (TotalNamedObjects, 0); 161272343SngieASL_EXTERN UINT32 ASL_INIT_GLOBAL (TotalExecutableOpcodes, 0); 162272343SngieASL_EXTERN UINT32 ASL_INIT_GLOBAL (TotalParseNodes, 0); 163272343SngieASL_EXTERN UINT32 ASL_INIT_GLOBAL (TotalMethods, 0); 164272343SngieASL_EXTERN UINT32 ASL_INIT_GLOBAL (TotalAllocations, 0); 165272343SngieASL_EXTERN UINT32 ASL_INIT_GLOBAL (TotalAllocated, 0); 166272343SngieASL_EXTERN UINT32 ASL_INIT_GLOBAL (TotalFolds, 0); 167272343Sngie 168272343Sngie 169272343Sngie/* Misc */ 170272343Sngie 171272343SngieASL_EXTERN UINT8 ASL_INIT_GLOBAL (Gbl_RevisionOverride, 0); 172272343SngieASL_EXTERN UINT8 ASL_INIT_GLOBAL (Gbl_TempCount, 0); 173272343SngieASL_EXTERN ACPI_PARSE_OBJECT ASL_INIT_GLOBAL (*RootNode, NULL); 174272343SngieASL_EXTERN UINT32 ASL_INIT_GLOBAL (Gbl_TableLength, 0); 175272343SngieASL_EXTERN UINT32 ASL_INIT_GLOBAL (Gbl_SourceLine, 0); 176272343SngieASL_EXTERN ASL_LISTING_NODE ASL_INIT_GLOBAL (*Gbl_ListingNode, NULL); 177272343SngieASL_EXTERN ACPI_PARSE_OBJECT ASL_INIT_GLOBAL (*Gbl_NodeCacheNext, NULL); 178272343SngieASL_EXTERN ACPI_PARSE_OBJECT ASL_INIT_GLOBAL (*Gbl_NodeCacheLast, NULL); 179272343SngieASL_EXTERN char ASL_INIT_GLOBAL (*Gbl_StringCacheNext, NULL); 180272343SngieASL_EXTERN char ASL_INIT_GLOBAL (*Gbl_StringCacheLast, NULL); 181272343SngieASL_EXTERN ACPI_PARSE_OBJECT *Gbl_FirstLevelInsertionNode; 182272343SngieASL_EXTERN UINT8 ASL_INIT_GLOBAL (Gbl_FileType, 0); 183272343SngieASL_EXTERN char ASL_INIT_GLOBAL (*Gbl_Signature, NULL); 184272343SngieASL_EXTERN char *Gbl_TemplateSignature; 185272343Sngie 186272343SngieASL_EXTERN UINT32 ASL_INIT_GLOBAL (Gbl_CurrentHexColumn, 0); 187272343SngieASL_EXTERN UINT32 ASL_INIT_GLOBAL (Gbl_CurrentAmlOffset, 0); 188272343SngieASL_EXTERN UINT32 ASL_INIT_GLOBAL (Gbl_CurrentLine, 0); 189272343SngieASL_EXTERN UINT8 ASL_INIT_GLOBAL (Gbl_HexBytesWereWritten, FALSE); 190272343SngieASL_EXTERN UINT32 ASL_INIT_GLOBAL (Gbl_NumNamespaceObjects, 0); 191272343SngieASL_EXTERN UINT32 ASL_INIT_GLOBAL (Gbl_ReservedMethods, 0); 192272343SngieASL_EXTERN char ASL_INIT_GLOBAL (*Gbl_TableSignature, "NO_SIG"); 193272343SngieASL_EXTERN char ASL_INIT_GLOBAL (*Gbl_TableId, "NO_ID"); 194272343SngieASL_EXTERN FILE *AcpiGbl_DebugFile; /* Placeholder for oswinxf only */ 195272343Sngie 196272343Sngie 197272343Sngie/* Static structures */ 198272343Sngie 199272343SngieASL_EXTERN ASL_ANALYSIS_WALK_INFO AnalysisWalkInfo; 200272343SngieASL_EXTERN ACPI_TABLE_HEADER TableHeader; 201272343Sngieextern char AslHexLookup[]; 202272343Sngie 203272343Sngie/* Event timing */ 204272343Sngie 205272343Sngie#define ASL_NUM_EVENTS 19 206272343SngieASL_EXTERN ASL_EVENT_INFO AslGbl_Events[ASL_NUM_EVENTS]; 207272343SngieASL_EXTERN UINT8 AslGbl_NextEvent; 208272343SngieASL_EXTERN UINT8 AslGbl_NamespaceEvent; 209272343Sngie 210272343Sngie/* Scratch buffers */ 211272343Sngie 212272343SngieASL_EXTERN UINT8 Gbl_AmlBuffer[HEX_LISTING_LINE_SIZE]; 213272343SngieASL_EXTERN char MsgBuffer[ASL_MSG_BUFFER_SIZE]; 214272343SngieASL_EXTERN char StringBuffer[ASL_MSG_BUFFER_SIZE]; 215272343SngieASL_EXTERN char StringBuffer2[ASL_MSG_BUFFER_SIZE]; 216272343Sngie 217272343Sngie 218272343Sngie#ifdef _DECLARE_GLOBALS 219272343SngieUINT32 Gbl_ExceptionCount[ASL_NUM_REPORT_LEVELS] = {0,0,0,0,0,0}; 220272343Sngie#else 221272343Sngieextern UINT32 Gbl_ExceptionCount[ASL_NUM_REPORT_LEVELS]; 222272343Sngie#endif 223272343Sngie 224272343Sngie#endif /* __ASLGLOBAL_H */ 225272343Sngie 226272343Sngie