1bc36eafdSMike Gerdts /****************************************************************************** 2bc36eafdSMike Gerdts * 3bc36eafdSMike Gerdts * Module Name: aslcompiler.h - common include file for iASL 4bc36eafdSMike Gerdts * 5bc36eafdSMike Gerdts *****************************************************************************/ 6bc36eafdSMike Gerdts 7*35786f68SRobert Mustacchi /****************************************************************************** 8*35786f68SRobert Mustacchi * 9*35786f68SRobert Mustacchi * 1. Copyright Notice 10*35786f68SRobert Mustacchi * 11*35786f68SRobert Mustacchi * Some or all of this work - Copyright (c) 1999 - 2018, Intel Corp. 12bc36eafdSMike Gerdts * All rights reserved. 13bc36eafdSMike Gerdts * 14*35786f68SRobert Mustacchi * 2. License 15*35786f68SRobert Mustacchi * 16*35786f68SRobert Mustacchi * 2.1. This is your license from Intel Corp. under its intellectual property 17*35786f68SRobert Mustacchi * rights. You may have additional license terms from the party that provided 18*35786f68SRobert Mustacchi * you this software, covering your right to use that party's intellectual 19*35786f68SRobert Mustacchi * property rights. 20*35786f68SRobert Mustacchi * 21*35786f68SRobert Mustacchi * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a 22*35786f68SRobert Mustacchi * copy of the source code appearing in this file ("Covered Code") an 23*35786f68SRobert Mustacchi * irrevocable, perpetual, worldwide license under Intel's copyrights in the 24*35786f68SRobert Mustacchi * base code distributed originally by Intel ("Original Intel Code") to copy, 25*35786f68SRobert Mustacchi * make derivatives, distribute, use and display any portion of the Covered 26*35786f68SRobert Mustacchi * Code in any form, with the right to sublicense such rights; and 27*35786f68SRobert Mustacchi * 28*35786f68SRobert Mustacchi * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent 29*35786f68SRobert Mustacchi * license (with the right to sublicense), under only those claims of Intel 30*35786f68SRobert Mustacchi * patents that are infringed by the Original Intel Code, to make, use, sell, 31*35786f68SRobert Mustacchi * offer to sell, and import the Covered Code and derivative works thereof 32*35786f68SRobert Mustacchi * solely to the minimum extent necessary to exercise the above copyright 33*35786f68SRobert Mustacchi * license, and in no event shall the patent license extend to any additions 34*35786f68SRobert Mustacchi * to or modifications of the Original Intel Code. No other license or right 35*35786f68SRobert Mustacchi * is granted directly or by implication, estoppel or otherwise; 36*35786f68SRobert Mustacchi * 37*35786f68SRobert Mustacchi * The above copyright and patent license is granted only if the following 38*35786f68SRobert Mustacchi * conditions are met: 39*35786f68SRobert Mustacchi * 40*35786f68SRobert Mustacchi * 3. Conditions 41*35786f68SRobert Mustacchi * 42*35786f68SRobert Mustacchi * 3.1. Redistribution of Source with Rights to Further Distribute Source. 43*35786f68SRobert Mustacchi * Redistribution of source code of any substantial portion of the Covered 44*35786f68SRobert Mustacchi * Code or modification with rights to further distribute source must include 45*35786f68SRobert Mustacchi * the above Copyright Notice, the above License, this list of Conditions, 46*35786f68SRobert Mustacchi * and the following Disclaimer and Export Compliance provision. In addition, 47*35786f68SRobert Mustacchi * Licensee must cause all Covered Code to which Licensee contributes to 48*35786f68SRobert Mustacchi * contain a file documenting the changes Licensee made to create that Covered 49*35786f68SRobert Mustacchi * Code and the date of any change. Licensee must include in that file the 50*35786f68SRobert Mustacchi * documentation of any changes made by any predecessor Licensee. Licensee 51*35786f68SRobert Mustacchi * must include a prominent statement that the modification is derived, 52*35786f68SRobert Mustacchi * directly or indirectly, from Original Intel Code. 53*35786f68SRobert Mustacchi * 54*35786f68SRobert Mustacchi * 3.2. Redistribution of Source with no Rights to Further Distribute Source. 55*35786f68SRobert Mustacchi * Redistribution of source code of any substantial portion of the Covered 56*35786f68SRobert Mustacchi * Code or modification without rights to further distribute source must 57*35786f68SRobert Mustacchi * include the following Disclaimer and Export Compliance provision in the 58*35786f68SRobert Mustacchi * documentation and/or other materials provided with distribution. In 59*35786f68SRobert Mustacchi * addition, Licensee may not authorize further sublicense of source of any 60*35786f68SRobert Mustacchi * portion of the Covered Code, and must include terms to the effect that the 61*35786f68SRobert Mustacchi * license from Licensee to its licensee is limited to the intellectual 62*35786f68SRobert Mustacchi * property embodied in the software Licensee provides to its licensee, and 63*35786f68SRobert Mustacchi * not to intellectual property embodied in modifications its licensee may 64*35786f68SRobert Mustacchi * make. 65*35786f68SRobert Mustacchi * 66*35786f68SRobert Mustacchi * 3.3. Redistribution of Executable. Redistribution in executable form of any 67*35786f68SRobert Mustacchi * substantial portion of the Covered Code or modification must reproduce the 68*35786f68SRobert Mustacchi * above Copyright Notice, and the following Disclaimer and Export Compliance 69*35786f68SRobert Mustacchi * provision in the documentation and/or other materials provided with the 70*35786f68SRobert Mustacchi * distribution. 71*35786f68SRobert Mustacchi * 72*35786f68SRobert Mustacchi * 3.4. Intel retains all right, title, and interest in and to the Original 73*35786f68SRobert Mustacchi * Intel Code. 74*35786f68SRobert Mustacchi * 75*35786f68SRobert Mustacchi * 3.5. Neither the name Intel nor any other trademark owned or controlled by 76*35786f68SRobert Mustacchi * Intel shall be used in advertising or otherwise to promote the sale, use or 77*35786f68SRobert Mustacchi * other dealings in products derived from or relating to the Covered Code 78*35786f68SRobert Mustacchi * without prior written authorization from Intel. 79*35786f68SRobert Mustacchi * 80*35786f68SRobert Mustacchi * 4. Disclaimer and Export Compliance 81*35786f68SRobert Mustacchi * 82*35786f68SRobert Mustacchi * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED 83*35786f68SRobert Mustacchi * HERE. ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE 84*35786f68SRobert Mustacchi * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT, ASSISTANCE, 85*35786f68SRobert Mustacchi * INSTALLATION, TRAINING OR OTHER SERVICES. INTEL WILL NOT PROVIDE ANY 86*35786f68SRobert Mustacchi * UPDATES, ENHANCEMENTS OR EXTENSIONS. INTEL SPECIFICALLY DISCLAIMS ANY 87*35786f68SRobert Mustacchi * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A 88*35786f68SRobert Mustacchi * PARTICULAR PURPOSE. 89*35786f68SRobert Mustacchi * 90*35786f68SRobert Mustacchi * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES 91*35786f68SRobert Mustacchi * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR 92*35786f68SRobert Mustacchi * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT, 93*35786f68SRobert Mustacchi * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY 94*35786f68SRobert Mustacchi * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL 95*35786f68SRobert Mustacchi * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. THESE LIMITATIONS 96*35786f68SRobert Mustacchi * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY 97*35786f68SRobert Mustacchi * LIMITED REMEDY. 98*35786f68SRobert Mustacchi * 99*35786f68SRobert Mustacchi * 4.3. Licensee shall not export, either directly or indirectly, any of this 100*35786f68SRobert Mustacchi * software or system incorporating such software without first obtaining any 101*35786f68SRobert Mustacchi * required license or other approval from the U. S. Department of Commerce or 102*35786f68SRobert Mustacchi * any other agency or department of the United States Government. In the 103*35786f68SRobert Mustacchi * event Licensee exports any such software from the United States or 104*35786f68SRobert Mustacchi * re-exports any such software from a foreign destination, Licensee shall 105*35786f68SRobert Mustacchi * ensure that the distribution and export/re-export of the software is in 106*35786f68SRobert Mustacchi * compliance with all laws, regulations, orders, or other restrictions of the 107*35786f68SRobert Mustacchi * U.S. Export Administration Regulations. Licensee agrees that neither it nor 108*35786f68SRobert Mustacchi * any of its subsidiaries will export/re-export any technical data, process, 109*35786f68SRobert Mustacchi * software, or service, directly or indirectly, to any country for which the 110*35786f68SRobert Mustacchi * United States government or any agency thereof requires an export license, 111*35786f68SRobert Mustacchi * other governmental approval, or letter of assurance, without first obtaining 112*35786f68SRobert Mustacchi * such license, approval or letter. 113*35786f68SRobert Mustacchi * 114*35786f68SRobert Mustacchi ***************************************************************************** 115*35786f68SRobert Mustacchi * 116*35786f68SRobert Mustacchi * Alternatively, you may choose to be licensed under the terms of the 117*35786f68SRobert Mustacchi * following license: 118*35786f68SRobert Mustacchi * 119bc36eafdSMike Gerdts * Redistribution and use in source and binary forms, with or without 120bc36eafdSMike Gerdts * modification, are permitted provided that the following conditions 121bc36eafdSMike Gerdts * are met: 122bc36eafdSMike Gerdts * 1. Redistributions of source code must retain the above copyright 123bc36eafdSMike Gerdts * notice, this list of conditions, and the following disclaimer, 124bc36eafdSMike Gerdts * without modification. 125bc36eafdSMike Gerdts * 2. Redistributions in binary form must reproduce at minimum a disclaimer 126bc36eafdSMike Gerdts * substantially similar to the "NO WARRANTY" disclaimer below 127bc36eafdSMike Gerdts * ("Disclaimer") and any redistribution must be conditioned upon 128bc36eafdSMike Gerdts * including a substantially similar Disclaimer requirement for further 129bc36eafdSMike Gerdts * binary redistribution. 130bc36eafdSMike Gerdts * 3. Neither the names of the above-listed copyright holders nor the names 131bc36eafdSMike Gerdts * of any contributors may be used to endorse or promote products derived 132bc36eafdSMike Gerdts * from this software without specific prior written permission. 133bc36eafdSMike Gerdts * 134*35786f68SRobert Mustacchi * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 135*35786f68SRobert Mustacchi * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 136*35786f68SRobert Mustacchi * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 137*35786f68SRobert Mustacchi * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 138*35786f68SRobert Mustacchi * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 139*35786f68SRobert Mustacchi * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 140*35786f68SRobert Mustacchi * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 141*35786f68SRobert Mustacchi * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 142*35786f68SRobert Mustacchi * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 143*35786f68SRobert Mustacchi * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 144*35786f68SRobert Mustacchi * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 145*35786f68SRobert Mustacchi * 146*35786f68SRobert Mustacchi * Alternatively, you may choose to be licensed under the terms of the 147bc36eafdSMike Gerdts * GNU General Public License ("GPL") version 2 as published by the Free 148bc36eafdSMike Gerdts * Software Foundation. 149bc36eafdSMike Gerdts * 150*35786f68SRobert Mustacchi *****************************************************************************/ 151bc36eafdSMike Gerdts 152bc36eafdSMike Gerdts #ifndef __ASLCOMPILER_H 153bc36eafdSMike Gerdts #define __ASLCOMPILER_H 154bc36eafdSMike Gerdts 155bc36eafdSMike Gerdts #include "acpi.h" 156bc36eafdSMike Gerdts #include "accommon.h" 157bc36eafdSMike Gerdts #include "amlresrc.h" 158bc36eafdSMike Gerdts #include "acdebug.h" 159bc36eafdSMike Gerdts 160bc36eafdSMike Gerdts /* Microsoft-specific */ 161bc36eafdSMike Gerdts 162bc36eafdSMike Gerdts #if (defined WIN32 || defined WIN64) 163bc36eafdSMike Gerdts 164bc36eafdSMike Gerdts /* warn : used #pragma pack */ 165bc36eafdSMike Gerdts #pragma warning(disable:4103) 166bc36eafdSMike Gerdts 167bc36eafdSMike Gerdts /* warn : named type definition in parentheses */ 168bc36eafdSMike Gerdts #pragma warning(disable:4115) 169bc36eafdSMike Gerdts #endif 170bc36eafdSMike Gerdts 171bc36eafdSMike Gerdts #include <stdio.h> 172bc36eafdSMike Gerdts #include <stdlib.h> 173bc36eafdSMike Gerdts #include <string.h> 174bc36eafdSMike Gerdts #include <errno.h> 175bc36eafdSMike Gerdts #include <ctype.h> 176bc36eafdSMike Gerdts 177bc36eafdSMike Gerdts /* Compiler headers */ 178bc36eafdSMike Gerdts 179bc36eafdSMike Gerdts #include "asldefine.h" 180bc36eafdSMike Gerdts #include "asltypes.h" 181bc36eafdSMike Gerdts #include "aslmessages.h" 182bc36eafdSMike Gerdts #include "aslglobal.h" 183bc36eafdSMike Gerdts #include "preprocess.h" 184*35786f68SRobert Mustacchi #include "dtcompiler.h" 185bc36eafdSMike Gerdts 186bc36eafdSMike Gerdts 187bc36eafdSMike Gerdts /******************************************************************************* 188bc36eafdSMike Gerdts * 189bc36eafdSMike Gerdts * Compiler prototypes 190bc36eafdSMike Gerdts * 191bc36eafdSMike Gerdts ******************************************************************************/ 192bc36eafdSMike Gerdts 193bc36eafdSMike Gerdts /* 194bc36eafdSMike Gerdts * Main ASL parser - generated from flex/bison, lex/yacc, etc. 195bc36eafdSMike Gerdts */ 196bc36eafdSMike Gerdts ACPI_PARSE_OBJECT * 197bc36eafdSMike Gerdts AslDoError ( 198bc36eafdSMike Gerdts void); 199bc36eafdSMike Gerdts 200bc36eafdSMike Gerdts int 201bc36eafdSMike Gerdts AslCompilerlex( 202bc36eafdSMike Gerdts void); 203bc36eafdSMike Gerdts 204bc36eafdSMike Gerdts void 205bc36eafdSMike Gerdts AslResetCurrentLineBuffer ( 206bc36eafdSMike Gerdts void); 207bc36eafdSMike Gerdts 208bc36eafdSMike Gerdts void 209bc36eafdSMike Gerdts AslInsertLineBuffer ( 210bc36eafdSMike Gerdts int SourceChar); 211bc36eafdSMike Gerdts 212bc36eafdSMike Gerdts int 213bc36eafdSMike Gerdts AslPopInputFileStack ( 214bc36eafdSMike Gerdts void); 215bc36eafdSMike Gerdts 216bc36eafdSMike Gerdts void 217bc36eafdSMike Gerdts AslPushInputFileStack ( 218bc36eafdSMike Gerdts FILE *InputFile, 219bc36eafdSMike Gerdts char *Filename); 220bc36eafdSMike Gerdts 221bc36eafdSMike Gerdts void 222bc36eafdSMike Gerdts AslParserCleanup ( 223bc36eafdSMike Gerdts void); 224bc36eafdSMike Gerdts 225bc36eafdSMike Gerdts 226bc36eafdSMike Gerdts /* 227bc36eafdSMike Gerdts * aslstartup - entered from main() 228bc36eafdSMike Gerdts */ 229bc36eafdSMike Gerdts void 230bc36eafdSMike Gerdts AslInitializeGlobals ( 231bc36eafdSMike Gerdts void); 232bc36eafdSMike Gerdts 233bc36eafdSMike Gerdts typedef 234bc36eafdSMike Gerdts ACPI_STATUS (*ASL_PATHNAME_CALLBACK) ( 235bc36eafdSMike Gerdts char *); 236bc36eafdSMike Gerdts 237bc36eafdSMike Gerdts ACPI_STATUS 238bc36eafdSMike Gerdts AslDoOneFile ( 239bc36eafdSMike Gerdts char *Filename); 240bc36eafdSMike Gerdts 241bc36eafdSMike Gerdts ACPI_STATUS 242bc36eafdSMike Gerdts AslCheckForErrorExit ( 243bc36eafdSMike Gerdts void); 244bc36eafdSMike Gerdts 245bc36eafdSMike Gerdts 246bc36eafdSMike Gerdts /* 247bc36eafdSMike Gerdts * aslcompile - compile mainline 248bc36eafdSMike Gerdts */ 249bc36eafdSMike Gerdts void 250bc36eafdSMike Gerdts AslCompilerSignon ( 251bc36eafdSMike Gerdts UINT32 FileId); 252bc36eafdSMike Gerdts 253bc36eafdSMike Gerdts void 254bc36eafdSMike Gerdts AslCompilerFileHeader ( 255bc36eafdSMike Gerdts UINT32 FileId); 256bc36eafdSMike Gerdts 257bc36eafdSMike Gerdts int 258bc36eafdSMike Gerdts CmDoCompile ( 259bc36eafdSMike Gerdts void); 260bc36eafdSMike Gerdts 261bc36eafdSMike Gerdts void 262bc36eafdSMike Gerdts CmDoOutputFiles ( 263bc36eafdSMike Gerdts void); 264bc36eafdSMike Gerdts 265bc36eafdSMike Gerdts void 266bc36eafdSMike Gerdts CmCleanupAndExit ( 267bc36eafdSMike Gerdts void); 268bc36eafdSMike Gerdts 269*35786f68SRobert Mustacchi 270*35786f68SRobert Mustacchi /* 271*35786f68SRobert Mustacchi * aslallocate - memory allocation 272*35786f68SRobert Mustacchi */ 273*35786f68SRobert Mustacchi void * 274*35786f68SRobert Mustacchi UtLocalCalloc ( 275*35786f68SRobert Mustacchi UINT32 Size); 276*35786f68SRobert Mustacchi 277bc36eafdSMike Gerdts void 278*35786f68SRobert Mustacchi UtExpandLineBuffers ( 279*35786f68SRobert Mustacchi void); 280*35786f68SRobert Mustacchi 281*35786f68SRobert Mustacchi void 282*35786f68SRobert Mustacchi UtReallocLineBuffers ( 283*35786f68SRobert Mustacchi char **Buffer, 284*35786f68SRobert Mustacchi UINT32 OldSize, 285*35786f68SRobert Mustacchi UINT32 NewSize); 286*35786f68SRobert Mustacchi 287*35786f68SRobert Mustacchi void 288*35786f68SRobert Mustacchi UtFreeLineBuffers ( 289*35786f68SRobert Mustacchi void); 290*35786f68SRobert Mustacchi 291*35786f68SRobert Mustacchi 292*35786f68SRobert Mustacchi /* 293*35786f68SRobert Mustacchi * aslcache - local cache support 294*35786f68SRobert Mustacchi */ 295*35786f68SRobert Mustacchi char * 296*35786f68SRobert Mustacchi UtLocalCacheCalloc ( 297*35786f68SRobert Mustacchi UINT32 Length); 298*35786f68SRobert Mustacchi 299*35786f68SRobert Mustacchi ACPI_PARSE_OBJECT * 300*35786f68SRobert Mustacchi UtParseOpCacheCalloc ( 301*35786f68SRobert Mustacchi void); 302*35786f68SRobert Mustacchi 303*35786f68SRobert Mustacchi DT_SUBTABLE * 304*35786f68SRobert Mustacchi UtSubtableCacheCalloc ( 305*35786f68SRobert Mustacchi void); 306*35786f68SRobert Mustacchi 307*35786f68SRobert Mustacchi DT_FIELD * 308*35786f68SRobert Mustacchi UtFieldCacheCalloc ( 309*35786f68SRobert Mustacchi void); 310*35786f68SRobert Mustacchi 311*35786f68SRobert Mustacchi void 312*35786f68SRobert Mustacchi UtDeleteLocalCaches ( 313bc36eafdSMike Gerdts void); 314bc36eafdSMike Gerdts 315bc36eafdSMike Gerdts 316bc36eafdSMike Gerdts /* 317bc36eafdSMike Gerdts * aslascii - ascii support 318bc36eafdSMike Gerdts */ 319bc36eafdSMike Gerdts ACPI_STATUS 320bc36eafdSMike Gerdts FlIsFileAsciiSource ( 321bc36eafdSMike Gerdts char *Filename, 322bc36eafdSMike Gerdts BOOLEAN DisplayErrors); 323bc36eafdSMike Gerdts 324bc36eafdSMike Gerdts 325bc36eafdSMike Gerdts /* 326bc36eafdSMike Gerdts * aslwalks - semantic analysis and parse tree walks 327bc36eafdSMike Gerdts */ 328bc36eafdSMike Gerdts ACPI_STATUS 329bc36eafdSMike Gerdts AnOtherSemanticAnalysisWalkBegin ( 330bc36eafdSMike Gerdts ACPI_PARSE_OBJECT *Op, 331bc36eafdSMike Gerdts UINT32 Level, 332bc36eafdSMike Gerdts void *Context); 333bc36eafdSMike Gerdts 334bc36eafdSMike Gerdts ACPI_STATUS 335bc36eafdSMike Gerdts AnOtherSemanticAnalysisWalkEnd ( 336bc36eafdSMike Gerdts ACPI_PARSE_OBJECT *Op, 337bc36eafdSMike Gerdts UINT32 Level, 338bc36eafdSMike Gerdts void *Context); 339bc36eafdSMike Gerdts 340bc36eafdSMike Gerdts ACPI_STATUS 341bc36eafdSMike Gerdts AnOperandTypecheckWalkEnd ( 342bc36eafdSMike Gerdts ACPI_PARSE_OBJECT *Op, 343bc36eafdSMike Gerdts UINT32 Level, 344bc36eafdSMike Gerdts void *Context); 345bc36eafdSMike Gerdts 346bc36eafdSMike Gerdts ACPI_STATUS 347bc36eafdSMike Gerdts AnMethodTypingWalkEnd ( 348bc36eafdSMike Gerdts ACPI_PARSE_OBJECT *Op, 349bc36eafdSMike Gerdts UINT32 Level, 350bc36eafdSMike Gerdts void *Context); 351bc36eafdSMike Gerdts 352bc36eafdSMike Gerdts 353bc36eafdSMike Gerdts /* 354bc36eafdSMike Gerdts * aslmethod - Control method analysis walk 355bc36eafdSMike Gerdts */ 356bc36eafdSMike Gerdts ACPI_STATUS 357bc36eafdSMike Gerdts MtMethodAnalysisWalkBegin ( 358bc36eafdSMike Gerdts ACPI_PARSE_OBJECT *Op, 359bc36eafdSMike Gerdts UINT32 Level, 360bc36eafdSMike Gerdts void *Context); 361bc36eafdSMike Gerdts 362bc36eafdSMike Gerdts ACPI_STATUS 363bc36eafdSMike Gerdts MtMethodAnalysisWalkEnd ( 364bc36eafdSMike Gerdts ACPI_PARSE_OBJECT *Op, 365bc36eafdSMike Gerdts UINT32 Level, 366bc36eafdSMike Gerdts void *Context); 367bc36eafdSMike Gerdts 368bc36eafdSMike Gerdts 369bc36eafdSMike Gerdts /* 370bc36eafdSMike Gerdts * aslbtypes - bitfield data types 371bc36eafdSMike Gerdts */ 372bc36eafdSMike Gerdts UINT32 373bc36eafdSMike Gerdts AnMapObjTypeToBtype ( 374bc36eafdSMike Gerdts ACPI_PARSE_OBJECT *Op); 375bc36eafdSMike Gerdts 376bc36eafdSMike Gerdts UINT32 377bc36eafdSMike Gerdts AnMapArgTypeToBtype ( 378bc36eafdSMike Gerdts UINT32 ArgType); 379bc36eafdSMike Gerdts 380bc36eafdSMike Gerdts UINT32 381bc36eafdSMike Gerdts AnGetBtype ( 382bc36eafdSMike Gerdts ACPI_PARSE_OBJECT *Op); 383bc36eafdSMike Gerdts 384bc36eafdSMike Gerdts void 385bc36eafdSMike Gerdts AnFormatBtype ( 386bc36eafdSMike Gerdts char *Buffer, 387bc36eafdSMike Gerdts UINT32 Btype); 388bc36eafdSMike Gerdts 389bc36eafdSMike Gerdts 390bc36eafdSMike Gerdts /* 391bc36eafdSMike Gerdts * aslanalyze - Support functions for parse tree walks 392bc36eafdSMike Gerdts */ 393bc36eafdSMike Gerdts void 394bc36eafdSMike Gerdts AnCheckId ( 395bc36eafdSMike Gerdts ACPI_PARSE_OBJECT *Op, 396bc36eafdSMike Gerdts ACPI_NAME Type); 397bc36eafdSMike Gerdts 398bc36eafdSMike Gerdts /* Values for Type argument above */ 399bc36eafdSMike Gerdts 400bc36eafdSMike Gerdts #define ASL_TYPE_HID 0 401bc36eafdSMike Gerdts #define ASL_TYPE_CID 1 402bc36eafdSMike Gerdts 403bc36eafdSMike Gerdts BOOLEAN 404bc36eafdSMike Gerdts AnIsInternalMethod ( 405bc36eafdSMike Gerdts ACPI_PARSE_OBJECT *Op); 406bc36eafdSMike Gerdts 407bc36eafdSMike Gerdts UINT32 408bc36eafdSMike Gerdts AnGetInternalMethodReturnType ( 409bc36eafdSMike Gerdts ACPI_PARSE_OBJECT *Op); 410bc36eafdSMike Gerdts 411bc36eafdSMike Gerdts BOOLEAN 412bc36eafdSMike Gerdts AnLastStatementIsReturn ( 413bc36eafdSMike Gerdts ACPI_PARSE_OBJECT *Op); 414bc36eafdSMike Gerdts 415bc36eafdSMike Gerdts void 416bc36eafdSMike Gerdts AnCheckMethodReturnValue ( 417bc36eafdSMike Gerdts ACPI_PARSE_OBJECT *Op, 418bc36eafdSMike Gerdts const ACPI_OPCODE_INFO *OpInfo, 419bc36eafdSMike Gerdts ACPI_PARSE_OBJECT *ArgOp, 420bc36eafdSMike Gerdts UINT32 RequiredBtypes, 421bc36eafdSMike Gerdts UINT32 ThisNodeBtype); 422bc36eafdSMike Gerdts 423bc36eafdSMike Gerdts BOOLEAN 424bc36eafdSMike Gerdts AnIsResultUsed ( 425bc36eafdSMike Gerdts ACPI_PARSE_OBJECT *Op); 426bc36eafdSMike Gerdts 427bc36eafdSMike Gerdts void 428bc36eafdSMike Gerdts ApCheckForGpeNameConflict ( 429bc36eafdSMike Gerdts ACPI_PARSE_OBJECT *Op); 430bc36eafdSMike Gerdts 431bc36eafdSMike Gerdts void 432bc36eafdSMike Gerdts ApCheckRegMethod ( 433bc36eafdSMike Gerdts ACPI_PARSE_OBJECT *Op); 434bc36eafdSMike Gerdts 435bc36eafdSMike Gerdts BOOLEAN 436bc36eafdSMike Gerdts ApFindNameInScope ( 437bc36eafdSMike Gerdts char *Name, 438bc36eafdSMike Gerdts ACPI_PARSE_OBJECT *Op); 439bc36eafdSMike Gerdts 440bc36eafdSMike Gerdts BOOLEAN 441bc36eafdSMike Gerdts ApFindNameInDeviceTree ( 442bc36eafdSMike Gerdts char *Name, 443bc36eafdSMike Gerdts ACPI_PARSE_OBJECT *Op); 444bc36eafdSMike Gerdts 445bc36eafdSMike Gerdts /* 446bc36eafdSMike Gerdts * aslerror - error handling/reporting 447bc36eafdSMike Gerdts */ 448bc36eafdSMike Gerdts void 449bc36eafdSMike Gerdts AslAbort ( 450bc36eafdSMike Gerdts void); 451bc36eafdSMike Gerdts 452bc36eafdSMike Gerdts void 453*35786f68SRobert Mustacchi AslDualParseOpError ( 454*35786f68SRobert Mustacchi UINT8 Level, 455*35786f68SRobert Mustacchi UINT16 MainMessageId, 456*35786f68SRobert Mustacchi ACPI_PARSE_OBJECT *MainOp, 457*35786f68SRobert Mustacchi char *MainMessage, 458*35786f68SRobert Mustacchi UINT16 SecondMessageId, 459*35786f68SRobert Mustacchi ACPI_PARSE_OBJECT *SecondOp, 460*35786f68SRobert Mustacchi char *SecondaryMessage); 461*35786f68SRobert Mustacchi 462*35786f68SRobert Mustacchi void 463bc36eafdSMike Gerdts AslError ( 464bc36eafdSMike Gerdts UINT8 Level, 465bc36eafdSMike Gerdts UINT16 MessageId, 466bc36eafdSMike Gerdts ACPI_PARSE_OBJECT *Op, 467bc36eafdSMike Gerdts char *ExtraMessage); 468bc36eafdSMike Gerdts 469*35786f68SRobert Mustacchi void 470*35786f68SRobert Mustacchi AslCheckExpectedExceptions ( 471*35786f68SRobert Mustacchi void); 472*35786f68SRobert Mustacchi 473*35786f68SRobert Mustacchi ACPI_STATUS 474*35786f68SRobert Mustacchi AslExpectException ( 475*35786f68SRobert Mustacchi char *MessageIdString); 476*35786f68SRobert Mustacchi 477bc36eafdSMike Gerdts ACPI_STATUS 478bc36eafdSMike Gerdts AslDisableException ( 479bc36eafdSMike Gerdts char *MessageIdString); 480bc36eafdSMike Gerdts 481bc36eafdSMike Gerdts BOOLEAN 482*35786f68SRobert Mustacchi AslIsExceptionIgnored ( 483bc36eafdSMike Gerdts UINT8 Level, 484bc36eafdSMike Gerdts UINT16 MessageId); 485bc36eafdSMike Gerdts 486bc36eafdSMike Gerdts void 487bc36eafdSMike Gerdts AslCoreSubsystemError ( 488bc36eafdSMike Gerdts ACPI_PARSE_OBJECT *Op, 489bc36eafdSMike Gerdts ACPI_STATUS Status, 490bc36eafdSMike Gerdts char *ExtraMessage, 491bc36eafdSMike Gerdts BOOLEAN Abort); 492bc36eafdSMike Gerdts 493bc36eafdSMike Gerdts int 494bc36eafdSMike Gerdts AslCompilererror( 495bc36eafdSMike Gerdts const char *s); 496bc36eafdSMike Gerdts 497bc36eafdSMike Gerdts void 498bc36eafdSMike Gerdts AslCommonError ( 499bc36eafdSMike Gerdts UINT8 Level, 500bc36eafdSMike Gerdts UINT16 MessageId, 501bc36eafdSMike Gerdts UINT32 CurrentLineNumber, 502bc36eafdSMike Gerdts UINT32 LogicalLineNumber, 503bc36eafdSMike Gerdts UINT32 LogicalByteOffset, 504bc36eafdSMike Gerdts UINT32 Column, 505bc36eafdSMike Gerdts char *Filename, 506bc36eafdSMike Gerdts char *ExtraMessage); 507bc36eafdSMike Gerdts 508bc36eafdSMike Gerdts void 509bc36eafdSMike Gerdts AslCommonError2 ( 510bc36eafdSMike Gerdts UINT8 Level, 511bc36eafdSMike Gerdts UINT16 MessageId, 512bc36eafdSMike Gerdts UINT32 LineNumber, 513bc36eafdSMike Gerdts UINT32 Column, 514bc36eafdSMike Gerdts char *SourceLine, 515bc36eafdSMike Gerdts char *Filename, 516bc36eafdSMike Gerdts char *ExtraMessage); 517bc36eafdSMike Gerdts 518bc36eafdSMike Gerdts void 519bc36eafdSMike Gerdts AePrintException ( 520bc36eafdSMike Gerdts UINT32 FileId, 521bc36eafdSMike Gerdts ASL_ERROR_MSG *Enode, 522bc36eafdSMike Gerdts char *Header); 523bc36eafdSMike Gerdts 524bc36eafdSMike Gerdts void 525bc36eafdSMike Gerdts AePrintErrorLog ( 526bc36eafdSMike Gerdts UINT32 FileId); 527bc36eafdSMike Gerdts 528bc36eafdSMike Gerdts void 529bc36eafdSMike Gerdts AeClearErrorLog ( 530bc36eafdSMike Gerdts void); 531bc36eafdSMike Gerdts 532bc36eafdSMike Gerdts 533bc36eafdSMike Gerdts /* 534bc36eafdSMike Gerdts * asllisting - generate all "listing" type files 535bc36eafdSMike Gerdts */ 536bc36eafdSMike Gerdts void 537bc36eafdSMike Gerdts LsDoListings ( 538bc36eafdSMike Gerdts void); 539bc36eafdSMike Gerdts 540bc36eafdSMike Gerdts void 541bc36eafdSMike Gerdts LsWriteNodeToAsmListing ( 542bc36eafdSMike Gerdts ACPI_PARSE_OBJECT *Op); 543bc36eafdSMike Gerdts 544bc36eafdSMike Gerdts void 545bc36eafdSMike Gerdts LsWriteNode ( 546bc36eafdSMike Gerdts ACPI_PARSE_OBJECT *Op, 547bc36eafdSMike Gerdts UINT32 FileId); 548bc36eafdSMike Gerdts 549bc36eafdSMike Gerdts void 550bc36eafdSMike Gerdts LsDumpParseTree ( 551bc36eafdSMike Gerdts void); 552bc36eafdSMike Gerdts 553bc36eafdSMike Gerdts 554bc36eafdSMike Gerdts /* 555bc36eafdSMike Gerdts * asllistsup - Listing file support utilities 556bc36eafdSMike Gerdts */ 557bc36eafdSMike Gerdts void 558bc36eafdSMike Gerdts LsDumpAscii ( 559bc36eafdSMike Gerdts UINT32 FileId, 560bc36eafdSMike Gerdts UINT32 Count, 561bc36eafdSMike Gerdts UINT8 *Buffer); 562bc36eafdSMike Gerdts 563bc36eafdSMike Gerdts void 564bc36eafdSMike Gerdts LsDumpAsciiInComment ( 565bc36eafdSMike Gerdts UINT32 FileId, 566bc36eafdSMike Gerdts UINT32 Count, 567bc36eafdSMike Gerdts UINT8 *Buffer); 568bc36eafdSMike Gerdts 569bc36eafdSMike Gerdts void 570bc36eafdSMike Gerdts LsCheckException ( 571bc36eafdSMike Gerdts UINT32 LineNumber, 572bc36eafdSMike Gerdts UINT32 FileId); 573bc36eafdSMike Gerdts 574bc36eafdSMike Gerdts void 575bc36eafdSMike Gerdts LsFlushListingBuffer ( 576bc36eafdSMike Gerdts UINT32 FileId); 577bc36eafdSMike Gerdts 578bc36eafdSMike Gerdts void 579bc36eafdSMike Gerdts LsWriteListingHexBytes ( 580bc36eafdSMike Gerdts UINT8 *Buffer, 581bc36eafdSMike Gerdts UINT32 Length, 582bc36eafdSMike Gerdts UINT32 FileId); 583bc36eafdSMike Gerdts 584bc36eafdSMike Gerdts void 585bc36eafdSMike Gerdts LsWriteSourceLines ( 586bc36eafdSMike Gerdts UINT32 ToLineNumber, 587bc36eafdSMike Gerdts UINT32 ToLogicalLineNumber, 588bc36eafdSMike Gerdts UINT32 FileId); 589bc36eafdSMike Gerdts 590bc36eafdSMike Gerdts UINT32 591bc36eafdSMike Gerdts LsWriteOneSourceLine ( 592bc36eafdSMike Gerdts UINT32 FileId); 593bc36eafdSMike Gerdts 594bc36eafdSMike Gerdts void 595bc36eafdSMike Gerdts LsPushNode ( 596bc36eafdSMike Gerdts char *Filename); 597bc36eafdSMike Gerdts 598bc36eafdSMike Gerdts ASL_LISTING_NODE * 599bc36eafdSMike Gerdts LsPopNode ( 600bc36eafdSMike Gerdts void); 601bc36eafdSMike Gerdts 602bc36eafdSMike Gerdts 603bc36eafdSMike Gerdts /* 604bc36eafdSMike Gerdts * aslhex - generate all "hex" output files (C, ASM, ASL) 605bc36eafdSMike Gerdts */ 606bc36eafdSMike Gerdts void 607bc36eafdSMike Gerdts HxDoHexOutput ( 608bc36eafdSMike Gerdts void); 609bc36eafdSMike Gerdts 610bc36eafdSMike Gerdts 611bc36eafdSMike Gerdts /* 612bc36eafdSMike Gerdts * aslfold - constant folding 613bc36eafdSMike Gerdts */ 614bc36eafdSMike Gerdts ACPI_STATUS 615bc36eafdSMike Gerdts OpcAmlConstantWalk ( 616bc36eafdSMike Gerdts ACPI_PARSE_OBJECT *Op, 617bc36eafdSMike Gerdts UINT32 Level, 618bc36eafdSMike Gerdts void *Context); 619bc36eafdSMike Gerdts 620bc36eafdSMike Gerdts 621bc36eafdSMike Gerdts /* 622bc36eafdSMike Gerdts * aslmessages - exception strings 623bc36eafdSMike Gerdts */ 624bc36eafdSMike Gerdts const char * 625bc36eafdSMike Gerdts AeDecodeMessageId ( 626bc36eafdSMike Gerdts UINT16 MessageId); 627bc36eafdSMike Gerdts 628bc36eafdSMike Gerdts const char * 629bc36eafdSMike Gerdts AeDecodeExceptionLevel ( 630bc36eafdSMike Gerdts UINT8 Level); 631bc36eafdSMike Gerdts 632bc36eafdSMike Gerdts UINT16 633bc36eafdSMike Gerdts AeBuildFullExceptionCode ( 634bc36eafdSMike Gerdts UINT8 Level, 635bc36eafdSMike Gerdts UINT16 MessageId); 636bc36eafdSMike Gerdts 637bc36eafdSMike Gerdts /* 638bc36eafdSMike Gerdts * asloffset - generate C offset file for BIOS support 639bc36eafdSMike Gerdts */ 640bc36eafdSMike Gerdts ACPI_STATUS 641bc36eafdSMike Gerdts LsAmlOffsetWalk ( 642bc36eafdSMike Gerdts ACPI_PARSE_OBJECT *Op, 643bc36eafdSMike Gerdts UINT32 Level, 644bc36eafdSMike Gerdts void *Context); 645bc36eafdSMike Gerdts 646bc36eafdSMike Gerdts void 647bc36eafdSMike Gerdts LsDoOffsetTableHeader ( 648bc36eafdSMike Gerdts UINT32 FileId); 649bc36eafdSMike Gerdts 650bc36eafdSMike Gerdts void 651bc36eafdSMike Gerdts LsDoOffsetTableFooter ( 652bc36eafdSMike Gerdts UINT32 FileId); 653bc36eafdSMike Gerdts 654bc36eafdSMike Gerdts 655bc36eafdSMike Gerdts /* 656bc36eafdSMike Gerdts * aslopcodes - generate AML opcodes 657bc36eafdSMike Gerdts */ 658bc36eafdSMike Gerdts ACPI_STATUS 659bc36eafdSMike Gerdts OpcAmlOpcodeWalk ( 660bc36eafdSMike Gerdts ACPI_PARSE_OBJECT *Op, 661bc36eafdSMike Gerdts UINT32 Level, 662bc36eafdSMike Gerdts void *Context); 663bc36eafdSMike Gerdts 664bc36eafdSMike Gerdts ACPI_STATUS 665bc36eafdSMike Gerdts OpcAmlOpcodeUpdateWalk ( 666bc36eafdSMike Gerdts ACPI_PARSE_OBJECT *Op, 667bc36eafdSMike Gerdts UINT32 Level, 668bc36eafdSMike Gerdts void *Context); 669bc36eafdSMike Gerdts 670bc36eafdSMike Gerdts void 671bc36eafdSMike Gerdts OpcGenerateAmlOpcode ( 672bc36eafdSMike Gerdts ACPI_PARSE_OBJECT *Op); 673bc36eafdSMike Gerdts 674bc36eafdSMike Gerdts UINT32 675bc36eafdSMike Gerdts OpcSetOptimalIntegerSize ( 676bc36eafdSMike Gerdts ACPI_PARSE_OBJECT *Op); 677bc36eafdSMike Gerdts 678bc36eafdSMike Gerdts void 679bc36eafdSMike Gerdts OpcGetIntegerWidth ( 680bc36eafdSMike Gerdts ACPI_PARSE_OBJECT *Op); 681bc36eafdSMike Gerdts 682bc36eafdSMike Gerdts 683bc36eafdSMike Gerdts /* 684bc36eafdSMike Gerdts * asloperands - generate AML operands for the AML opcodes 685bc36eafdSMike Gerdts */ 686bc36eafdSMike Gerdts ACPI_PARSE_OBJECT * 687bc36eafdSMike Gerdts UtGetArg ( 688bc36eafdSMike Gerdts ACPI_PARSE_OBJECT *Op, 689bc36eafdSMike Gerdts UINT32 Argn); 690bc36eafdSMike Gerdts 691bc36eafdSMike Gerdts void 692bc36eafdSMike Gerdts OpnGenerateAmlOperands ( 693bc36eafdSMike Gerdts ACPI_PARSE_OBJECT *Op); 694bc36eafdSMike Gerdts 695bc36eafdSMike Gerdts void 696bc36eafdSMike Gerdts OpnDoPackage ( 697bc36eafdSMike Gerdts ACPI_PARSE_OBJECT *Op); 698bc36eafdSMike Gerdts 699bc36eafdSMike Gerdts 700bc36eafdSMike Gerdts /* 701bc36eafdSMike Gerdts * aslopt - optmization 702bc36eafdSMike Gerdts */ 703bc36eafdSMike Gerdts void 704bc36eafdSMike Gerdts OptOptimizeNamePath ( 705bc36eafdSMike Gerdts ACPI_PARSE_OBJECT *Op, 706bc36eafdSMike Gerdts UINT32 Flags, 707bc36eafdSMike Gerdts ACPI_WALK_STATE *WalkState, 708bc36eafdSMike Gerdts char *AmlNameString, 709bc36eafdSMike Gerdts ACPI_NAMESPACE_NODE *TargetNode); 710bc36eafdSMike Gerdts 711bc36eafdSMike Gerdts 712bc36eafdSMike Gerdts /* 713bc36eafdSMike Gerdts * aslpld - ToPLD macro support 714bc36eafdSMike Gerdts */ 715bc36eafdSMike Gerdts void 716bc36eafdSMike Gerdts OpcDoPld ( 717bc36eafdSMike Gerdts ACPI_PARSE_OBJECT *Op); 718bc36eafdSMike Gerdts 719bc36eafdSMike Gerdts 720bc36eafdSMike Gerdts /* 721bc36eafdSMike Gerdts * aslprintf - Printf/Fprintf macros 722bc36eafdSMike Gerdts */ 723bc36eafdSMike Gerdts void 724bc36eafdSMike Gerdts OpcDoPrintf ( 725bc36eafdSMike Gerdts ACPI_PARSE_OBJECT *Op); 726bc36eafdSMike Gerdts 727bc36eafdSMike Gerdts void 728bc36eafdSMike Gerdts OpcDoFprintf ( 729bc36eafdSMike Gerdts ACPI_PARSE_OBJECT *Op); 730bc36eafdSMike Gerdts 731bc36eafdSMike Gerdts 732bc36eafdSMike Gerdts /* 733bc36eafdSMike Gerdts * aslprune - parse tree pruner 734bc36eafdSMike Gerdts */ 735bc36eafdSMike Gerdts void 736bc36eafdSMike Gerdts AslPruneParseTree ( 737bc36eafdSMike Gerdts UINT32 PruneDepth, 738bc36eafdSMike Gerdts UINT32 Type); 739bc36eafdSMike Gerdts 740bc36eafdSMike Gerdts 741bc36eafdSMike Gerdts /* 742bc36eafdSMike Gerdts * aslcodegen - code generation 743bc36eafdSMike Gerdts */ 744bc36eafdSMike Gerdts void 745bc36eafdSMike Gerdts CgGenerateAmlOutput ( 746bc36eafdSMike Gerdts void); 747bc36eafdSMike Gerdts 748*35786f68SRobert Mustacchi void 749*35786f68SRobert Mustacchi CgLocalWriteAmlData ( 750*35786f68SRobert Mustacchi ACPI_PARSE_OBJECT *Op, 751*35786f68SRobert Mustacchi void *Buffer, 752*35786f68SRobert Mustacchi UINT32 Length); 753*35786f68SRobert Mustacchi 754bc36eafdSMike Gerdts 755bc36eafdSMike Gerdts /* 756bc36eafdSMike Gerdts * aslfile 757bc36eafdSMike Gerdts */ 758bc36eafdSMike Gerdts void 759bc36eafdSMike Gerdts FlOpenFile ( 760bc36eafdSMike Gerdts UINT32 FileId, 761bc36eafdSMike Gerdts char *Filename, 762bc36eafdSMike Gerdts char *Mode); 763bc36eafdSMike Gerdts 764bc36eafdSMike Gerdts 765bc36eafdSMike Gerdts /* 766bc36eafdSMike Gerdts * asllength - calculate/adjust AML package lengths 767bc36eafdSMike Gerdts */ 768bc36eafdSMike Gerdts ACPI_STATUS 769bc36eafdSMike Gerdts LnPackageLengthWalk ( 770bc36eafdSMike Gerdts ACPI_PARSE_OBJECT *Op, 771bc36eafdSMike Gerdts UINT32 Level, 772bc36eafdSMike Gerdts void *Context); 773bc36eafdSMike Gerdts 774bc36eafdSMike Gerdts ACPI_STATUS 775bc36eafdSMike Gerdts LnInitLengthsWalk ( 776bc36eafdSMike Gerdts ACPI_PARSE_OBJECT *Op, 777bc36eafdSMike Gerdts UINT32 Level, 778bc36eafdSMike Gerdts void *Context); 779bc36eafdSMike Gerdts 780bc36eafdSMike Gerdts void 781bc36eafdSMike Gerdts CgGenerateAmlLengths ( 782bc36eafdSMike Gerdts ACPI_PARSE_OBJECT *Op); 783bc36eafdSMike Gerdts 784bc36eafdSMike Gerdts 785bc36eafdSMike Gerdts /* 786bc36eafdSMike Gerdts * aslmap - opcode mappings and reserved method names 787bc36eafdSMike Gerdts */ 788bc36eafdSMike Gerdts ACPI_OBJECT_TYPE 789bc36eafdSMike Gerdts AslMapNamedOpcodeToDataType ( 790bc36eafdSMike Gerdts UINT16 Opcode); 791bc36eafdSMike Gerdts 792bc36eafdSMike Gerdts 793bc36eafdSMike Gerdts /* 794bc36eafdSMike Gerdts * aslpredef - ACPI predefined names support 795bc36eafdSMike Gerdts */ 796bc36eafdSMike Gerdts BOOLEAN 797bc36eafdSMike Gerdts ApCheckForPredefinedMethod ( 798bc36eafdSMike Gerdts ACPI_PARSE_OBJECT *Op, 799bc36eafdSMike Gerdts ASL_METHOD_INFO *MethodInfo); 800bc36eafdSMike Gerdts 801bc36eafdSMike Gerdts void 802bc36eafdSMike Gerdts ApCheckPredefinedReturnValue ( 803bc36eafdSMike Gerdts ACPI_PARSE_OBJECT *Op, 804bc36eafdSMike Gerdts ASL_METHOD_INFO *MethodInfo); 805bc36eafdSMike Gerdts 806bc36eafdSMike Gerdts UINT32 807bc36eafdSMike Gerdts ApCheckForPredefinedName ( 808bc36eafdSMike Gerdts ACPI_PARSE_OBJECT *Op, 809bc36eafdSMike Gerdts char *Name); 810bc36eafdSMike Gerdts 811bc36eafdSMike Gerdts void 812bc36eafdSMike Gerdts ApCheckForPredefinedObject ( 813bc36eafdSMike Gerdts ACPI_PARSE_OBJECT *Op, 814bc36eafdSMike Gerdts char *Name); 815bc36eafdSMike Gerdts 816bc36eafdSMike Gerdts ACPI_STATUS 817bc36eafdSMike Gerdts ApCheckObjectType ( 818bc36eafdSMike Gerdts const char *PredefinedName, 819bc36eafdSMike Gerdts ACPI_PARSE_OBJECT *Op, 820bc36eafdSMike Gerdts UINT32 ExpectedBtypes, 821bc36eafdSMike Gerdts UINT32 PackageIndex); 822bc36eafdSMike Gerdts 823bc36eafdSMike Gerdts void 824bc36eafdSMike Gerdts ApDisplayReservedNames ( 825bc36eafdSMike Gerdts void); 826bc36eafdSMike Gerdts 827bc36eafdSMike Gerdts 828bc36eafdSMike Gerdts /* 829bc36eafdSMike Gerdts * aslprepkg - ACPI predefined names support for packages 830bc36eafdSMike Gerdts */ 831bc36eafdSMike Gerdts void 832bc36eafdSMike Gerdts ApCheckPackage ( 833bc36eafdSMike Gerdts ACPI_PARSE_OBJECT *ParentOp, 834bc36eafdSMike Gerdts const ACPI_PREDEFINED_INFO *Predefined); 835bc36eafdSMike Gerdts 836bc36eafdSMike Gerdts 837bc36eafdSMike Gerdts /* 838bc36eafdSMike Gerdts * asltransform - parse tree transformations 839bc36eafdSMike Gerdts */ 840bc36eafdSMike Gerdts ACPI_STATUS 841bc36eafdSMike Gerdts TrAmlTransformWalkBegin ( 842bc36eafdSMike Gerdts ACPI_PARSE_OBJECT *Op, 843bc36eafdSMike Gerdts UINT32 Level, 844bc36eafdSMike Gerdts void *Context); 845bc36eafdSMike Gerdts 846bc36eafdSMike Gerdts ACPI_STATUS 847bc36eafdSMike Gerdts TrAmlTransformWalkEnd ( 848bc36eafdSMike Gerdts ACPI_PARSE_OBJECT *Op, 849bc36eafdSMike Gerdts UINT32 Level, 850bc36eafdSMike Gerdts void *Context); 851bc36eafdSMike Gerdts 852bc36eafdSMike Gerdts 853bc36eafdSMike Gerdts /* 854bc36eafdSMike Gerdts * aslexternal - External opcode support 855bc36eafdSMike Gerdts */ 856bc36eafdSMike Gerdts ACPI_STATUS 857bc36eafdSMike Gerdts ExAmlExternalWalkBegin ( 858bc36eafdSMike Gerdts ACPI_PARSE_OBJECT *Op, 859bc36eafdSMike Gerdts UINT32 Level, 860bc36eafdSMike Gerdts void *Context); 861bc36eafdSMike Gerdts 862bc36eafdSMike Gerdts ACPI_STATUS 863bc36eafdSMike Gerdts ExAmlExternalWalkEnd ( 864bc36eafdSMike Gerdts ACPI_PARSE_OBJECT *Op, 865bc36eafdSMike Gerdts UINT32 Level, 866bc36eafdSMike Gerdts void *Context); 867bc36eafdSMike Gerdts 868bc36eafdSMike Gerdts void 869bc36eafdSMike Gerdts ExDoExternal ( 870bc36eafdSMike Gerdts ACPI_PARSE_OBJECT *Op); 871bc36eafdSMike Gerdts 872bc36eafdSMike Gerdts /* Values for "Visitation" parameter above */ 873bc36eafdSMike Gerdts 874bc36eafdSMike Gerdts #define ASL_WALK_VISIT_DOWNWARD 0x01 875bc36eafdSMike Gerdts #define ASL_WALK_VISIT_UPWARD 0x02 876bc36eafdSMike Gerdts #define ASL_WALK_VISIT_TWICE (ASL_WALK_VISIT_DOWNWARD | ASL_WALK_VISIT_UPWARD) 877bc36eafdSMike Gerdts 878bc36eafdSMike Gerdts 879*35786f68SRobert Mustacchi /* 880*35786f68SRobert Mustacchi * aslparseop.c - Parse op create/allocate/cache 881*35786f68SRobert Mustacchi */ 882bc36eafdSMike Gerdts ACPI_PARSE_OBJECT * 883*35786f68SRobert Mustacchi TrCreateOp ( 884bc36eafdSMike Gerdts UINT32 ParseOpcode, 885bc36eafdSMike Gerdts UINT32 NumChildren, 886bc36eafdSMike Gerdts ...); 887bc36eafdSMike Gerdts 888bc36eafdSMike Gerdts ACPI_PARSE_OBJECT * 889*35786f68SRobert Mustacchi TrCreateLeafOp ( 890bc36eafdSMike Gerdts UINT32 ParseOpcode); 891bc36eafdSMike Gerdts 892bc36eafdSMike Gerdts ACPI_PARSE_OBJECT * 893*35786f68SRobert Mustacchi TrCreateNullTargetOp ( 894bc36eafdSMike Gerdts void); 895bc36eafdSMike Gerdts 896bc36eafdSMike Gerdts ACPI_PARSE_OBJECT * 897*35786f68SRobert Mustacchi TrCreateAssignmentOp ( 898bc36eafdSMike Gerdts ACPI_PARSE_OBJECT *Target, 899bc36eafdSMike Gerdts ACPI_PARSE_OBJECT *Source); 900bc36eafdSMike Gerdts 901bc36eafdSMike Gerdts ACPI_PARSE_OBJECT * 902*35786f68SRobert Mustacchi TrCreateTargetOp ( 903bc36eafdSMike Gerdts ACPI_PARSE_OBJECT *OriginalOp, 904bc36eafdSMike Gerdts ACPI_PARSE_OBJECT *ParentOp); 905bc36eafdSMike Gerdts 906bc36eafdSMike Gerdts ACPI_PARSE_OBJECT * 907*35786f68SRobert Mustacchi TrCreateValuedLeafOp ( 908bc36eafdSMike Gerdts UINT32 ParseOpcode, 909bc36eafdSMike Gerdts UINT64 Value); 910bc36eafdSMike Gerdts 911bc36eafdSMike Gerdts ACPI_PARSE_OBJECT * 912*35786f68SRobert Mustacchi TrCreateConstantLeafOp ( 913bc36eafdSMike Gerdts UINT32 ParseOpcode); 914bc36eafdSMike Gerdts 915bc36eafdSMike Gerdts ACPI_PARSE_OBJECT * 916*35786f68SRobert Mustacchi TrAllocateOp ( 917*35786f68SRobert Mustacchi UINT32 ParseOpcode); 918*35786f68SRobert Mustacchi 919*35786f68SRobert Mustacchi void 920*35786f68SRobert Mustacchi TrPrintOpFlags ( 921*35786f68SRobert Mustacchi UINT32 Flags, 922*35786f68SRobert Mustacchi UINT32 OutputLevel); 923*35786f68SRobert Mustacchi 924*35786f68SRobert Mustacchi 925*35786f68SRobert Mustacchi /* 926*35786f68SRobert Mustacchi * asltree.c - Parse tree management 927*35786f68SRobert Mustacchi */ 928*35786f68SRobert Mustacchi void 929*35786f68SRobert Mustacchi TrSetOpParent ( 930*35786f68SRobert Mustacchi ACPI_PARSE_OBJECT *Op, 931*35786f68SRobert Mustacchi ACPI_PARSE_OBJECT *ParentOp); 932*35786f68SRobert Mustacchi 933*35786f68SRobert Mustacchi ACPI_PARSE_OBJECT * 934*35786f68SRobert Mustacchi TrSetOpIntegerValue ( 935*35786f68SRobert Mustacchi UINT32 ParseOpcode, 936*35786f68SRobert Mustacchi ACPI_PARSE_OBJECT *Op); 937*35786f68SRobert Mustacchi 938*35786f68SRobert Mustacchi void 939*35786f68SRobert Mustacchi TrSetOpEndLineNumber ( 940*35786f68SRobert Mustacchi ACPI_PARSE_OBJECT *Op); 941*35786f68SRobert Mustacchi 942*35786f68SRobert Mustacchi void 943*35786f68SRobert Mustacchi TrSetOpCurrentFilename ( 944*35786f68SRobert Mustacchi ACPI_PARSE_OBJECT *Op); 945*35786f68SRobert Mustacchi 946*35786f68SRobert Mustacchi void 947*35786f68SRobert Mustacchi TrSetOpIntegerWidth ( 948*35786f68SRobert Mustacchi ACPI_PARSE_OBJECT *TableSignature, 949*35786f68SRobert Mustacchi ACPI_PARSE_OBJECT *Revision); 950*35786f68SRobert Mustacchi 951*35786f68SRobert Mustacchi ACPI_PARSE_OBJECT * 952*35786f68SRobert Mustacchi TrLinkOpChildren ( 953bc36eafdSMike Gerdts ACPI_PARSE_OBJECT *Op, 954bc36eafdSMike Gerdts UINT32 NumChildren, 955bc36eafdSMike Gerdts ...); 956bc36eafdSMike Gerdts 957bc36eafdSMike Gerdts ACPI_PARSE_OBJECT * 958*35786f68SRobert Mustacchi TrLinkPeerOp ( 959bc36eafdSMike Gerdts ACPI_PARSE_OBJECT *Op1, 960bc36eafdSMike Gerdts ACPI_PARSE_OBJECT *Op2); 961bc36eafdSMike Gerdts 962bc36eafdSMike Gerdts ACPI_PARSE_OBJECT * 963*35786f68SRobert Mustacchi TrLinkChildOp ( 964bc36eafdSMike Gerdts ACPI_PARSE_OBJECT *Op1, 965bc36eafdSMike Gerdts ACPI_PARSE_OBJECT *Op2); 966bc36eafdSMike Gerdts 967bc36eafdSMike Gerdts ACPI_PARSE_OBJECT * 968*35786f68SRobert Mustacchi TrSetOpFlags ( 969bc36eafdSMike Gerdts ACPI_PARSE_OBJECT *Op, 970bc36eafdSMike Gerdts UINT32 Flags); 971bc36eafdSMike Gerdts 972bc36eafdSMike Gerdts ACPI_PARSE_OBJECT * 973*35786f68SRobert Mustacchi TrSetOpAmlLength ( 974bc36eafdSMike Gerdts ACPI_PARSE_OBJECT *Op, 975bc36eafdSMike Gerdts UINT32 Length); 976bc36eafdSMike Gerdts 977bc36eafdSMike Gerdts ACPI_PARSE_OBJECT * 978*35786f68SRobert Mustacchi TrLinkPeerOps ( 979bc36eafdSMike Gerdts UINT32 NumPeers, 980bc36eafdSMike Gerdts ...); 981bc36eafdSMike Gerdts 982*35786f68SRobert Mustacchi ACPI_STATUS 983*35786f68SRobert Mustacchi TrWalkParseTree ( 984*35786f68SRobert Mustacchi ACPI_PARSE_OBJECT *Op, 985*35786f68SRobert Mustacchi UINT32 Visitation, 986*35786f68SRobert Mustacchi ASL_WALK_CALLBACK DescendingCallback, 987*35786f68SRobert Mustacchi ASL_WALK_CALLBACK AscendingCallback, 988*35786f68SRobert Mustacchi void *Context); 989*35786f68SRobert Mustacchi 990bc36eafdSMike Gerdts 991bc36eafdSMike Gerdts /* 992bc36eafdSMike Gerdts * aslfiles - File I/O support 993bc36eafdSMike Gerdts */ 994bc36eafdSMike Gerdts void 995bc36eafdSMike Gerdts FlAddIncludeDirectory ( 996bc36eafdSMike Gerdts char *Dir); 997bc36eafdSMike Gerdts 998bc36eafdSMike Gerdts char * 999bc36eafdSMike Gerdts FlMergePathnames ( 1000bc36eafdSMike Gerdts char *PrefixDir, 1001bc36eafdSMike Gerdts char *FilePathname); 1002bc36eafdSMike Gerdts 1003bc36eafdSMike Gerdts void 1004bc36eafdSMike Gerdts FlOpenIncludeFile ( 1005bc36eafdSMike Gerdts ACPI_PARSE_OBJECT *Op); 1006bc36eafdSMike Gerdts 1007bc36eafdSMike Gerdts void 1008bc36eafdSMike Gerdts FlFileError ( 1009bc36eafdSMike Gerdts UINT32 FileId, 1010bc36eafdSMike Gerdts UINT8 ErrorId); 1011bc36eafdSMike Gerdts 1012bc36eafdSMike Gerdts UINT32 1013bc36eafdSMike Gerdts FlGetFileSize ( 1014bc36eafdSMike Gerdts UINT32 FileId); 1015bc36eafdSMike Gerdts 1016bc36eafdSMike Gerdts ACPI_STATUS 1017bc36eafdSMike Gerdts FlReadFile ( 1018bc36eafdSMike Gerdts UINT32 FileId, 1019bc36eafdSMike Gerdts void *Buffer, 1020bc36eafdSMike Gerdts UINT32 Length); 1021bc36eafdSMike Gerdts 1022bc36eafdSMike Gerdts void 1023bc36eafdSMike Gerdts FlWriteFile ( 1024bc36eafdSMike Gerdts UINT32 FileId, 1025bc36eafdSMike Gerdts void *Buffer, 1026bc36eafdSMike Gerdts UINT32 Length); 1027bc36eafdSMike Gerdts 1028bc36eafdSMike Gerdts void 1029bc36eafdSMike Gerdts FlSeekFile ( 1030bc36eafdSMike Gerdts UINT32 FileId, 1031bc36eafdSMike Gerdts long Offset); 1032bc36eafdSMike Gerdts 1033bc36eafdSMike Gerdts void 1034bc36eafdSMike Gerdts FlCloseFile ( 1035bc36eafdSMike Gerdts UINT32 FileId); 1036bc36eafdSMike Gerdts 1037bc36eafdSMike Gerdts void 1038bc36eafdSMike Gerdts FlPrintFile ( 1039bc36eafdSMike Gerdts UINT32 FileId, 1040bc36eafdSMike Gerdts char *Format, 1041bc36eafdSMike Gerdts ...); 1042bc36eafdSMike Gerdts 1043bc36eafdSMike Gerdts void 1044bc36eafdSMike Gerdts FlDeleteFile ( 1045bc36eafdSMike Gerdts UINT32 FileId); 1046bc36eafdSMike Gerdts 1047bc36eafdSMike Gerdts void 1048bc36eafdSMike Gerdts FlSetLineNumber ( 1049bc36eafdSMike Gerdts UINT32 LineNumber); 1050bc36eafdSMike Gerdts 1051bc36eafdSMike Gerdts void 1052bc36eafdSMike Gerdts FlSetFilename ( 1053bc36eafdSMike Gerdts char *Filename); 1054bc36eafdSMike Gerdts 1055bc36eafdSMike Gerdts ACPI_STATUS 1056bc36eafdSMike Gerdts FlOpenInputFile ( 1057bc36eafdSMike Gerdts char *InputFilename); 1058bc36eafdSMike Gerdts 1059bc36eafdSMike Gerdts ACPI_STATUS 1060bc36eafdSMike Gerdts FlOpenAmlOutputFile ( 1061bc36eafdSMike Gerdts char *InputFilename); 1062bc36eafdSMike Gerdts 1063bc36eafdSMike Gerdts ACPI_STATUS 1064bc36eafdSMike Gerdts FlOpenMiscOutputFiles ( 1065bc36eafdSMike Gerdts char *InputFilename); 1066bc36eafdSMike Gerdts 1067bc36eafdSMike Gerdts /* 1068bc36eafdSMike Gerdts * aslhwmap - hardware map summary 1069bc36eafdSMike Gerdts */ 1070bc36eafdSMike Gerdts void 1071bc36eafdSMike Gerdts MpEmitMappingInfo ( 1072bc36eafdSMike Gerdts void); 1073bc36eafdSMike Gerdts 1074bc36eafdSMike Gerdts 1075bc36eafdSMike Gerdts /* 1076bc36eafdSMike Gerdts * asload - load namespace in prep for cross reference 1077bc36eafdSMike Gerdts */ 1078bc36eafdSMike Gerdts ACPI_STATUS 1079bc36eafdSMike Gerdts LdLoadNamespace ( 1080bc36eafdSMike Gerdts ACPI_PARSE_OBJECT *RootOp); 1081bc36eafdSMike Gerdts 1082bc36eafdSMike Gerdts 1083bc36eafdSMike Gerdts /* 1084bc36eafdSMike Gerdts * asllookup - namespace lookup functions 1085bc36eafdSMike Gerdts */ 1086bc36eafdSMike Gerdts void 1087bc36eafdSMike Gerdts LkFindUnreferencedObjects ( 1088bc36eafdSMike Gerdts void); 1089bc36eafdSMike Gerdts 1090bc36eafdSMike Gerdts /* 1091*35786f68SRobert Mustacchi * aslhelp - help screens 1092bc36eafdSMike Gerdts */ 1093bc36eafdSMike Gerdts void 1094bc36eafdSMike Gerdts Usage ( 1095bc36eafdSMike Gerdts void); 1096bc36eafdSMike Gerdts 1097bc36eafdSMike Gerdts void 1098bc36eafdSMike Gerdts AslFilenameHelp ( 1099bc36eafdSMike Gerdts void); 1100bc36eafdSMike Gerdts 1101*35786f68SRobert Mustacchi void 1102*35786f68SRobert Mustacchi AslDisassemblyHelp ( 1103*35786f68SRobert Mustacchi void); 1104*35786f68SRobert Mustacchi 1105bc36eafdSMike Gerdts 1106bc36eafdSMike Gerdts /* 1107bc36eafdSMike Gerdts * aslnamesp - namespace output file generation 1108bc36eafdSMike Gerdts */ 1109bc36eafdSMike Gerdts ACPI_STATUS 1110bc36eafdSMike Gerdts NsDisplayNamespace ( 1111bc36eafdSMike Gerdts void); 1112bc36eafdSMike Gerdts 1113bc36eafdSMike Gerdts void 1114bc36eafdSMike Gerdts NsSetupNamespaceListing ( 1115bc36eafdSMike Gerdts void *Handle); 1116bc36eafdSMike Gerdts 1117bc36eafdSMike Gerdts /* 1118bc36eafdSMike Gerdts * asloptions - command line processing 1119bc36eafdSMike Gerdts */ 1120bc36eafdSMike Gerdts int 1121bc36eafdSMike Gerdts AslCommandLine ( 1122bc36eafdSMike Gerdts int argc, 1123bc36eafdSMike Gerdts char **argv); 1124bc36eafdSMike Gerdts 1125bc36eafdSMike Gerdts /* 1126bc36eafdSMike Gerdts * aslxref - namespace cross reference 1127bc36eafdSMike Gerdts */ 1128bc36eafdSMike Gerdts ACPI_STATUS 1129bc36eafdSMike Gerdts XfCrossReferenceNamespace ( 1130bc36eafdSMike Gerdts void); 1131bc36eafdSMike Gerdts 1132bc36eafdSMike Gerdts 1133bc36eafdSMike Gerdts /* 1134bc36eafdSMike Gerdts * aslxrefout 1135bc36eafdSMike Gerdts */ 1136bc36eafdSMike Gerdts void 1137bc36eafdSMike Gerdts OtPrintHeaders ( 1138bc36eafdSMike Gerdts char *Message); 1139bc36eafdSMike Gerdts 1140bc36eafdSMike Gerdts void 1141bc36eafdSMike Gerdts OtCreateXrefFile ( 1142bc36eafdSMike Gerdts void); 1143bc36eafdSMike Gerdts 1144bc36eafdSMike Gerdts void 1145bc36eafdSMike Gerdts OtXrefWalkPart1 ( 1146bc36eafdSMike Gerdts ACPI_PARSE_OBJECT *Op, 1147bc36eafdSMike Gerdts UINT32 Level, 1148bc36eafdSMike Gerdts ASL_METHOD_INFO *MethodInfo); 1149bc36eafdSMike Gerdts 1150bc36eafdSMike Gerdts 1151bc36eafdSMike Gerdts /* 1152bc36eafdSMike Gerdts * aslutils - common compiler utilites 1153bc36eafdSMike Gerdts */ 1154bc36eafdSMike Gerdts void 1155bc36eafdSMike Gerdts DbgPrint ( 1156bc36eafdSMike Gerdts UINT32 Type, 1157bc36eafdSMike Gerdts char *Format, 1158bc36eafdSMike Gerdts ...); 1159bc36eafdSMike Gerdts 1160bc36eafdSMike Gerdts /* Type values for above */ 1161bc36eafdSMike Gerdts 1162bc36eafdSMike Gerdts #define ASL_DEBUG_OUTPUT 0 1163bc36eafdSMike Gerdts #define ASL_PARSE_OUTPUT 1 1164bc36eafdSMike Gerdts #define ASL_TREE_OUTPUT 2 1165bc36eafdSMike Gerdts 1166bc36eafdSMike Gerdts UINT8 1167bc36eafdSMike Gerdts UtIsBigEndianMachine ( 1168bc36eafdSMike Gerdts void); 1169bc36eafdSMike Gerdts 1170bc36eafdSMike Gerdts BOOLEAN 1171bc36eafdSMike Gerdts UtQueryForOverwrite ( 1172bc36eafdSMike Gerdts char *Pathname); 1173bc36eafdSMike Gerdts 1174bc36eafdSMike Gerdts void 1175bc36eafdSMike Gerdts UtDumpStringOp ( 1176bc36eafdSMike Gerdts ACPI_PARSE_OBJECT *Op, 1177bc36eafdSMike Gerdts UINT32 Level); 1178bc36eafdSMike Gerdts 1179bc36eafdSMike Gerdts void 1180bc36eafdSMike Gerdts UtDumpIntegerOp ( 1181bc36eafdSMike Gerdts ACPI_PARSE_OBJECT *Op, 1182bc36eafdSMike Gerdts UINT32 Level, 1183bc36eafdSMike Gerdts UINT32 IntegerLength); 1184bc36eafdSMike Gerdts 1185bc36eafdSMike Gerdts void 1186bc36eafdSMike Gerdts UtDumpBasicOp ( 1187bc36eafdSMike Gerdts ACPI_PARSE_OBJECT *Op, 1188bc36eafdSMike Gerdts UINT32 Level); 1189bc36eafdSMike Gerdts 1190*35786f68SRobert Mustacchi void * 1191*35786f68SRobert Mustacchi UtGetParentMethod ( 1192*35786f68SRobert Mustacchi ACPI_NAMESPACE_NODE *Node); 1193*35786f68SRobert Mustacchi 1194*35786f68SRobert Mustacchi BOOLEAN 1195*35786f68SRobert Mustacchi UtNodeIsDescendantOf ( 1196*35786f68SRobert Mustacchi ACPI_NAMESPACE_NODE *Node1, 1197*35786f68SRobert Mustacchi ACPI_NAMESPACE_NODE *Node2); 1198*35786f68SRobert Mustacchi 1199bc36eafdSMike Gerdts void 1200bc36eafdSMike Gerdts UtDisplaySupportedTables ( 1201bc36eafdSMike Gerdts void); 1202bc36eafdSMike Gerdts 1203bc36eafdSMike Gerdts void 1204bc36eafdSMike Gerdts UtDisplayConstantOpcodes ( 1205bc36eafdSMike Gerdts void); 1206bc36eafdSMike Gerdts 1207bc36eafdSMike Gerdts UINT8 1208bc36eafdSMike Gerdts UtBeginEvent ( 1209bc36eafdSMike Gerdts char *Name); 1210bc36eafdSMike Gerdts 1211bc36eafdSMike Gerdts void 1212bc36eafdSMike Gerdts UtEndEvent ( 1213bc36eafdSMike Gerdts UINT8 Event); 1214bc36eafdSMike Gerdts 1215bc36eafdSMike Gerdts void 1216bc36eafdSMike Gerdts UtDisplaySummary ( 1217bc36eafdSMike Gerdts UINT32 FileId); 1218bc36eafdSMike Gerdts 1219bc36eafdSMike Gerdts void 1220bc36eafdSMike Gerdts UtConvertByteToHex ( 1221bc36eafdSMike Gerdts UINT8 RawByte, 1222bc36eafdSMike Gerdts UINT8 *Buffer); 1223bc36eafdSMike Gerdts 1224bc36eafdSMike Gerdts void 1225bc36eafdSMike Gerdts UtConvertByteToAsmHex ( 1226bc36eafdSMike Gerdts UINT8 RawByte, 1227bc36eafdSMike Gerdts UINT8 *Buffer); 1228bc36eafdSMike Gerdts 1229bc36eafdSMike Gerdts char * 1230bc36eafdSMike Gerdts UtGetOpName ( 1231bc36eafdSMike Gerdts UINT32 ParseOpcode); 1232bc36eafdSMike Gerdts 1233bc36eafdSMike Gerdts void 1234bc36eafdSMike Gerdts UtSetParseOpName ( 1235bc36eafdSMike Gerdts ACPI_PARSE_OBJECT *Op); 1236bc36eafdSMike Gerdts 1237bc36eafdSMike Gerdts ACPI_STATUS 1238bc36eafdSMike Gerdts UtInternalizeName ( 1239bc36eafdSMike Gerdts char *ExternalName, 1240bc36eafdSMike Gerdts char **ConvertedName); 1241bc36eafdSMike Gerdts 1242bc36eafdSMike Gerdts void 1243bc36eafdSMike Gerdts UtAttachNamepathToOwner ( 1244bc36eafdSMike Gerdts ACPI_PARSE_OBJECT *Op, 1245bc36eafdSMike Gerdts ACPI_PARSE_OBJECT *NameNode); 1246bc36eafdSMike Gerdts 1247bc36eafdSMike Gerdts ACPI_PARSE_OBJECT * 1248bc36eafdSMike Gerdts UtCheckIntegerRange ( 1249bc36eafdSMike Gerdts ACPI_PARSE_OBJECT *Op, 1250bc36eafdSMike Gerdts UINT32 LowValue, 1251bc36eafdSMike Gerdts UINT32 HighValue); 1252bc36eafdSMike Gerdts 1253bc36eafdSMike Gerdts UINT64 1254bc36eafdSMike Gerdts UtDoConstant ( 1255bc36eafdSMike Gerdts char *String); 1256bc36eafdSMike Gerdts 1257bc36eafdSMike Gerdts 1258bc36eafdSMike Gerdts /* 1259bc36eafdSMike Gerdts * asluuid - UUID support 1260bc36eafdSMike Gerdts */ 1261bc36eafdSMike Gerdts ACPI_STATUS 1262bc36eafdSMike Gerdts AuValidateUuid ( 1263bc36eafdSMike Gerdts char *InString); 1264bc36eafdSMike Gerdts 1265bc36eafdSMike Gerdts ACPI_STATUS 1266bc36eafdSMike Gerdts AuConvertUuidToString ( 1267bc36eafdSMike Gerdts char *UuIdBuffer, 1268bc36eafdSMike Gerdts char *OutString); 1269bc36eafdSMike Gerdts 1270bc36eafdSMike Gerdts /* 1271bc36eafdSMike Gerdts * aslresource - Resource template generation utilities 1272bc36eafdSMike Gerdts */ 1273bc36eafdSMike Gerdts void 1274bc36eafdSMike Gerdts RsSmallAddressCheck ( 1275bc36eafdSMike Gerdts UINT8 Type, 1276bc36eafdSMike Gerdts UINT32 Minimum, 1277bc36eafdSMike Gerdts UINT32 Maximum, 1278bc36eafdSMike Gerdts UINT32 Length, 1279bc36eafdSMike Gerdts UINT32 Alignment, 1280bc36eafdSMike Gerdts ACPI_PARSE_OBJECT *MinOp, 1281bc36eafdSMike Gerdts ACPI_PARSE_OBJECT *MaxOp, 1282bc36eafdSMike Gerdts ACPI_PARSE_OBJECT *LengthOp, 1283bc36eafdSMike Gerdts ACPI_PARSE_OBJECT *AlignOp, 1284bc36eafdSMike Gerdts ACPI_PARSE_OBJECT *Op); 1285bc36eafdSMike Gerdts 1286bc36eafdSMike Gerdts void 1287bc36eafdSMike Gerdts RsLargeAddressCheck ( 1288bc36eafdSMike Gerdts UINT64 Minimum, 1289bc36eafdSMike Gerdts UINT64 Maximum, 1290bc36eafdSMike Gerdts UINT64 Length, 1291bc36eafdSMike Gerdts UINT64 Granularity, 1292bc36eafdSMike Gerdts UINT8 Flags, 1293bc36eafdSMike Gerdts ACPI_PARSE_OBJECT *MinOp, 1294bc36eafdSMike Gerdts ACPI_PARSE_OBJECT *MaxOp, 1295bc36eafdSMike Gerdts ACPI_PARSE_OBJECT *LengthOp, 1296bc36eafdSMike Gerdts ACPI_PARSE_OBJECT *GranOp, 1297bc36eafdSMike Gerdts ACPI_PARSE_OBJECT *Op); 1298bc36eafdSMike Gerdts 1299bc36eafdSMike Gerdts UINT16 1300bc36eafdSMike Gerdts RsGetStringDataLength ( 1301bc36eafdSMike Gerdts ACPI_PARSE_OBJECT *InitializerOp); 1302bc36eafdSMike Gerdts 1303bc36eafdSMike Gerdts ASL_RESOURCE_NODE * 1304bc36eafdSMike Gerdts RsAllocateResourceNode ( 1305bc36eafdSMike Gerdts UINT32 Size); 1306bc36eafdSMike Gerdts 1307bc36eafdSMike Gerdts void 1308bc36eafdSMike Gerdts RsCreateResourceField ( 1309bc36eafdSMike Gerdts ACPI_PARSE_OBJECT *Op, 1310bc36eafdSMike Gerdts char *Name, 1311bc36eafdSMike Gerdts UINT32 ByteOffset, 1312bc36eafdSMike Gerdts UINT32 BitOffset, 1313bc36eafdSMike Gerdts UINT32 BitLength); 1314bc36eafdSMike Gerdts 1315bc36eafdSMike Gerdts void 1316bc36eafdSMike Gerdts RsSetFlagBits ( 1317bc36eafdSMike Gerdts UINT8 *Flags, 1318bc36eafdSMike Gerdts ACPI_PARSE_OBJECT *Op, 1319bc36eafdSMike Gerdts UINT8 Position, 1320bc36eafdSMike Gerdts UINT8 DefaultBit); 1321bc36eafdSMike Gerdts 1322bc36eafdSMike Gerdts void 1323bc36eafdSMike Gerdts RsSetFlagBits16 ( 1324bc36eafdSMike Gerdts UINT16 *Flags, 1325bc36eafdSMike Gerdts ACPI_PARSE_OBJECT *Op, 1326bc36eafdSMike Gerdts UINT8 Position, 1327bc36eafdSMike Gerdts UINT8 DefaultBit); 1328bc36eafdSMike Gerdts 1329bc36eafdSMike Gerdts ACPI_PARSE_OBJECT * 1330bc36eafdSMike Gerdts RsCompleteNodeAndGetNext ( 1331bc36eafdSMike Gerdts ACPI_PARSE_OBJECT *Op); 1332bc36eafdSMike Gerdts 1333bc36eafdSMike Gerdts void 1334bc36eafdSMike Gerdts RsCheckListForDuplicates ( 1335bc36eafdSMike Gerdts ACPI_PARSE_OBJECT *Op); 1336bc36eafdSMike Gerdts 1337bc36eafdSMike Gerdts ASL_RESOURCE_NODE * 1338bc36eafdSMike Gerdts RsDoOneResourceDescriptor ( 1339bc36eafdSMike Gerdts ASL_RESOURCE_INFO *Info, 1340bc36eafdSMike Gerdts UINT8 *State); 1341bc36eafdSMike Gerdts 1342bc36eafdSMike Gerdts /* Values for State above */ 1343bc36eafdSMike Gerdts 1344bc36eafdSMike Gerdts #define ACPI_RSTATE_NORMAL 0 1345bc36eafdSMike Gerdts #define ACPI_RSTATE_START_DEPENDENT 1 1346bc36eafdSMike Gerdts #define ACPI_RSTATE_DEPENDENT_LIST 2 1347bc36eafdSMike Gerdts 1348bc36eafdSMike Gerdts UINT32 1349bc36eafdSMike Gerdts RsLinkDescriptorChain ( 1350bc36eafdSMike Gerdts ASL_RESOURCE_NODE **PreviousRnode, 1351bc36eafdSMike Gerdts ASL_RESOURCE_NODE *Rnode); 1352bc36eafdSMike Gerdts 1353bc36eafdSMike Gerdts void 1354bc36eafdSMike Gerdts RsDoResourceTemplate ( 1355bc36eafdSMike Gerdts ACPI_PARSE_OBJECT *Op); 1356bc36eafdSMike Gerdts 1357bc36eafdSMike Gerdts 1358bc36eafdSMike Gerdts /* 1359bc36eafdSMike Gerdts * aslrestype1 - Miscellaneous Small descriptors 1360bc36eafdSMike Gerdts */ 1361bc36eafdSMike Gerdts ASL_RESOURCE_NODE * 1362bc36eafdSMike Gerdts RsDoEndTagDescriptor ( 1363bc36eafdSMike Gerdts ASL_RESOURCE_INFO *Info); 1364bc36eafdSMike Gerdts 1365bc36eafdSMike Gerdts ASL_RESOURCE_NODE * 1366bc36eafdSMike Gerdts RsDoEndDependentDescriptor ( 1367bc36eafdSMike Gerdts ASL_RESOURCE_INFO *Info); 1368bc36eafdSMike Gerdts 1369bc36eafdSMike Gerdts ASL_RESOURCE_NODE * 1370bc36eafdSMike Gerdts RsDoMemory24Descriptor ( 1371bc36eafdSMike Gerdts ASL_RESOURCE_INFO *Info); 1372bc36eafdSMike Gerdts 1373bc36eafdSMike Gerdts ASL_RESOURCE_NODE * 1374bc36eafdSMike Gerdts RsDoMemory32Descriptor ( 1375bc36eafdSMike Gerdts ASL_RESOURCE_INFO *Info); 1376bc36eafdSMike Gerdts 1377bc36eafdSMike Gerdts ASL_RESOURCE_NODE * 1378bc36eafdSMike Gerdts RsDoMemory32FixedDescriptor ( 1379bc36eafdSMike Gerdts ASL_RESOURCE_INFO *Info); 1380bc36eafdSMike Gerdts 1381bc36eafdSMike Gerdts ASL_RESOURCE_NODE * 1382bc36eafdSMike Gerdts RsDoStartDependentDescriptor ( 1383bc36eafdSMike Gerdts ASL_RESOURCE_INFO *Info); 1384bc36eafdSMike Gerdts 1385bc36eafdSMike Gerdts ASL_RESOURCE_NODE * 1386bc36eafdSMike Gerdts RsDoStartDependentNoPriDescriptor ( 1387bc36eafdSMike Gerdts ASL_RESOURCE_INFO *Info); 1388bc36eafdSMike Gerdts 1389bc36eafdSMike Gerdts ASL_RESOURCE_NODE * 1390bc36eafdSMike Gerdts RsDoVendorSmallDescriptor ( 1391bc36eafdSMike Gerdts ASL_RESOURCE_INFO *Info); 1392bc36eafdSMike Gerdts 1393bc36eafdSMike Gerdts 1394bc36eafdSMike Gerdts /* 1395bc36eafdSMike Gerdts * aslrestype1i - I/O-related Small descriptors 1396bc36eafdSMike Gerdts */ 1397bc36eafdSMike Gerdts ASL_RESOURCE_NODE * 1398bc36eafdSMike Gerdts RsDoDmaDescriptor ( 1399bc36eafdSMike Gerdts ASL_RESOURCE_INFO *Info); 1400bc36eafdSMike Gerdts 1401bc36eafdSMike Gerdts ASL_RESOURCE_NODE * 1402bc36eafdSMike Gerdts RsDoFixedDmaDescriptor ( 1403bc36eafdSMike Gerdts ASL_RESOURCE_INFO *Info); 1404bc36eafdSMike Gerdts 1405bc36eafdSMike Gerdts ASL_RESOURCE_NODE * 1406bc36eafdSMike Gerdts RsDoFixedIoDescriptor ( 1407bc36eafdSMike Gerdts ASL_RESOURCE_INFO *Info); 1408bc36eafdSMike Gerdts 1409bc36eafdSMike Gerdts ASL_RESOURCE_NODE * 1410bc36eafdSMike Gerdts RsDoIoDescriptor ( 1411bc36eafdSMike Gerdts ASL_RESOURCE_INFO *Info); 1412bc36eafdSMike Gerdts 1413bc36eafdSMike Gerdts ASL_RESOURCE_NODE * 1414bc36eafdSMike Gerdts RsDoIrqDescriptor ( 1415bc36eafdSMike Gerdts ASL_RESOURCE_INFO *Info); 1416bc36eafdSMike Gerdts 1417bc36eafdSMike Gerdts ASL_RESOURCE_NODE * 1418bc36eafdSMike Gerdts RsDoIrqNoFlagsDescriptor ( 1419bc36eafdSMike Gerdts ASL_RESOURCE_INFO *Info); 1420bc36eafdSMike Gerdts 1421bc36eafdSMike Gerdts 1422bc36eafdSMike Gerdts /* 1423bc36eafdSMike Gerdts * aslrestype2 - Large resource descriptors 1424bc36eafdSMike Gerdts */ 1425bc36eafdSMike Gerdts ASL_RESOURCE_NODE * 1426bc36eafdSMike Gerdts RsDoInterruptDescriptor ( 1427bc36eafdSMike Gerdts ASL_RESOURCE_INFO *Info); 1428bc36eafdSMike Gerdts 1429bc36eafdSMike Gerdts ASL_RESOURCE_NODE * 1430bc36eafdSMike Gerdts RsDoVendorLargeDescriptor ( 1431bc36eafdSMike Gerdts ASL_RESOURCE_INFO *Info); 1432bc36eafdSMike Gerdts 1433bc36eafdSMike Gerdts ASL_RESOURCE_NODE * 1434bc36eafdSMike Gerdts RsDoGeneralRegisterDescriptor ( 1435bc36eafdSMike Gerdts ASL_RESOURCE_INFO *Info); 1436bc36eafdSMike Gerdts 1437bc36eafdSMike Gerdts ASL_RESOURCE_NODE * 1438bc36eafdSMike Gerdts RsDoGpioIntDescriptor ( 1439bc36eafdSMike Gerdts ASL_RESOURCE_INFO *Info); 1440bc36eafdSMike Gerdts 1441bc36eafdSMike Gerdts ASL_RESOURCE_NODE * 1442bc36eafdSMike Gerdts RsDoGpioIoDescriptor ( 1443bc36eafdSMike Gerdts ASL_RESOURCE_INFO *Info); 1444bc36eafdSMike Gerdts 1445bc36eafdSMike Gerdts ASL_RESOURCE_NODE * 1446bc36eafdSMike Gerdts RsDoI2cSerialBusDescriptor ( 1447bc36eafdSMike Gerdts ASL_RESOURCE_INFO *Info); 1448bc36eafdSMike Gerdts 1449bc36eafdSMike Gerdts ASL_RESOURCE_NODE * 1450bc36eafdSMike Gerdts RsDoSpiSerialBusDescriptor ( 1451bc36eafdSMike Gerdts ASL_RESOURCE_INFO *Info); 1452bc36eafdSMike Gerdts 1453bc36eafdSMike Gerdts ASL_RESOURCE_NODE * 1454bc36eafdSMike Gerdts RsDoUartSerialBusDescriptor ( 1455bc36eafdSMike Gerdts ASL_RESOURCE_INFO *Info); 1456bc36eafdSMike Gerdts 1457*35786f68SRobert Mustacchi ASL_RESOURCE_NODE * 1458*35786f68SRobert Mustacchi RsDoPinFunctionDescriptor ( 1459*35786f68SRobert Mustacchi ASL_RESOURCE_INFO *Info); 1460*35786f68SRobert Mustacchi 1461*35786f68SRobert Mustacchi ASL_RESOURCE_NODE * 1462*35786f68SRobert Mustacchi RsDoPinConfigDescriptor ( 1463*35786f68SRobert Mustacchi ASL_RESOURCE_INFO *Info); 1464*35786f68SRobert Mustacchi 1465*35786f68SRobert Mustacchi ASL_RESOURCE_NODE * 1466*35786f68SRobert Mustacchi RsDoPinGroupDescriptor ( 1467*35786f68SRobert Mustacchi ASL_RESOURCE_INFO *Info); 1468*35786f68SRobert Mustacchi 1469*35786f68SRobert Mustacchi ASL_RESOURCE_NODE * 1470*35786f68SRobert Mustacchi RsDoPinGroupFunctionDescriptor ( 1471*35786f68SRobert Mustacchi ASL_RESOURCE_INFO *Info); 1472*35786f68SRobert Mustacchi 1473*35786f68SRobert Mustacchi ASL_RESOURCE_NODE * 1474*35786f68SRobert Mustacchi RsDoPinGroupConfigDescriptor ( 1475*35786f68SRobert Mustacchi ASL_RESOURCE_INFO *Info); 1476*35786f68SRobert Mustacchi 1477bc36eafdSMike Gerdts /* 1478bc36eafdSMike Gerdts * aslrestype2d - DWord address descriptors 1479bc36eafdSMike Gerdts */ 1480bc36eafdSMike Gerdts ASL_RESOURCE_NODE * 1481bc36eafdSMike Gerdts RsDoDwordIoDescriptor ( 1482bc36eafdSMike Gerdts ASL_RESOURCE_INFO *Info); 1483bc36eafdSMike Gerdts 1484bc36eafdSMike Gerdts ASL_RESOURCE_NODE * 1485bc36eafdSMike Gerdts RsDoDwordMemoryDescriptor ( 1486bc36eafdSMike Gerdts ASL_RESOURCE_INFO *Info); 1487bc36eafdSMike Gerdts 1488bc36eafdSMike Gerdts ASL_RESOURCE_NODE * 1489bc36eafdSMike Gerdts RsDoDwordSpaceDescriptor ( 1490bc36eafdSMike Gerdts ASL_RESOURCE_INFO *Info); 1491bc36eafdSMike Gerdts 1492bc36eafdSMike Gerdts 1493bc36eafdSMike Gerdts /* 1494bc36eafdSMike Gerdts * aslrestype2e - Extended address descriptors 1495bc36eafdSMike Gerdts */ 1496bc36eafdSMike Gerdts ASL_RESOURCE_NODE * 1497bc36eafdSMike Gerdts RsDoExtendedIoDescriptor ( 1498bc36eafdSMike Gerdts ASL_RESOURCE_INFO *Info); 1499bc36eafdSMike Gerdts 1500bc36eafdSMike Gerdts ASL_RESOURCE_NODE * 1501bc36eafdSMike Gerdts RsDoExtendedMemoryDescriptor ( 1502bc36eafdSMike Gerdts ASL_RESOURCE_INFO *Info); 1503bc36eafdSMike Gerdts 1504bc36eafdSMike Gerdts ASL_RESOURCE_NODE * 1505bc36eafdSMike Gerdts RsDoExtendedSpaceDescriptor ( 1506bc36eafdSMike Gerdts ASL_RESOURCE_INFO *Info); 1507bc36eafdSMike Gerdts 1508bc36eafdSMike Gerdts 1509bc36eafdSMike Gerdts /* 1510bc36eafdSMike Gerdts * aslrestype2q - QWord address descriptors 1511bc36eafdSMike Gerdts */ 1512bc36eafdSMike Gerdts ASL_RESOURCE_NODE * 1513bc36eafdSMike Gerdts RsDoQwordIoDescriptor ( 1514bc36eafdSMike Gerdts ASL_RESOURCE_INFO *Info); 1515bc36eafdSMike Gerdts 1516bc36eafdSMike Gerdts ASL_RESOURCE_NODE * 1517bc36eafdSMike Gerdts RsDoQwordMemoryDescriptor ( 1518bc36eafdSMike Gerdts ASL_RESOURCE_INFO *Info); 1519bc36eafdSMike Gerdts 1520bc36eafdSMike Gerdts ASL_RESOURCE_NODE * 1521bc36eafdSMike Gerdts RsDoQwordSpaceDescriptor ( 1522bc36eafdSMike Gerdts ASL_RESOURCE_INFO *Info); 1523bc36eafdSMike Gerdts 1524bc36eafdSMike Gerdts 1525bc36eafdSMike Gerdts /* 1526bc36eafdSMike Gerdts * aslrestype2w - Word address descriptors 1527bc36eafdSMike Gerdts */ 1528bc36eafdSMike Gerdts ASL_RESOURCE_NODE * 1529bc36eafdSMike Gerdts RsDoWordIoDescriptor ( 1530bc36eafdSMike Gerdts ASL_RESOURCE_INFO *Info); 1531bc36eafdSMike Gerdts 1532bc36eafdSMike Gerdts ASL_RESOURCE_NODE * 1533bc36eafdSMike Gerdts RsDoWordSpaceDescriptor ( 1534bc36eafdSMike Gerdts ASL_RESOURCE_INFO *Info); 1535bc36eafdSMike Gerdts 1536bc36eafdSMike Gerdts ASL_RESOURCE_NODE * 1537bc36eafdSMike Gerdts RsDoWordBusNumberDescriptor ( 1538bc36eafdSMike Gerdts ASL_RESOURCE_INFO *Info); 1539bc36eafdSMike Gerdts 1540bc36eafdSMike Gerdts 1541bc36eafdSMike Gerdts /* 1542bc36eafdSMike Gerdts * Entry to data table compiler subsystem 1543bc36eafdSMike Gerdts */ 1544bc36eafdSMike Gerdts ACPI_STATUS 1545bc36eafdSMike Gerdts DtDoCompile( 1546bc36eafdSMike Gerdts void); 1547bc36eafdSMike Gerdts 1548bc36eafdSMike Gerdts ACPI_STATUS 1549bc36eafdSMike Gerdts DtCreateTemplates ( 1550bc36eafdSMike Gerdts char **argv); 1551bc36eafdSMike Gerdts 1552*35786f68SRobert Mustacchi 1553*35786f68SRobert Mustacchi /* 1554*35786f68SRobert Mustacchi * ASL/ASL+ converter debug 1555*35786f68SRobert Mustacchi */ 1556*35786f68SRobert Mustacchi void 1557*35786f68SRobert Mustacchi CvDbgPrint ( 1558*35786f68SRobert Mustacchi char *Fmt, 1559*35786f68SRobert Mustacchi ...); 1560*35786f68SRobert Mustacchi 1561*35786f68SRobert Mustacchi 1562bc36eafdSMike Gerdts #endif /* __ASLCOMPILER_H */ 1563