153289f6aSNate Lawson 253289f6aSNate Lawson /****************************************************************************** 353289f6aSNate Lawson * 4fba7fc7eSJung-uk Kim * Module Name: aslcompiler.h - common include file for iASL 553289f6aSNate Lawson * 653289f6aSNate Lawson *****************************************************************************/ 753289f6aSNate Lawson 853289f6aSNate Lawson /****************************************************************************** 953289f6aSNate Lawson * 1053289f6aSNate Lawson * 1. Copyright Notice 1153289f6aSNate Lawson * 129a179dd8SJung-uk Kim * Some or all of this work - Copyright (c) 1999 - 2010, Intel Corp. 1353289f6aSNate Lawson * All rights reserved. 1453289f6aSNate Lawson * 1553289f6aSNate Lawson * 2. License 1653289f6aSNate Lawson * 1753289f6aSNate Lawson * 2.1. This is your license from Intel Corp. under its intellectual property 1853289f6aSNate Lawson * rights. You may have additional license terms from the party that provided 1953289f6aSNate Lawson * you this software, covering your right to use that party's intellectual 2053289f6aSNate Lawson * property rights. 2153289f6aSNate Lawson * 2253289f6aSNate Lawson * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a 2353289f6aSNate Lawson * copy of the source code appearing in this file ("Covered Code") an 2453289f6aSNate Lawson * irrevocable, perpetual, worldwide license under Intel's copyrights in the 2553289f6aSNate Lawson * base code distributed originally by Intel ("Original Intel Code") to copy, 2653289f6aSNate Lawson * make derivatives, distribute, use and display any portion of the Covered 2753289f6aSNate Lawson * Code in any form, with the right to sublicense such rights; and 2853289f6aSNate Lawson * 2953289f6aSNate Lawson * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent 3053289f6aSNate Lawson * license (with the right to sublicense), under only those claims of Intel 3153289f6aSNate Lawson * patents that are infringed by the Original Intel Code, to make, use, sell, 3253289f6aSNate Lawson * offer to sell, and import the Covered Code and derivative works thereof 3353289f6aSNate Lawson * solely to the minimum extent necessary to exercise the above copyright 3453289f6aSNate Lawson * license, and in no event shall the patent license extend to any additions 3553289f6aSNate Lawson * to or modifications of the Original Intel Code. No other license or right 3653289f6aSNate Lawson * is granted directly or by implication, estoppel or otherwise; 3753289f6aSNate Lawson * 3853289f6aSNate Lawson * The above copyright and patent license is granted only if the following 3953289f6aSNate Lawson * conditions are met: 4053289f6aSNate Lawson * 4153289f6aSNate Lawson * 3. Conditions 4253289f6aSNate Lawson * 4353289f6aSNate Lawson * 3.1. Redistribution of Source with Rights to Further Distribute Source. 4453289f6aSNate Lawson * Redistribution of source code of any substantial portion of the Covered 4553289f6aSNate Lawson * Code or modification with rights to further distribute source must include 4653289f6aSNate Lawson * the above Copyright Notice, the above License, this list of Conditions, 4753289f6aSNate Lawson * and the following Disclaimer and Export Compliance provision. In addition, 4853289f6aSNate Lawson * Licensee must cause all Covered Code to which Licensee contributes to 4953289f6aSNate Lawson * contain a file documenting the changes Licensee made to create that Covered 5053289f6aSNate Lawson * Code and the date of any change. Licensee must include in that file the 5153289f6aSNate Lawson * documentation of any changes made by any predecessor Licensee. Licensee 5253289f6aSNate Lawson * must include a prominent statement that the modification is derived, 5353289f6aSNate Lawson * directly or indirectly, from Original Intel Code. 5453289f6aSNate Lawson * 5553289f6aSNate Lawson * 3.2. Redistribution of Source with no Rights to Further Distribute Source. 5653289f6aSNate Lawson * Redistribution of source code of any substantial portion of the Covered 5753289f6aSNate Lawson * Code or modification without rights to further distribute source must 5853289f6aSNate Lawson * include the following Disclaimer and Export Compliance provision in the 5953289f6aSNate Lawson * documentation and/or other materials provided with distribution. In 6053289f6aSNate Lawson * addition, Licensee may not authorize further sublicense of source of any 6153289f6aSNate Lawson * portion of the Covered Code, and must include terms to the effect that the 6253289f6aSNate Lawson * license from Licensee to its licensee is limited to the intellectual 6353289f6aSNate Lawson * property embodied in the software Licensee provides to its licensee, and 6453289f6aSNate Lawson * not to intellectual property embodied in modifications its licensee may 6553289f6aSNate Lawson * make. 6653289f6aSNate Lawson * 6753289f6aSNate Lawson * 3.3. Redistribution of Executable. Redistribution in executable form of any 6853289f6aSNate Lawson * substantial portion of the Covered Code or modification must reproduce the 6953289f6aSNate Lawson * above Copyright Notice, and the following Disclaimer and Export Compliance 7053289f6aSNate Lawson * provision in the documentation and/or other materials provided with the 7153289f6aSNate Lawson * distribution. 7253289f6aSNate Lawson * 7353289f6aSNate Lawson * 3.4. Intel retains all right, title, and interest in and to the Original 7453289f6aSNate Lawson * Intel Code. 7553289f6aSNate Lawson * 7653289f6aSNate Lawson * 3.5. Neither the name Intel nor any other trademark owned or controlled by 7753289f6aSNate Lawson * Intel shall be used in advertising or otherwise to promote the sale, use or 7853289f6aSNate Lawson * other dealings in products derived from or relating to the Covered Code 7953289f6aSNate Lawson * without prior written authorization from Intel. 8053289f6aSNate Lawson * 8153289f6aSNate Lawson * 4. Disclaimer and Export Compliance 8253289f6aSNate Lawson * 8353289f6aSNate Lawson * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED 8453289f6aSNate Lawson * HERE. ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE 8553289f6aSNate Lawson * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT, ASSISTANCE, 8653289f6aSNate Lawson * INSTALLATION, TRAINING OR OTHER SERVICES. INTEL WILL NOT PROVIDE ANY 8753289f6aSNate Lawson * UPDATES, ENHANCEMENTS OR EXTENSIONS. INTEL SPECIFICALLY DISCLAIMS ANY 8853289f6aSNate Lawson * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A 8953289f6aSNate Lawson * PARTICULAR PURPOSE. 9053289f6aSNate Lawson * 9153289f6aSNate Lawson * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES 9253289f6aSNate Lawson * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR 9353289f6aSNate Lawson * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT, 9453289f6aSNate Lawson * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY 9553289f6aSNate Lawson * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL 9653289f6aSNate Lawson * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. THESE LIMITATIONS 9753289f6aSNate Lawson * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY 9853289f6aSNate Lawson * LIMITED REMEDY. 9953289f6aSNate Lawson * 10053289f6aSNate Lawson * 4.3. Licensee shall not export, either directly or indirectly, any of this 10153289f6aSNate Lawson * software or system incorporating such software without first obtaining any 10253289f6aSNate Lawson * required license or other approval from the U. S. Department of Commerce or 10353289f6aSNate Lawson * any other agency or department of the United States Government. In the 10453289f6aSNate Lawson * event Licensee exports any such software from the United States or 10553289f6aSNate Lawson * re-exports any such software from a foreign destination, Licensee shall 10653289f6aSNate Lawson * ensure that the distribution and export/re-export of the software is in 10753289f6aSNate Lawson * compliance with all laws, regulations, orders, or other restrictions of the 10853289f6aSNate Lawson * U.S. Export Administration Regulations. Licensee agrees that neither it nor 10953289f6aSNate Lawson * any of its subsidiaries will export/re-export any technical data, process, 11053289f6aSNate Lawson * software, or service, directly or indirectly, to any country for which the 11153289f6aSNate Lawson * United States government or any agency thereof requires an export license, 11253289f6aSNate Lawson * other governmental approval, or letter of assurance, without first obtaining 11353289f6aSNate Lawson * such license, approval or letter. 11453289f6aSNate Lawson * 11553289f6aSNate Lawson *****************************************************************************/ 11653289f6aSNate Lawson 11753289f6aSNate Lawson 11853289f6aSNate Lawson #ifndef __ASLCOMPILER_H 11953289f6aSNate Lawson #define __ASLCOMPILER_H 12053289f6aSNate Lawson 12153289f6aSNate Lawson 12253289f6aSNate Lawson /* Microsoft-specific */ 12353289f6aSNate Lawson 12453289f6aSNate Lawson #if (defined WIN32 || defined WIN64) 12553289f6aSNate Lawson 12653289f6aSNate Lawson /* warn : used #pragma pack */ 12753289f6aSNate Lawson #pragma warning(disable:4103) 12853289f6aSNate Lawson 12953289f6aSNate Lawson /* warn : named type definition in parentheses */ 13053289f6aSNate Lawson #pragma warning(disable:4115) 13153289f6aSNate Lawson #endif 13253289f6aSNate Lawson 13353289f6aSNate Lawson #include <stdio.h> 13453289f6aSNate Lawson #include <stdlib.h> 13553289f6aSNate Lawson #include <stdarg.h> 13653289f6aSNate Lawson #include <string.h> 13753289f6aSNate Lawson #include <errno.h> 13853289f6aSNate Lawson #include <ctype.h> 13953289f6aSNate Lawson 14053289f6aSNate Lawson 141ab6f3bf9SJung-uk Kim #include <contrib/dev/acpica/include/acpi.h> 142ab6f3bf9SJung-uk Kim #include <contrib/dev/acpica/include/accommon.h> 143ab6f3bf9SJung-uk Kim #include <contrib/dev/acpica/include/amlresrc.h> 144ab6f3bf9SJung-uk Kim #include <contrib/dev/acpica/include/acdebug.h> 14553289f6aSNate Lawson 146fba7fc7eSJung-uk Kim /* Compiler headers */ 14753289f6aSNate Lawson 148ab6f3bf9SJung-uk Kim #include <contrib/dev/acpica/compiler/asldefine.h> 149ab6f3bf9SJung-uk Kim #include <contrib/dev/acpica/compiler/asltypes.h> 150ab6f3bf9SJung-uk Kim #include <contrib/dev/acpica/compiler/aslglobal.h> 15153289f6aSNate Lawson 15253289f6aSNate Lawson 15353289f6aSNate Lawson /******************************************************************************* 15453289f6aSNate Lawson * 15553289f6aSNate Lawson * Compiler prototypes 15653289f6aSNate Lawson * 15753289f6aSNate Lawson ******************************************************************************/ 15853289f6aSNate Lawson 159fba7fc7eSJung-uk Kim /* 160fba7fc7eSJung-uk Kim * parser - generated from flex/bison, lex/yacc, etc. 161fba7fc7eSJung-uk Kim */ 16253289f6aSNate Lawson int 16353289f6aSNate Lawson AslCompilerparse( 16453289f6aSNate Lawson void); 16553289f6aSNate Lawson 16653289f6aSNate Lawson ACPI_PARSE_OBJECT * 16753289f6aSNate Lawson AslDoError ( 16853289f6aSNate Lawson void); 16953289f6aSNate Lawson 17053289f6aSNate Lawson int 17153289f6aSNate Lawson AslCompilerlex( 17253289f6aSNate Lawson void); 17353289f6aSNate Lawson 17453289f6aSNate Lawson void 17553289f6aSNate Lawson ResetCurrentLineBuffer ( 17653289f6aSNate Lawson void); 17753289f6aSNate Lawson 17853289f6aSNate Lawson void 17953289f6aSNate Lawson InsertLineBuffer ( 18053289f6aSNate Lawson int SourceChar); 18153289f6aSNate Lawson 18253289f6aSNate Lawson int 18353289f6aSNate Lawson AslPopInputFileStack ( 18453289f6aSNate Lawson void); 18553289f6aSNate Lawson 18653289f6aSNate Lawson void 18753289f6aSNate Lawson AslPushInputFileStack ( 18853289f6aSNate Lawson FILE *InputFile, 18953289f6aSNate Lawson char *Filename); 19053289f6aSNate Lawson 191a9f12690SJung-uk Kim /* 192a88e22b7SJung-uk Kim * aslstartup - entered from main() 193a9f12690SJung-uk Kim */ 194a88e22b7SJung-uk Kim void 195a88e22b7SJung-uk Kim AslInitializeGlobals ( 196a88e22b7SJung-uk Kim void); 197a88e22b7SJung-uk Kim 198709fac06SJung-uk Kim typedef 199709fac06SJung-uk Kim ACPI_STATUS (*ASL_PATHNAME_CALLBACK) ( 200709fac06SJung-uk Kim char *); 201709fac06SJung-uk Kim 202a9f12690SJung-uk Kim ACPI_STATUS 203a9f12690SJung-uk Kim AslDoOnePathname ( 204709fac06SJung-uk Kim char *Pathname, 205709fac06SJung-uk Kim ASL_PATHNAME_CALLBACK Callback); 206a9f12690SJung-uk Kim 207a9f12690SJung-uk Kim ACPI_STATUS 208a9f12690SJung-uk Kim AslDoOneFile ( 209a9f12690SJung-uk Kim char *Filename); 21053289f6aSNate Lawson 211fba7fc7eSJung-uk Kim /* 212fba7fc7eSJung-uk Kim * aslcompile - compile mainline 213fba7fc7eSJung-uk Kim */ 21453289f6aSNate Lawson void 21553289f6aSNate Lawson AslCompilerSignon ( 21653289f6aSNate Lawson UINT32 FileId); 21753289f6aSNate Lawson 21853289f6aSNate Lawson void 21953289f6aSNate Lawson AslCompilerFileHeader ( 22053289f6aSNate Lawson UINT32 FileId); 22153289f6aSNate Lawson 22253289f6aSNate Lawson int 223fba7fc7eSJung-uk Kim CmDoCompile ( 22453289f6aSNate Lawson void); 22553289f6aSNate Lawson 22653289f6aSNate Lawson void 227fba7fc7eSJung-uk Kim CmDoOutputFiles ( 22853289f6aSNate Lawson void); 22953289f6aSNate Lawson 23053289f6aSNate Lawson void 231fba7fc7eSJung-uk Kim CmCleanupAndExit ( 23253289f6aSNate Lawson void); 23353289f6aSNate Lawson 234a88e22b7SJung-uk Kim ACPI_STATUS 235a88e22b7SJung-uk Kim FlCheckForAscii ( 236a88e22b7SJung-uk Kim ASL_FILE_INFO *FileInfo); 237a88e22b7SJung-uk Kim 23853289f6aSNate Lawson 23953289f6aSNate Lawson /* 240fba7fc7eSJung-uk Kim * aslanalyze - semantic analysis 24153289f6aSNate Lawson */ 24253289f6aSNate Lawson ACPI_STATUS 24353289f6aSNate Lawson AnOtherSemanticAnalysisWalkBegin ( 24453289f6aSNate Lawson ACPI_PARSE_OBJECT *Op, 24553289f6aSNate Lawson UINT32 Level, 24653289f6aSNate Lawson void *Context); 24753289f6aSNate Lawson 24853289f6aSNate Lawson ACPI_STATUS 24953289f6aSNate Lawson AnOtherSemanticAnalysisWalkEnd ( 25053289f6aSNate Lawson ACPI_PARSE_OBJECT *Op, 25153289f6aSNate Lawson UINT32 Level, 25253289f6aSNate Lawson void *Context); 25353289f6aSNate Lawson 25453289f6aSNate Lawson ACPI_STATUS 25553289f6aSNate Lawson AnOperandTypecheckWalkBegin ( 25653289f6aSNate Lawson ACPI_PARSE_OBJECT *Op, 25753289f6aSNate Lawson UINT32 Level, 25853289f6aSNate Lawson void *Context); 25953289f6aSNate Lawson 26053289f6aSNate Lawson ACPI_STATUS 26153289f6aSNate Lawson AnOperandTypecheckWalkEnd ( 26253289f6aSNate Lawson ACPI_PARSE_OBJECT *Op, 26353289f6aSNate Lawson UINT32 Level, 26453289f6aSNate Lawson void *Context); 26553289f6aSNate Lawson 26653289f6aSNate Lawson ACPI_STATUS 26753289f6aSNate Lawson AnMethodAnalysisWalkBegin ( 26853289f6aSNate Lawson ACPI_PARSE_OBJECT *Op, 26953289f6aSNate Lawson UINT32 Level, 27053289f6aSNate Lawson void *Context); 27153289f6aSNate Lawson 27253289f6aSNate Lawson ACPI_STATUS 27353289f6aSNate Lawson AnMethodAnalysisWalkEnd ( 27453289f6aSNate Lawson ACPI_PARSE_OBJECT *Op, 27553289f6aSNate Lawson UINT32 Level, 27653289f6aSNate Lawson void *Context); 27753289f6aSNate Lawson 27853289f6aSNate Lawson ACPI_STATUS 27953289f6aSNate Lawson AnMethodTypingWalkBegin ( 28053289f6aSNate Lawson ACPI_PARSE_OBJECT *Op, 28153289f6aSNate Lawson UINT32 Level, 28253289f6aSNate Lawson void *Context); 28353289f6aSNate Lawson 28453289f6aSNate Lawson ACPI_STATUS 28553289f6aSNate Lawson AnMethodTypingWalkEnd ( 28653289f6aSNate Lawson ACPI_PARSE_OBJECT *Op, 28753289f6aSNate Lawson UINT32 Level, 28853289f6aSNate Lawson void *Context); 28953289f6aSNate Lawson 29053289f6aSNate Lawson 29153289f6aSNate Lawson /* 292fba7fc7eSJung-uk Kim * aslerror - error handling/reporting 29353289f6aSNate Lawson */ 294fba7fc7eSJung-uk Kim void 295fba7fc7eSJung-uk Kim AslError ( 296fba7fc7eSJung-uk Kim UINT8 Level, 297fba7fc7eSJung-uk Kim UINT8 MessageId, 298fba7fc7eSJung-uk Kim ACPI_PARSE_OBJECT *Op, 299fba7fc7eSJung-uk Kim char *ExtraMessage); 30053289f6aSNate Lawson 30153289f6aSNate Lawson void 302fba7fc7eSJung-uk Kim AslCoreSubsystemError ( 303fba7fc7eSJung-uk Kim ACPI_PARSE_OBJECT *Op, 304fba7fc7eSJung-uk Kim ACPI_STATUS Status, 305fba7fc7eSJung-uk Kim char *ExtraMessage, 306fba7fc7eSJung-uk Kim BOOLEAN Abort); 30753289f6aSNate Lawson 308fba7fc7eSJung-uk Kim int 309fba7fc7eSJung-uk Kim AslCompilererror( 310fba7fc7eSJung-uk Kim char *s); 311fba7fc7eSJung-uk Kim 312fba7fc7eSJung-uk Kim void 313fba7fc7eSJung-uk Kim AslCommonError ( 314fba7fc7eSJung-uk Kim UINT8 Level, 315fba7fc7eSJung-uk Kim UINT8 MessageId, 316fba7fc7eSJung-uk Kim UINT32 CurrentLineNumber, 317fba7fc7eSJung-uk Kim UINT32 LogicalLineNumber, 318fba7fc7eSJung-uk Kim UINT32 LogicalByteOffset, 319fba7fc7eSJung-uk Kim UINT32 Column, 320fba7fc7eSJung-uk Kim char *Filename, 321fba7fc7eSJung-uk Kim char *ExtraMessage); 322fba7fc7eSJung-uk Kim 323fba7fc7eSJung-uk Kim void 324fba7fc7eSJung-uk Kim AePrintException ( 325fba7fc7eSJung-uk Kim UINT32 FileId, 326fba7fc7eSJung-uk Kim ASL_ERROR_MSG *Enode, 327fba7fc7eSJung-uk Kim char *Header); 328fba7fc7eSJung-uk Kim 329fba7fc7eSJung-uk Kim void 330fba7fc7eSJung-uk Kim AePrintErrorLog ( 331fba7fc7eSJung-uk Kim UINT32 FileId); 332fba7fc7eSJung-uk Kim 333a9f12690SJung-uk Kim void 334a9f12690SJung-uk Kim AeClearErrorLog ( 335a9f12690SJung-uk Kim void); 336a9f12690SJung-uk Kim 3371a39cfb0SJung-uk Kim ACPI_PHYSICAL_ADDRESS 338fba7fc7eSJung-uk Kim AeLocalGetRootPointer ( 3391a39cfb0SJung-uk Kim void); 340fba7fc7eSJung-uk Kim 341fba7fc7eSJung-uk Kim 342fba7fc7eSJung-uk Kim /* 343fba7fc7eSJung-uk Kim * asllisting - generate all "listing" type files 344fba7fc7eSJung-uk Kim */ 345fba7fc7eSJung-uk Kim void 346fba7fc7eSJung-uk Kim LsDoListings ( 347fba7fc7eSJung-uk Kim void); 348fba7fc7eSJung-uk Kim 349fba7fc7eSJung-uk Kim void 350fba7fc7eSJung-uk Kim LsWriteNodeToAsmListing ( 351fba7fc7eSJung-uk Kim ACPI_PARSE_OBJECT *Op); 352fba7fc7eSJung-uk Kim 353fba7fc7eSJung-uk Kim void 354fba7fc7eSJung-uk Kim LsWriteNode ( 355fba7fc7eSJung-uk Kim ACPI_PARSE_OBJECT *Op, 356fba7fc7eSJung-uk Kim UINT32 FileId); 357fba7fc7eSJung-uk Kim 358fba7fc7eSJung-uk Kim void 359fba7fc7eSJung-uk Kim LsDoHexOutput ( 360fba7fc7eSJung-uk Kim void); 361fba7fc7eSJung-uk Kim 3621a39cfb0SJung-uk Kim void 3631a39cfb0SJung-uk Kim LsDumpParseTree ( 3641a39cfb0SJung-uk Kim void); 365fba7fc7eSJung-uk Kim 366fba7fc7eSJung-uk Kim /* 367fba7fc7eSJung-uk Kim * aslfold - constant folding 368fba7fc7eSJung-uk Kim */ 369fba7fc7eSJung-uk Kim ACPI_STATUS 370fba7fc7eSJung-uk Kim OpcAmlConstantWalk ( 371fba7fc7eSJung-uk Kim ACPI_PARSE_OBJECT *Op, 372fba7fc7eSJung-uk Kim UINT32 Level, 373fba7fc7eSJung-uk Kim void *Context); 374fba7fc7eSJung-uk Kim 375fba7fc7eSJung-uk Kim 376fba7fc7eSJung-uk Kim /* 377fba7fc7eSJung-uk Kim * aslopcodes - generate AML opcodes 378fba7fc7eSJung-uk Kim */ 379fba7fc7eSJung-uk Kim ACPI_STATUS 380fba7fc7eSJung-uk Kim OpcAmlOpcodeWalk ( 381fba7fc7eSJung-uk Kim ACPI_PARSE_OBJECT *Op, 382fba7fc7eSJung-uk Kim UINT32 Level, 383fba7fc7eSJung-uk Kim void *Context); 384fba7fc7eSJung-uk Kim 385fba7fc7eSJung-uk Kim ACPI_STATUS 386fba7fc7eSJung-uk Kim OpcAmlOpcodeUpdateWalk ( 387fba7fc7eSJung-uk Kim ACPI_PARSE_OBJECT *Op, 388fba7fc7eSJung-uk Kim UINT32 Level, 389fba7fc7eSJung-uk Kim void *Context); 390fba7fc7eSJung-uk Kim 391fba7fc7eSJung-uk Kim void 392fba7fc7eSJung-uk Kim OpcGenerateAmlOpcode ( 393fba7fc7eSJung-uk Kim ACPI_PARSE_OBJECT *Op); 394fba7fc7eSJung-uk Kim 395fba7fc7eSJung-uk Kim UINT32 396fba7fc7eSJung-uk Kim OpcSetOptimalIntegerSize ( 397fba7fc7eSJung-uk Kim ACPI_PARSE_OBJECT *Op); 398fba7fc7eSJung-uk Kim 399fba7fc7eSJung-uk Kim void 400fba7fc7eSJung-uk Kim OpcGetIntegerWidth ( 401fba7fc7eSJung-uk Kim ACPI_PARSE_OBJECT *Op); 402fba7fc7eSJung-uk Kim 403fba7fc7eSJung-uk Kim 404fba7fc7eSJung-uk Kim /* 405fba7fc7eSJung-uk Kim * asloperands - generate AML operands for the AML opcodes 406fba7fc7eSJung-uk Kim */ 407fba7fc7eSJung-uk Kim ACPI_PARSE_OBJECT * 408fba7fc7eSJung-uk Kim UtGetArg ( 409fba7fc7eSJung-uk Kim ACPI_PARSE_OBJECT *Op, 410fba7fc7eSJung-uk Kim UINT32 Argn); 411fba7fc7eSJung-uk Kim 412fba7fc7eSJung-uk Kim void 413fba7fc7eSJung-uk Kim OpnGenerateAmlOperands ( 414fba7fc7eSJung-uk Kim ACPI_PARSE_OBJECT *Op); 415fba7fc7eSJung-uk Kim 416fba7fc7eSJung-uk Kim void 417fba7fc7eSJung-uk Kim OpnDoPackage ( 418fba7fc7eSJung-uk Kim ACPI_PARSE_OBJECT *Op); 419fba7fc7eSJung-uk Kim 420fba7fc7eSJung-uk Kim 421fba7fc7eSJung-uk Kim /* 422fba7fc7eSJung-uk Kim * aslopt - optmization 423fba7fc7eSJung-uk Kim */ 424fba7fc7eSJung-uk Kim void 425fba7fc7eSJung-uk Kim OptOptimizeNamePath ( 426fba7fc7eSJung-uk Kim ACPI_PARSE_OBJECT *Op, 427fba7fc7eSJung-uk Kim UINT32 Flags, 428fba7fc7eSJung-uk Kim ACPI_WALK_STATE *WalkState, 429fba7fc7eSJung-uk Kim char *AmlNameString, 430fba7fc7eSJung-uk Kim ACPI_NAMESPACE_NODE *TargetNode); 431fba7fc7eSJung-uk Kim 432fba7fc7eSJung-uk Kim 433fba7fc7eSJung-uk Kim /* 434fba7fc7eSJung-uk Kim * aslcodegen - code generation 435fba7fc7eSJung-uk Kim */ 436fba7fc7eSJung-uk Kim void 437fba7fc7eSJung-uk Kim CgGenerateAmlOutput ( 438fba7fc7eSJung-uk Kim void); 439fba7fc7eSJung-uk Kim 440fba7fc7eSJung-uk Kim 441fba7fc7eSJung-uk Kim /* 442a88e22b7SJung-uk Kim * aslfile 443a88e22b7SJung-uk Kim */ 444a88e22b7SJung-uk Kim void 445a88e22b7SJung-uk Kim FlOpenFile ( 446a88e22b7SJung-uk Kim UINT32 FileId, 447a88e22b7SJung-uk Kim char *Filename, 448a88e22b7SJung-uk Kim char *Mode); 449a88e22b7SJung-uk Kim 450a88e22b7SJung-uk Kim 451a88e22b7SJung-uk Kim /* 452fba7fc7eSJung-uk Kim * asllength - calculate/adjust AML package lengths 453fba7fc7eSJung-uk Kim */ 454fba7fc7eSJung-uk Kim ACPI_STATUS 455fba7fc7eSJung-uk Kim LnPackageLengthWalk ( 456fba7fc7eSJung-uk Kim ACPI_PARSE_OBJECT *Op, 457fba7fc7eSJung-uk Kim UINT32 Level, 458fba7fc7eSJung-uk Kim void *Context); 459fba7fc7eSJung-uk Kim 460fba7fc7eSJung-uk Kim ACPI_STATUS 461fba7fc7eSJung-uk Kim LnInitLengthsWalk ( 462fba7fc7eSJung-uk Kim ACPI_PARSE_OBJECT *Op, 463fba7fc7eSJung-uk Kim UINT32 Level, 464fba7fc7eSJung-uk Kim void *Context); 465fba7fc7eSJung-uk Kim 466fba7fc7eSJung-uk Kim void 467fba7fc7eSJung-uk Kim CgGenerateAmlLengths ( 468fba7fc7eSJung-uk Kim ACPI_PARSE_OBJECT *Op); 469fba7fc7eSJung-uk Kim 470fba7fc7eSJung-uk Kim 471fba7fc7eSJung-uk Kim /* 472fba7fc7eSJung-uk Kim * aslmap - opcode mappings and reserved method names 473fba7fc7eSJung-uk Kim */ 474fba7fc7eSJung-uk Kim ACPI_OBJECT_TYPE 475fba7fc7eSJung-uk Kim AslMapNamedOpcodeToDataType ( 476fba7fc7eSJung-uk Kim UINT16 Opcode); 477fba7fc7eSJung-uk Kim 478ca3cf4faSJung-uk Kim 479ca3cf4faSJung-uk Kim /* 480ca3cf4faSJung-uk Kim * aslpredef - ACPI predefined names support 481ca3cf4faSJung-uk Kim */ 482fba7fc7eSJung-uk Kim void 483ca3cf4faSJung-uk Kim ApCheckForPredefinedMethod ( 484ca3cf4faSJung-uk Kim ACPI_PARSE_OBJECT *Op, 485ca3cf4faSJung-uk Kim ASL_METHOD_INFO *MethodInfo); 486ca3cf4faSJung-uk Kim 4878c8be05fSJung-uk Kim void 4888c8be05fSJung-uk Kim ApCheckPredefinedReturnValue ( 4898c8be05fSJung-uk Kim ACPI_PARSE_OBJECT *Op, 4908c8be05fSJung-uk Kim ASL_METHOD_INFO *MethodInfo); 4918c8be05fSJung-uk Kim 492ca3cf4faSJung-uk Kim UINT32 493ca3cf4faSJung-uk Kim ApCheckForPredefinedName ( 494ca3cf4faSJung-uk Kim ACPI_PARSE_OBJECT *Op, 495ca3cf4faSJung-uk Kim char *Name); 496ca3cf4faSJung-uk Kim 497ca3cf4faSJung-uk Kim void 498ca3cf4faSJung-uk Kim ApCheckForPredefinedObject ( 499ca3cf4faSJung-uk Kim ACPI_PARSE_OBJECT *Op, 500ca3cf4faSJung-uk Kim char *Name); 501ca3cf4faSJung-uk Kim 502ca3cf4faSJung-uk Kim void 503ca3cf4faSJung-uk Kim ApDisplayReservedNames ( 504fba7fc7eSJung-uk Kim void); 505fba7fc7eSJung-uk Kim 506fba7fc7eSJung-uk Kim 507fba7fc7eSJung-uk Kim /* 508fba7fc7eSJung-uk Kim * asltransform - parse tree transformations 509fba7fc7eSJung-uk Kim */ 510fba7fc7eSJung-uk Kim ACPI_STATUS 511fba7fc7eSJung-uk Kim TrAmlTransformWalk ( 512fba7fc7eSJung-uk Kim ACPI_PARSE_OBJECT *Op, 513fba7fc7eSJung-uk Kim UINT32 Level, 514fba7fc7eSJung-uk Kim void *Context); 515fba7fc7eSJung-uk Kim 516fba7fc7eSJung-uk Kim 517fba7fc7eSJung-uk Kim /* 518fba7fc7eSJung-uk Kim * asltree - parse tree support 519fba7fc7eSJung-uk Kim */ 520fba7fc7eSJung-uk Kim ACPI_STATUS 521fba7fc7eSJung-uk Kim TrWalkParseTree ( 522fba7fc7eSJung-uk Kim ACPI_PARSE_OBJECT *Op, 523fba7fc7eSJung-uk Kim UINT32 Visitation, 524fba7fc7eSJung-uk Kim ASL_WALK_CALLBACK DescendingCallback, 525fba7fc7eSJung-uk Kim ASL_WALK_CALLBACK AscendingCallback, 526fba7fc7eSJung-uk Kim void *Context); 527fba7fc7eSJung-uk Kim 528fba7fc7eSJung-uk Kim /* Values for "Visitation" parameter above */ 529fba7fc7eSJung-uk Kim 530fba7fc7eSJung-uk Kim #define ASL_WALK_VISIT_DOWNWARD 0x01 531fba7fc7eSJung-uk Kim #define ASL_WALK_VISIT_UPWARD 0x02 532fba7fc7eSJung-uk Kim #define ASL_WALK_VISIT_TWICE (ASL_WALK_VISIT_DOWNWARD | ASL_WALK_VISIT_UPWARD) 533fba7fc7eSJung-uk Kim 534fba7fc7eSJung-uk Kim 535fba7fc7eSJung-uk Kim ACPI_PARSE_OBJECT * 536fba7fc7eSJung-uk Kim TrAllocateNode ( 537fba7fc7eSJung-uk Kim UINT32 ParseOpcode); 538fba7fc7eSJung-uk Kim 539fba7fc7eSJung-uk Kim void 540fba7fc7eSJung-uk Kim TrReleaseNode ( 541fba7fc7eSJung-uk Kim ACPI_PARSE_OBJECT *Op); 542fba7fc7eSJung-uk Kim 543fba7fc7eSJung-uk Kim ACPI_PARSE_OBJECT * 544fba7fc7eSJung-uk Kim TrUpdateNode ( 545fba7fc7eSJung-uk Kim UINT32 ParseOpcode, 546fba7fc7eSJung-uk Kim ACPI_PARSE_OBJECT *Op); 547fba7fc7eSJung-uk Kim 548fba7fc7eSJung-uk Kim ACPI_PARSE_OBJECT * 549fba7fc7eSJung-uk Kim TrCreateNode ( 550fba7fc7eSJung-uk Kim UINT32 ParseOpcode, 551fba7fc7eSJung-uk Kim UINT32 NumChildren, 552fba7fc7eSJung-uk Kim ...); 553fba7fc7eSJung-uk Kim 554fba7fc7eSJung-uk Kim ACPI_PARSE_OBJECT * 555fba7fc7eSJung-uk Kim TrCreateLeafNode ( 556fba7fc7eSJung-uk Kim UINT32 ParseOpcode); 557fba7fc7eSJung-uk Kim 558fba7fc7eSJung-uk Kim ACPI_PARSE_OBJECT * 559fba7fc7eSJung-uk Kim TrCreateValuedLeafNode ( 560fba7fc7eSJung-uk Kim UINT32 ParseOpcode, 5619a179dd8SJung-uk Kim UINT64 Value); 562fba7fc7eSJung-uk Kim 563fba7fc7eSJung-uk Kim ACPI_PARSE_OBJECT * 564fba7fc7eSJung-uk Kim TrLinkChildren ( 565fba7fc7eSJung-uk Kim ACPI_PARSE_OBJECT *Op, 566fba7fc7eSJung-uk Kim UINT32 NumChildren, 567fba7fc7eSJung-uk Kim ...); 568fba7fc7eSJung-uk Kim 569fba7fc7eSJung-uk Kim void 570fba7fc7eSJung-uk Kim TrSetEndLineNumber ( 571fba7fc7eSJung-uk Kim ACPI_PARSE_OBJECT *Op); 572fba7fc7eSJung-uk Kim 573fba7fc7eSJung-uk Kim void 574fba7fc7eSJung-uk Kim TrWalkTree ( 575fba7fc7eSJung-uk Kim void); 576fba7fc7eSJung-uk Kim 577fba7fc7eSJung-uk Kim ACPI_PARSE_OBJECT * 578fba7fc7eSJung-uk Kim TrLinkPeerNode ( 579fba7fc7eSJung-uk Kim ACPI_PARSE_OBJECT *Op1, 580fba7fc7eSJung-uk Kim ACPI_PARSE_OBJECT *Op2); 581fba7fc7eSJung-uk Kim 582fba7fc7eSJung-uk Kim ACPI_PARSE_OBJECT * 583fba7fc7eSJung-uk Kim TrLinkChildNode ( 584fba7fc7eSJung-uk Kim ACPI_PARSE_OBJECT *Op1, 585fba7fc7eSJung-uk Kim ACPI_PARSE_OBJECT *Op2); 586fba7fc7eSJung-uk Kim 587fba7fc7eSJung-uk Kim ACPI_PARSE_OBJECT * 588fba7fc7eSJung-uk Kim TrSetNodeFlags ( 589fba7fc7eSJung-uk Kim ACPI_PARSE_OBJECT *Op, 590fba7fc7eSJung-uk Kim UINT32 Flags); 591fba7fc7eSJung-uk Kim 592fba7fc7eSJung-uk Kim ACPI_PARSE_OBJECT * 593fba7fc7eSJung-uk Kim TrLinkPeerNodes ( 594fba7fc7eSJung-uk Kim UINT32 NumPeers, 595fba7fc7eSJung-uk Kim ...); 596fba7fc7eSJung-uk Kim 597fba7fc7eSJung-uk Kim 598fba7fc7eSJung-uk Kim /* 599fba7fc7eSJung-uk Kim * aslfiles - File I/O support 600fba7fc7eSJung-uk Kim */ 601fba7fc7eSJung-uk Kim void 602fba7fc7eSJung-uk Kim AslAbort ( 603fba7fc7eSJung-uk Kim void); 60453289f6aSNate Lawson 60553289f6aSNate Lawson void 606d6dd1baeSJung-uk Kim FlAddIncludeDirectory ( 607d6dd1baeSJung-uk Kim char *Dir); 608d6dd1baeSJung-uk Kim 609d6dd1baeSJung-uk Kim void 61053289f6aSNate Lawson FlOpenIncludeFile ( 61153289f6aSNate Lawson ACPI_PARSE_OBJECT *Op); 61253289f6aSNate Lawson 61353289f6aSNate Lawson void 61453289f6aSNate Lawson FlFileError ( 61553289f6aSNate Lawson UINT32 FileId, 61653289f6aSNate Lawson UINT8 ErrorId); 61753289f6aSNate Lawson 6183f5e024cSJung-uk Kim UINT32 6193f5e024cSJung-uk Kim FlGetFileSize ( 6203f5e024cSJung-uk Kim UINT32 FileId); 6213f5e024cSJung-uk Kim 62253289f6aSNate Lawson ACPI_STATUS 62353289f6aSNate Lawson FlReadFile ( 62453289f6aSNate Lawson UINT32 FileId, 62553289f6aSNate Lawson void *Buffer, 62653289f6aSNate Lawson UINT32 Length); 62753289f6aSNate Lawson 62853289f6aSNate Lawson void 62953289f6aSNate Lawson FlWriteFile ( 63053289f6aSNate Lawson UINT32 FileId, 63153289f6aSNate Lawson void *Buffer, 63253289f6aSNate Lawson UINT32 Length); 63353289f6aSNate Lawson 63453289f6aSNate Lawson void 63553289f6aSNate Lawson FlSeekFile ( 63653289f6aSNate Lawson UINT32 FileId, 63753289f6aSNate Lawson long Offset); 63853289f6aSNate Lawson 63953289f6aSNate Lawson void 64053289f6aSNate Lawson FlCloseFile ( 64153289f6aSNate Lawson UINT32 FileId); 64253289f6aSNate Lawson 64353289f6aSNate Lawson void 64453289f6aSNate Lawson FlPrintFile ( 64553289f6aSNate Lawson UINT32 FileId, 64653289f6aSNate Lawson char *Format, 64753289f6aSNate Lawson ...); 64853289f6aSNate Lawson 64953289f6aSNate Lawson void 65053289f6aSNate Lawson FlSetLineNumber ( 65153289f6aSNate Lawson ACPI_PARSE_OBJECT *Op); 65253289f6aSNate Lawson 65353289f6aSNate Lawson ACPI_STATUS 65453289f6aSNate Lawson FlOpenInputFile ( 65553289f6aSNate Lawson char *InputFilename); 65653289f6aSNate Lawson 65753289f6aSNate Lawson ACPI_STATUS 65853289f6aSNate Lawson FlOpenAmlOutputFile ( 65953289f6aSNate Lawson char *InputFilename); 66053289f6aSNate Lawson 66153289f6aSNate Lawson ACPI_STATUS 66253289f6aSNate Lawson FlOpenMiscOutputFiles ( 66353289f6aSNate Lawson char *InputFilename); 66453289f6aSNate Lawson 66553289f6aSNate Lawson 666fba7fc7eSJung-uk Kim /* 667fba7fc7eSJung-uk Kim * asload - load namespace in prep for cross reference 668fba7fc7eSJung-uk Kim */ 66953289f6aSNate Lawson ACPI_STATUS 67053289f6aSNate Lawson LdLoadNamespace ( 67153289f6aSNate Lawson ACPI_PARSE_OBJECT *RootOp); 67253289f6aSNate Lawson 67353289f6aSNate Lawson 674fba7fc7eSJung-uk Kim /* 675fba7fc7eSJung-uk Kim * asllookup - namespace cross reference 676fba7fc7eSJung-uk Kim */ 67753289f6aSNate Lawson ACPI_STATUS 678fba7fc7eSJung-uk Kim LkCrossReferenceNamespace ( 679fba7fc7eSJung-uk Kim void); 68053289f6aSNate Lawson 6811a39cfb0SJung-uk Kim void 6821a39cfb0SJung-uk Kim LkFindUnreferencedObjects ( 6831a39cfb0SJung-uk Kim void); 6841a39cfb0SJung-uk Kim 68553289f6aSNate Lawson ACPI_STATUS 68653289f6aSNate Lawson LsDisplayNamespace ( 68753289f6aSNate Lawson void); 68853289f6aSNate Lawson 689*42fecd12SJung-uk Kim void 690*42fecd12SJung-uk Kim LsSetupNsList ( 691*42fecd12SJung-uk Kim void *Handle); 692*42fecd12SJung-uk Kim 69353289f6aSNate Lawson 694fba7fc7eSJung-uk Kim /* 695fba7fc7eSJung-uk Kim * aslutils - common compiler utilites 696fba7fc7eSJung-uk Kim */ 697fba7fc7eSJung-uk Kim void 698fba7fc7eSJung-uk Kim DbgPrint ( 699fba7fc7eSJung-uk Kim UINT32 Type, 700fba7fc7eSJung-uk Kim char *Format, 701fba7fc7eSJung-uk Kim ...); 70253289f6aSNate Lawson 703fba7fc7eSJung-uk Kim /* Type values for above */ 704fba7fc7eSJung-uk Kim 705fba7fc7eSJung-uk Kim #define ASL_DEBUG_OUTPUT 0 706fba7fc7eSJung-uk Kim #define ASL_PARSE_OUTPUT 1 707fba7fc7eSJung-uk Kim #define ASL_TREE_OUTPUT 2 70853289f6aSNate Lawson 70953289f6aSNate Lawson void 710a88e22b7SJung-uk Kim UtDisplaySupportedTables ( 711a88e22b7SJung-uk Kim void); 712a88e22b7SJung-uk Kim 713a88e22b7SJung-uk Kim void 71453289f6aSNate Lawson UtDisplayConstantOpcodes ( 71553289f6aSNate Lawson void); 71653289f6aSNate Lawson 717fba7fc7eSJung-uk Kim UINT8 71853289f6aSNate Lawson UtBeginEvent ( 71953289f6aSNate Lawson char *Name); 72053289f6aSNate Lawson 72153289f6aSNate Lawson void 72253289f6aSNate Lawson UtEndEvent ( 723fba7fc7eSJung-uk Kim UINT8 Event); 72453289f6aSNate Lawson 72553289f6aSNate Lawson void * 72653289f6aSNate Lawson UtLocalCalloc ( 72753289f6aSNate Lawson UINT32 Size); 72853289f6aSNate Lawson 72953289f6aSNate Lawson void 73053289f6aSNate Lawson UtPrintFormattedName ( 73153289f6aSNate Lawson UINT16 ParseOpcode, 73253289f6aSNate Lawson UINT32 Level); 73353289f6aSNate Lawson 73453289f6aSNate Lawson void 73553289f6aSNate Lawson UtDisplaySummary ( 73653289f6aSNate Lawson UINT32 FileId); 73753289f6aSNate Lawson 73853289f6aSNate Lawson UINT8 73953289f6aSNate Lawson UtHexCharToValue ( 740fba7fc7eSJung-uk Kim int HexChar); 74153289f6aSNate Lawson 74253289f6aSNate Lawson void 74353289f6aSNate Lawson UtConvertByteToHex ( 74453289f6aSNate Lawson UINT8 RawByte, 74553289f6aSNate Lawson UINT8 *Buffer); 74653289f6aSNate Lawson 74753289f6aSNate Lawson void 74853289f6aSNate Lawson UtConvertByteToAsmHex ( 74953289f6aSNate Lawson UINT8 RawByte, 75053289f6aSNate Lawson UINT8 *Buffer); 75153289f6aSNate Lawson 75253289f6aSNate Lawson char * 75353289f6aSNate Lawson UtGetOpName ( 75453289f6aSNate Lawson UINT32 ParseOpcode); 75553289f6aSNate Lawson 75653289f6aSNate Lawson void 75753289f6aSNate Lawson UtSetParseOpName ( 75853289f6aSNate Lawson ACPI_PARSE_OBJECT *Op); 75953289f6aSNate Lawson 76053289f6aSNate Lawson char * 76153289f6aSNate Lawson UtGetStringBuffer ( 76253289f6aSNate Lawson UINT32 Length); 76353289f6aSNate Lawson 76453289f6aSNate Lawson ACPI_STATUS 76553289f6aSNate Lawson UtInternalizeName ( 76653289f6aSNate Lawson char *ExternalName, 76753289f6aSNate Lawson char **ConvertedName); 76853289f6aSNate Lawson 76953289f6aSNate Lawson void 77053289f6aSNate Lawson UtAttachNamepathToOwner ( 77153289f6aSNate Lawson ACPI_PARSE_OBJECT *Op, 77253289f6aSNate Lawson ACPI_PARSE_OBJECT *NameNode); 77353289f6aSNate Lawson 77453289f6aSNate Lawson ACPI_PARSE_OBJECT * 77553289f6aSNate Lawson UtCheckIntegerRange ( 77653289f6aSNate Lawson ACPI_PARSE_OBJECT *Op, 77753289f6aSNate Lawson UINT32 LowValue, 77853289f6aSNate Lawson UINT32 HighValue); 77953289f6aSNate Lawson 7809a179dd8SJung-uk Kim UINT64 78153289f6aSNate Lawson UtDoConstant ( 78253289f6aSNate Lawson char *String); 78353289f6aSNate Lawson 78453289f6aSNate Lawson 78553289f6aSNate Lawson /* 786fba7fc7eSJung-uk Kim * aslresource - Resource template generation utilities 78753289f6aSNate Lawson */ 7883f5e024cSJung-uk Kim void 7893f5e024cSJung-uk Kim RsSmallAddressCheck ( 7903f5e024cSJung-uk Kim UINT8 Type, 7913f5e024cSJung-uk Kim UINT32 Minimum, 7923f5e024cSJung-uk Kim UINT32 Maximum, 7933f5e024cSJung-uk Kim UINT32 Length, 7943f5e024cSJung-uk Kim UINT32 Alignment, 7953f5e024cSJung-uk Kim ACPI_PARSE_OBJECT *MinOp, 7963f5e024cSJung-uk Kim ACPI_PARSE_OBJECT *MaxOp, 7973f5e024cSJung-uk Kim ACPI_PARSE_OBJECT *LengthOp, 7983f5e024cSJung-uk Kim ACPI_PARSE_OBJECT *AlignOp); 7993f5e024cSJung-uk Kim 8003f5e024cSJung-uk Kim void 8013f5e024cSJung-uk Kim RsLargeAddressCheck ( 8023f5e024cSJung-uk Kim UINT64 Minimum, 8033f5e024cSJung-uk Kim UINT64 Maximum, 8043f5e024cSJung-uk Kim UINT64 Length, 8053f5e024cSJung-uk Kim UINT64 Granularity, 8063f5e024cSJung-uk Kim UINT8 Flags, 8073f5e024cSJung-uk Kim ACPI_PARSE_OBJECT *MinOp, 8083f5e024cSJung-uk Kim ACPI_PARSE_OBJECT *MaxOp, 8093f5e024cSJung-uk Kim ACPI_PARSE_OBJECT *LengthOp, 8103f5e024cSJung-uk Kim ACPI_PARSE_OBJECT *GranOp); 8113f5e024cSJung-uk Kim 8123f5e024cSJung-uk Kim UINT16 8133f5e024cSJung-uk Kim RsGetStringDataLength ( 8143f5e024cSJung-uk Kim ACPI_PARSE_OBJECT *InitializerOp); 8153f5e024cSJung-uk Kim 81653289f6aSNate Lawson ASL_RESOURCE_NODE * 81753289f6aSNate Lawson RsAllocateResourceNode ( 81853289f6aSNate Lawson UINT32 Size); 81953289f6aSNate Lawson 82053289f6aSNate Lawson void 82153289f6aSNate Lawson RsCreateBitField ( 82253289f6aSNate Lawson ACPI_PARSE_OBJECT *Op, 82353289f6aSNate Lawson char *Name, 82453289f6aSNate Lawson UINT32 ByteOffset, 82553289f6aSNate Lawson UINT32 BitOffset); 82653289f6aSNate Lawson 82753289f6aSNate Lawson void 82853289f6aSNate Lawson RsCreateByteField ( 82953289f6aSNate Lawson ACPI_PARSE_OBJECT *Op, 83053289f6aSNate Lawson char *Name, 83153289f6aSNate Lawson UINT32 ByteOffset); 83253289f6aSNate Lawson 83353289f6aSNate Lawson void 83453289f6aSNate Lawson RsSetFlagBits ( 83553289f6aSNate Lawson UINT8 *Flags, 83653289f6aSNate Lawson ACPI_PARSE_OBJECT *Op, 83753289f6aSNate Lawson UINT8 Position, 83853289f6aSNate Lawson UINT8 DefaultBit); 83953289f6aSNate Lawson 84053289f6aSNate Lawson ACPI_PARSE_OBJECT * 84153289f6aSNate Lawson RsCompleteNodeAndGetNext ( 84253289f6aSNate Lawson ACPI_PARSE_OBJECT *Op); 84353289f6aSNate Lawson 844fba7fc7eSJung-uk Kim void 845fba7fc7eSJung-uk Kim RsCheckListForDuplicates ( 846fba7fc7eSJung-uk Kim ACPI_PARSE_OBJECT *Op); 847fba7fc7eSJung-uk Kim 84853289f6aSNate Lawson ASL_RESOURCE_NODE * 84953289f6aSNate Lawson RsDoOneResourceDescriptor ( 85053289f6aSNate Lawson ACPI_PARSE_OBJECT *DescriptorTypeOp, 85153289f6aSNate Lawson UINT32 CurrentByteOffset, 85253289f6aSNate Lawson UINT8 *State); 85353289f6aSNate Lawson 854fba7fc7eSJung-uk Kim /* Values for State above */ 855fba7fc7eSJung-uk Kim 85653289f6aSNate Lawson #define ACPI_RSTATE_NORMAL 0 85753289f6aSNate Lawson #define ACPI_RSTATE_START_DEPENDENT 1 85853289f6aSNate Lawson #define ACPI_RSTATE_DEPENDENT_LIST 2 85953289f6aSNate Lawson 86053289f6aSNate Lawson UINT32 86153289f6aSNate Lawson RsLinkDescriptorChain ( 86253289f6aSNate Lawson ASL_RESOURCE_NODE **PreviousRnode, 86353289f6aSNate Lawson ASL_RESOURCE_NODE *Rnode); 86453289f6aSNate Lawson 865fba7fc7eSJung-uk Kim void 866fba7fc7eSJung-uk Kim RsDoResourceTemplate ( 867fba7fc7eSJung-uk Kim ACPI_PARSE_OBJECT *Op); 868fba7fc7eSJung-uk Kim 86953289f6aSNate Lawson 87053289f6aSNate Lawson /* 8713f5e024cSJung-uk Kim * aslrestype1 - Miscellaneous Small descriptors 87253289f6aSNate Lawson */ 87353289f6aSNate Lawson ASL_RESOURCE_NODE * 8741a39cfb0SJung-uk Kim RsDoEndTagDescriptor ( 8751a39cfb0SJung-uk Kim ACPI_PARSE_OBJECT *Op, 8761a39cfb0SJung-uk Kim UINT32 CurrentByteOffset); 8771a39cfb0SJung-uk Kim 8781a39cfb0SJung-uk Kim ASL_RESOURCE_NODE * 87953289f6aSNate Lawson RsDoEndDependentDescriptor ( 88053289f6aSNate Lawson ACPI_PARSE_OBJECT *Op, 88153289f6aSNate Lawson UINT32 CurrentByteOffset); 88253289f6aSNate Lawson 88353289f6aSNate Lawson ASL_RESOURCE_NODE * 88453289f6aSNate Lawson RsDoMemory24Descriptor ( 88553289f6aSNate Lawson ACPI_PARSE_OBJECT *Op, 88653289f6aSNate Lawson UINT32 CurrentByteOffset); 88753289f6aSNate Lawson 88853289f6aSNate Lawson ASL_RESOURCE_NODE * 88953289f6aSNate Lawson RsDoMemory32Descriptor ( 89053289f6aSNate Lawson ACPI_PARSE_OBJECT *Op, 89153289f6aSNate Lawson UINT32 CurrentByteOffset); 89253289f6aSNate Lawson 89353289f6aSNate Lawson ASL_RESOURCE_NODE * 89453289f6aSNate Lawson RsDoMemory32FixedDescriptor ( 89553289f6aSNate Lawson ACPI_PARSE_OBJECT *Op, 89653289f6aSNate Lawson UINT32 CurrentByteOffset); 89753289f6aSNate Lawson 89853289f6aSNate Lawson ASL_RESOURCE_NODE * 89953289f6aSNate Lawson RsDoStartDependentDescriptor ( 90053289f6aSNate Lawson ACPI_PARSE_OBJECT *Op, 90153289f6aSNate Lawson UINT32 CurrentByteOffset); 90253289f6aSNate Lawson 90353289f6aSNate Lawson ASL_RESOURCE_NODE * 90453289f6aSNate Lawson RsDoStartDependentNoPriDescriptor ( 90553289f6aSNate Lawson ACPI_PARSE_OBJECT *Op, 90653289f6aSNate Lawson UINT32 CurrentByteOffset); 90753289f6aSNate Lawson 90853289f6aSNate Lawson ASL_RESOURCE_NODE * 90953289f6aSNate Lawson RsDoVendorSmallDescriptor ( 91053289f6aSNate Lawson ACPI_PARSE_OBJECT *Op, 91153289f6aSNate Lawson UINT32 CurrentByteOffset); 91253289f6aSNate Lawson 91353289f6aSNate Lawson 91453289f6aSNate Lawson /* 9153f5e024cSJung-uk Kim * aslrestype1i - I/O-related Small descriptors 9163f5e024cSJung-uk Kim */ 9173f5e024cSJung-uk Kim ASL_RESOURCE_NODE * 9183f5e024cSJung-uk Kim RsDoDmaDescriptor ( 9193f5e024cSJung-uk Kim ACPI_PARSE_OBJECT *Op, 9203f5e024cSJung-uk Kim UINT32 CurrentByteOffset); 9213f5e024cSJung-uk Kim 9223f5e024cSJung-uk Kim ASL_RESOURCE_NODE * 9233f5e024cSJung-uk Kim RsDoFixedIoDescriptor ( 9243f5e024cSJung-uk Kim ACPI_PARSE_OBJECT *Op, 9253f5e024cSJung-uk Kim UINT32 CurrentByteOffset); 9263f5e024cSJung-uk Kim 9273f5e024cSJung-uk Kim ASL_RESOURCE_NODE * 9283f5e024cSJung-uk Kim RsDoIoDescriptor ( 9293f5e024cSJung-uk Kim ACPI_PARSE_OBJECT *Op, 9303f5e024cSJung-uk Kim UINT32 CurrentByteOffset); 9313f5e024cSJung-uk Kim 9323f5e024cSJung-uk Kim ASL_RESOURCE_NODE * 9333f5e024cSJung-uk Kim RsDoIrqDescriptor ( 9343f5e024cSJung-uk Kim ACPI_PARSE_OBJECT *Op, 9353f5e024cSJung-uk Kim UINT32 CurrentByteOffset); 9363f5e024cSJung-uk Kim 9373f5e024cSJung-uk Kim ASL_RESOURCE_NODE * 9383f5e024cSJung-uk Kim RsDoIrqNoFlagsDescriptor ( 9393f5e024cSJung-uk Kim ACPI_PARSE_OBJECT *Op, 9403f5e024cSJung-uk Kim UINT32 CurrentByteOffset); 9413f5e024cSJung-uk Kim 9423f5e024cSJung-uk Kim 9433f5e024cSJung-uk Kim /* 9443f5e024cSJung-uk Kim * aslrestype2 - Large resource descriptors 94553289f6aSNate Lawson */ 946fba7fc7eSJung-uk Kim ASL_RESOURCE_NODE * 947fba7fc7eSJung-uk Kim RsDoInterruptDescriptor ( 948fba7fc7eSJung-uk Kim ACPI_PARSE_OBJECT *Op, 949fba7fc7eSJung-uk Kim UINT32 CurrentByteOffset); 95053289f6aSNate Lawson 95153289f6aSNate Lawson ASL_RESOURCE_NODE * 9523f5e024cSJung-uk Kim RsDoVendorLargeDescriptor ( 9533f5e024cSJung-uk Kim ACPI_PARSE_OBJECT *Op, 9543f5e024cSJung-uk Kim UINT32 CurrentByteOffset); 9553f5e024cSJung-uk Kim 9563f5e024cSJung-uk Kim ASL_RESOURCE_NODE * 9573f5e024cSJung-uk Kim RsDoGeneralRegisterDescriptor ( 9583f5e024cSJung-uk Kim ACPI_PARSE_OBJECT *Op, 9593f5e024cSJung-uk Kim UINT32 CurrentByteOffset); 9603f5e024cSJung-uk Kim 9613f5e024cSJung-uk Kim 9623f5e024cSJung-uk Kim /* 9633f5e024cSJung-uk Kim * aslrestype2d - DWord address descriptors 9643f5e024cSJung-uk Kim */ 9653f5e024cSJung-uk Kim ASL_RESOURCE_NODE * 96653289f6aSNate Lawson RsDoDwordIoDescriptor ( 96753289f6aSNate Lawson ACPI_PARSE_OBJECT *Op, 96853289f6aSNate Lawson UINT32 CurrentByteOffset); 96953289f6aSNate Lawson 97053289f6aSNate Lawson ASL_RESOURCE_NODE * 97153289f6aSNate Lawson RsDoDwordMemoryDescriptor ( 97253289f6aSNate Lawson ACPI_PARSE_OBJECT *Op, 97353289f6aSNate Lawson UINT32 CurrentByteOffset); 97453289f6aSNate Lawson 97553289f6aSNate Lawson ASL_RESOURCE_NODE * 976fba7fc7eSJung-uk Kim RsDoDwordSpaceDescriptor ( 977fba7fc7eSJung-uk Kim ACPI_PARSE_OBJECT *Op, 978fba7fc7eSJung-uk Kim UINT32 CurrentByteOffset); 979fba7fc7eSJung-uk Kim 9803f5e024cSJung-uk Kim 9813f5e024cSJung-uk Kim /* 9823f5e024cSJung-uk Kim * aslrestype2e - Extended address descriptors 9833f5e024cSJung-uk Kim */ 984fba7fc7eSJung-uk Kim ASL_RESOURCE_NODE * 985fba7fc7eSJung-uk Kim RsDoExtendedIoDescriptor ( 986fba7fc7eSJung-uk Kim ACPI_PARSE_OBJECT *Op, 987fba7fc7eSJung-uk Kim UINT32 CurrentByteOffset); 988fba7fc7eSJung-uk Kim 989fba7fc7eSJung-uk Kim ASL_RESOURCE_NODE * 990fba7fc7eSJung-uk Kim RsDoExtendedMemoryDescriptor ( 991fba7fc7eSJung-uk Kim ACPI_PARSE_OBJECT *Op, 992fba7fc7eSJung-uk Kim UINT32 CurrentByteOffset); 993fba7fc7eSJung-uk Kim 994fba7fc7eSJung-uk Kim ASL_RESOURCE_NODE * 995fba7fc7eSJung-uk Kim RsDoExtendedSpaceDescriptor ( 996fba7fc7eSJung-uk Kim ACPI_PARSE_OBJECT *Op, 997fba7fc7eSJung-uk Kim UINT32 CurrentByteOffset); 998fba7fc7eSJung-uk Kim 9993f5e024cSJung-uk Kim 10003f5e024cSJung-uk Kim /* 10013f5e024cSJung-uk Kim * aslrestype2q - QWord address descriptors 10023f5e024cSJung-uk Kim */ 1003fba7fc7eSJung-uk Kim ASL_RESOURCE_NODE * 100453289f6aSNate Lawson RsDoQwordIoDescriptor ( 100553289f6aSNate Lawson ACPI_PARSE_OBJECT *Op, 100653289f6aSNate Lawson UINT32 CurrentByteOffset); 100753289f6aSNate Lawson 100853289f6aSNate Lawson ASL_RESOURCE_NODE * 100953289f6aSNate Lawson RsDoQwordMemoryDescriptor ( 101053289f6aSNate Lawson ACPI_PARSE_OBJECT *Op, 101153289f6aSNate Lawson UINT32 CurrentByteOffset); 101253289f6aSNate Lawson 101353289f6aSNate Lawson ASL_RESOURCE_NODE * 1014fba7fc7eSJung-uk Kim RsDoQwordSpaceDescriptor ( 1015fba7fc7eSJung-uk Kim ACPI_PARSE_OBJECT *Op, 1016fba7fc7eSJung-uk Kim UINT32 CurrentByteOffset); 1017fba7fc7eSJung-uk Kim 10183f5e024cSJung-uk Kim 10193f5e024cSJung-uk Kim /* 10203f5e024cSJung-uk Kim * aslrestype2w - Word address descriptors 10213f5e024cSJung-uk Kim */ 1022fba7fc7eSJung-uk Kim ASL_RESOURCE_NODE * 102353289f6aSNate Lawson RsDoWordIoDescriptor ( 102453289f6aSNate Lawson ACPI_PARSE_OBJECT *Op, 102553289f6aSNate Lawson UINT32 CurrentByteOffset); 102653289f6aSNate Lawson 102753289f6aSNate Lawson ASL_RESOURCE_NODE * 1028fba7fc7eSJung-uk Kim RsDoWordSpaceDescriptor ( 1029fba7fc7eSJung-uk Kim ACPI_PARSE_OBJECT *Op, 1030fba7fc7eSJung-uk Kim UINT32 CurrentByteOffset); 1031fba7fc7eSJung-uk Kim 1032fba7fc7eSJung-uk Kim ASL_RESOURCE_NODE * 103353289f6aSNate Lawson RsDoWordBusNumberDescriptor ( 103453289f6aSNate Lawson ACPI_PARSE_OBJECT *Op, 103553289f6aSNate Lawson UINT32 CurrentByteOffset); 103653289f6aSNate Lawson 1037a88e22b7SJung-uk Kim /* 1038a88e22b7SJung-uk Kim * Entry to data table compiler subsystem 1039a88e22b7SJung-uk Kim */ 1040a88e22b7SJung-uk Kim ACPI_STATUS 1041a88e22b7SJung-uk Kim DtDoCompile( 1042a88e22b7SJung-uk Kim void); 1043a88e22b7SJung-uk Kim 1044a88e22b7SJung-uk Kim ACPI_STATUS 1045a88e22b7SJung-uk Kim DtCreateTemplates ( 1046a88e22b7SJung-uk Kim char *Signature); 1047a88e22b7SJung-uk Kim 104853289f6aSNate Lawson #endif /* __ASLCOMPILER_H */ 104953289f6aSNate Lawson 1050