xref: /freebsd/sys/contrib/dev/acpica/compiler/aslcompiler.h (revision 9a179dd8bec7b25fb577262c606fddfb5da50ffc)
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 /*
192a9f12690SJung-uk Kim  * aslstartup - called from main
193a9f12690SJung-uk Kim  */
194a9f12690SJung-uk Kim ACPI_STATUS
195a9f12690SJung-uk Kim AslDoOnePathname (
196a9f12690SJung-uk Kim     char                    *Pathname);
197a9f12690SJung-uk Kim 
198a9f12690SJung-uk Kim ACPI_STATUS
199a9f12690SJung-uk Kim AslDoOneFile (
200a9f12690SJung-uk Kim     char                    *Filename);
20153289f6aSNate Lawson 
202fba7fc7eSJung-uk Kim /*
203fba7fc7eSJung-uk Kim  * aslcompile - compile mainline
204fba7fc7eSJung-uk Kim  */
20553289f6aSNate Lawson void
20653289f6aSNate Lawson AslCompilerSignon (
20753289f6aSNate Lawson     UINT32                  FileId);
20853289f6aSNate Lawson 
20953289f6aSNate Lawson void
21053289f6aSNate Lawson AslCompilerFileHeader (
21153289f6aSNate Lawson     UINT32                  FileId);
21253289f6aSNate Lawson 
21353289f6aSNate Lawson int
214fba7fc7eSJung-uk Kim CmDoCompile (
21553289f6aSNate Lawson     void);
21653289f6aSNate Lawson 
21753289f6aSNate Lawson void
218fba7fc7eSJung-uk Kim CmDoOutputFiles (
21953289f6aSNate Lawson     void);
22053289f6aSNate Lawson 
22153289f6aSNate Lawson void
222fba7fc7eSJung-uk Kim CmCleanupAndExit (
22353289f6aSNate Lawson     void);
22453289f6aSNate Lawson 
22553289f6aSNate Lawson 
22653289f6aSNate Lawson /*
227fba7fc7eSJung-uk Kim  * aslanalyze - semantic analysis
22853289f6aSNate Lawson  */
22953289f6aSNate Lawson ACPI_STATUS
23053289f6aSNate Lawson AnOtherSemanticAnalysisWalkBegin (
23153289f6aSNate Lawson     ACPI_PARSE_OBJECT       *Op,
23253289f6aSNate Lawson     UINT32                  Level,
23353289f6aSNate Lawson     void                    *Context);
23453289f6aSNate Lawson 
23553289f6aSNate Lawson ACPI_STATUS
23653289f6aSNate Lawson AnOtherSemanticAnalysisWalkEnd (
23753289f6aSNate Lawson     ACPI_PARSE_OBJECT       *Op,
23853289f6aSNate Lawson     UINT32                  Level,
23953289f6aSNate Lawson     void                    *Context);
24053289f6aSNate Lawson 
24153289f6aSNate Lawson ACPI_STATUS
24253289f6aSNate Lawson AnOperandTypecheckWalkBegin (
24353289f6aSNate Lawson     ACPI_PARSE_OBJECT       *Op,
24453289f6aSNate Lawson     UINT32                  Level,
24553289f6aSNate Lawson     void                    *Context);
24653289f6aSNate Lawson 
24753289f6aSNate Lawson ACPI_STATUS
24853289f6aSNate Lawson AnOperandTypecheckWalkEnd (
24953289f6aSNate Lawson     ACPI_PARSE_OBJECT       *Op,
25053289f6aSNate Lawson     UINT32                  Level,
25153289f6aSNate Lawson     void                    *Context);
25253289f6aSNate Lawson 
25353289f6aSNate Lawson ACPI_STATUS
25453289f6aSNate Lawson AnMethodAnalysisWalkBegin (
25553289f6aSNate Lawson     ACPI_PARSE_OBJECT       *Op,
25653289f6aSNate Lawson     UINT32                  Level,
25753289f6aSNate Lawson     void                    *Context);
25853289f6aSNate Lawson 
25953289f6aSNate Lawson ACPI_STATUS
26053289f6aSNate Lawson AnMethodAnalysisWalkEnd (
26153289f6aSNate Lawson     ACPI_PARSE_OBJECT       *Op,
26253289f6aSNate Lawson     UINT32                  Level,
26353289f6aSNate Lawson     void                    *Context);
26453289f6aSNate Lawson 
26553289f6aSNate Lawson ACPI_STATUS
26653289f6aSNate Lawson AnMethodTypingWalkBegin (
26753289f6aSNate Lawson     ACPI_PARSE_OBJECT       *Op,
26853289f6aSNate Lawson     UINT32                  Level,
26953289f6aSNate Lawson     void                    *Context);
27053289f6aSNate Lawson 
27153289f6aSNate Lawson ACPI_STATUS
27253289f6aSNate Lawson AnMethodTypingWalkEnd (
27353289f6aSNate Lawson     ACPI_PARSE_OBJECT       *Op,
27453289f6aSNate Lawson     UINT32                  Level,
27553289f6aSNate Lawson     void                    *Context);
27653289f6aSNate Lawson 
27753289f6aSNate Lawson 
27853289f6aSNate Lawson /*
279fba7fc7eSJung-uk Kim  * aslerror - error handling/reporting
28053289f6aSNate Lawson  */
281fba7fc7eSJung-uk Kim void
282fba7fc7eSJung-uk Kim AslError (
283fba7fc7eSJung-uk Kim     UINT8                   Level,
284fba7fc7eSJung-uk Kim     UINT8                   MessageId,
285fba7fc7eSJung-uk Kim     ACPI_PARSE_OBJECT       *Op,
286fba7fc7eSJung-uk Kim     char                    *ExtraMessage);
28753289f6aSNate Lawson 
28853289f6aSNate Lawson void
289fba7fc7eSJung-uk Kim AslCoreSubsystemError (
290fba7fc7eSJung-uk Kim     ACPI_PARSE_OBJECT       *Op,
291fba7fc7eSJung-uk Kim     ACPI_STATUS             Status,
292fba7fc7eSJung-uk Kim     char                    *ExtraMessage,
293fba7fc7eSJung-uk Kim     BOOLEAN                 Abort);
29453289f6aSNate Lawson 
295fba7fc7eSJung-uk Kim int
296fba7fc7eSJung-uk Kim AslCompilererror(
297fba7fc7eSJung-uk Kim     char                    *s);
298fba7fc7eSJung-uk Kim 
299fba7fc7eSJung-uk Kim void
300fba7fc7eSJung-uk Kim AslCommonError (
301fba7fc7eSJung-uk Kim     UINT8                   Level,
302fba7fc7eSJung-uk Kim     UINT8                   MessageId,
303fba7fc7eSJung-uk Kim     UINT32                  CurrentLineNumber,
304fba7fc7eSJung-uk Kim     UINT32                  LogicalLineNumber,
305fba7fc7eSJung-uk Kim     UINT32                  LogicalByteOffset,
306fba7fc7eSJung-uk Kim     UINT32                  Column,
307fba7fc7eSJung-uk Kim     char                    *Filename,
308fba7fc7eSJung-uk Kim     char                    *ExtraMessage);
309fba7fc7eSJung-uk Kim 
310fba7fc7eSJung-uk Kim void
311fba7fc7eSJung-uk Kim AePrintException (
312fba7fc7eSJung-uk Kim     UINT32                  FileId,
313fba7fc7eSJung-uk Kim     ASL_ERROR_MSG           *Enode,
314fba7fc7eSJung-uk Kim     char                    *Header);
315fba7fc7eSJung-uk Kim 
316fba7fc7eSJung-uk Kim void
317fba7fc7eSJung-uk Kim AePrintErrorLog (
318fba7fc7eSJung-uk Kim     UINT32                  FileId);
319fba7fc7eSJung-uk Kim 
320a9f12690SJung-uk Kim void
321a9f12690SJung-uk Kim AeClearErrorLog (
322a9f12690SJung-uk Kim     void);
323a9f12690SJung-uk Kim 
3241a39cfb0SJung-uk Kim ACPI_PHYSICAL_ADDRESS
325fba7fc7eSJung-uk Kim AeLocalGetRootPointer (
3261a39cfb0SJung-uk Kim     void);
327fba7fc7eSJung-uk Kim 
328fba7fc7eSJung-uk Kim 
329fba7fc7eSJung-uk Kim /*
330fba7fc7eSJung-uk Kim  * asllisting - generate all "listing" type files
331fba7fc7eSJung-uk Kim  */
332fba7fc7eSJung-uk Kim void
333fba7fc7eSJung-uk Kim LsDoListings (
334fba7fc7eSJung-uk Kim     void);
335fba7fc7eSJung-uk Kim 
336fba7fc7eSJung-uk Kim void
337fba7fc7eSJung-uk Kim LsWriteNodeToAsmListing (
338fba7fc7eSJung-uk Kim     ACPI_PARSE_OBJECT       *Op);
339fba7fc7eSJung-uk Kim 
340fba7fc7eSJung-uk Kim void
341fba7fc7eSJung-uk Kim LsWriteNode (
342fba7fc7eSJung-uk Kim     ACPI_PARSE_OBJECT       *Op,
343fba7fc7eSJung-uk Kim     UINT32                  FileId);
344fba7fc7eSJung-uk Kim 
345fba7fc7eSJung-uk Kim void
346fba7fc7eSJung-uk Kim LsDoHexOutput (
347fba7fc7eSJung-uk Kim     void);
348fba7fc7eSJung-uk Kim 
3491a39cfb0SJung-uk Kim void
3501a39cfb0SJung-uk Kim LsDumpParseTree (
3511a39cfb0SJung-uk Kim     void);
352fba7fc7eSJung-uk Kim 
353fba7fc7eSJung-uk Kim /*
354fba7fc7eSJung-uk Kim  * aslfold - constant folding
355fba7fc7eSJung-uk Kim  */
356fba7fc7eSJung-uk Kim ACPI_STATUS
357fba7fc7eSJung-uk Kim OpcAmlConstantWalk (
358fba7fc7eSJung-uk Kim     ACPI_PARSE_OBJECT       *Op,
359fba7fc7eSJung-uk Kim     UINT32                  Level,
360fba7fc7eSJung-uk Kim     void                    *Context);
361fba7fc7eSJung-uk Kim 
362fba7fc7eSJung-uk Kim 
363fba7fc7eSJung-uk Kim /*
364fba7fc7eSJung-uk Kim  * aslopcodes - generate AML opcodes
365fba7fc7eSJung-uk Kim  */
366fba7fc7eSJung-uk Kim ACPI_STATUS
367fba7fc7eSJung-uk Kim OpcAmlOpcodeWalk (
368fba7fc7eSJung-uk Kim     ACPI_PARSE_OBJECT       *Op,
369fba7fc7eSJung-uk Kim     UINT32                  Level,
370fba7fc7eSJung-uk Kim     void                    *Context);
371fba7fc7eSJung-uk Kim 
372fba7fc7eSJung-uk Kim ACPI_STATUS
373fba7fc7eSJung-uk Kim OpcAmlOpcodeUpdateWalk (
374fba7fc7eSJung-uk Kim     ACPI_PARSE_OBJECT       *Op,
375fba7fc7eSJung-uk Kim     UINT32                  Level,
376fba7fc7eSJung-uk Kim     void                    *Context);
377fba7fc7eSJung-uk Kim 
378fba7fc7eSJung-uk Kim void
379fba7fc7eSJung-uk Kim OpcGenerateAmlOpcode (
380fba7fc7eSJung-uk Kim     ACPI_PARSE_OBJECT       *Op);
381fba7fc7eSJung-uk Kim 
382fba7fc7eSJung-uk Kim UINT32
383fba7fc7eSJung-uk Kim OpcSetOptimalIntegerSize (
384fba7fc7eSJung-uk Kim     ACPI_PARSE_OBJECT       *Op);
385fba7fc7eSJung-uk Kim 
386fba7fc7eSJung-uk Kim void
387fba7fc7eSJung-uk Kim OpcGetIntegerWidth (
388fba7fc7eSJung-uk Kim     ACPI_PARSE_OBJECT       *Op);
389fba7fc7eSJung-uk Kim 
390fba7fc7eSJung-uk Kim 
391fba7fc7eSJung-uk Kim /*
392fba7fc7eSJung-uk Kim  * asloperands - generate AML operands for the AML opcodes
393fba7fc7eSJung-uk Kim  */
394fba7fc7eSJung-uk Kim ACPI_PARSE_OBJECT  *
395fba7fc7eSJung-uk Kim UtGetArg (
396fba7fc7eSJung-uk Kim     ACPI_PARSE_OBJECT       *Op,
397fba7fc7eSJung-uk Kim     UINT32                  Argn);
398fba7fc7eSJung-uk Kim 
399fba7fc7eSJung-uk Kim void
400fba7fc7eSJung-uk Kim OpnGenerateAmlOperands (
401fba7fc7eSJung-uk Kim     ACPI_PARSE_OBJECT       *Op);
402fba7fc7eSJung-uk Kim 
403fba7fc7eSJung-uk Kim void
404fba7fc7eSJung-uk Kim OpnDoPackage (
405fba7fc7eSJung-uk Kim     ACPI_PARSE_OBJECT       *Op);
406fba7fc7eSJung-uk Kim 
407fba7fc7eSJung-uk Kim 
408fba7fc7eSJung-uk Kim /*
409fba7fc7eSJung-uk Kim  * aslopt - optmization
410fba7fc7eSJung-uk Kim  */
411fba7fc7eSJung-uk Kim void
412fba7fc7eSJung-uk Kim OptOptimizeNamePath (
413fba7fc7eSJung-uk Kim     ACPI_PARSE_OBJECT       *Op,
414fba7fc7eSJung-uk Kim     UINT32                  Flags,
415fba7fc7eSJung-uk Kim     ACPI_WALK_STATE         *WalkState,
416fba7fc7eSJung-uk Kim     char                    *AmlNameString,
417fba7fc7eSJung-uk Kim     ACPI_NAMESPACE_NODE     *TargetNode);
418fba7fc7eSJung-uk Kim 
419fba7fc7eSJung-uk Kim 
420fba7fc7eSJung-uk Kim /*
421fba7fc7eSJung-uk Kim  * aslcodegen - code generation
422fba7fc7eSJung-uk Kim  */
423fba7fc7eSJung-uk Kim void
424fba7fc7eSJung-uk Kim CgGenerateAmlOutput (
425fba7fc7eSJung-uk Kim     void);
426fba7fc7eSJung-uk Kim 
427fba7fc7eSJung-uk Kim 
428fba7fc7eSJung-uk Kim /*
429fba7fc7eSJung-uk Kim  * asllength - calculate/adjust AML package lengths
430fba7fc7eSJung-uk Kim  */
431fba7fc7eSJung-uk Kim ACPI_STATUS
432fba7fc7eSJung-uk Kim LnPackageLengthWalk (
433fba7fc7eSJung-uk Kim     ACPI_PARSE_OBJECT       *Op,
434fba7fc7eSJung-uk Kim     UINT32                  Level,
435fba7fc7eSJung-uk Kim     void                    *Context);
436fba7fc7eSJung-uk Kim 
437fba7fc7eSJung-uk Kim ACPI_STATUS
438fba7fc7eSJung-uk Kim LnInitLengthsWalk (
439fba7fc7eSJung-uk Kim     ACPI_PARSE_OBJECT       *Op,
440fba7fc7eSJung-uk Kim     UINT32                  Level,
441fba7fc7eSJung-uk Kim     void                    *Context);
442fba7fc7eSJung-uk Kim 
443fba7fc7eSJung-uk Kim void
444fba7fc7eSJung-uk Kim CgGenerateAmlLengths (
445fba7fc7eSJung-uk Kim     ACPI_PARSE_OBJECT       *Op);
446fba7fc7eSJung-uk Kim 
447fba7fc7eSJung-uk Kim 
448fba7fc7eSJung-uk Kim /*
449fba7fc7eSJung-uk Kim  * aslmap - opcode mappings and reserved method names
450fba7fc7eSJung-uk Kim  */
451fba7fc7eSJung-uk Kim ACPI_OBJECT_TYPE
452fba7fc7eSJung-uk Kim AslMapNamedOpcodeToDataType (
453fba7fc7eSJung-uk Kim     UINT16                  Opcode);
454fba7fc7eSJung-uk Kim 
455fba7fc7eSJung-uk Kim void
456fba7fc7eSJung-uk Kim MpDisplayReservedNames (
457fba7fc7eSJung-uk Kim     void);
458fba7fc7eSJung-uk Kim 
459fba7fc7eSJung-uk Kim 
460fba7fc7eSJung-uk Kim /*
461fba7fc7eSJung-uk Kim  * asltransform - parse tree transformations
462fba7fc7eSJung-uk Kim  */
463fba7fc7eSJung-uk Kim ACPI_STATUS
464fba7fc7eSJung-uk Kim TrAmlTransformWalk (
465fba7fc7eSJung-uk Kim     ACPI_PARSE_OBJECT       *Op,
466fba7fc7eSJung-uk Kim     UINT32                  Level,
467fba7fc7eSJung-uk Kim     void                    *Context);
468fba7fc7eSJung-uk Kim 
469fba7fc7eSJung-uk Kim 
470fba7fc7eSJung-uk Kim /*
471fba7fc7eSJung-uk Kim  * asltree - parse tree support
472fba7fc7eSJung-uk Kim  */
473fba7fc7eSJung-uk Kim ACPI_STATUS
474fba7fc7eSJung-uk Kim TrWalkParseTree (
475fba7fc7eSJung-uk Kim     ACPI_PARSE_OBJECT       *Op,
476fba7fc7eSJung-uk Kim     UINT32                  Visitation,
477fba7fc7eSJung-uk Kim     ASL_WALK_CALLBACK       DescendingCallback,
478fba7fc7eSJung-uk Kim     ASL_WALK_CALLBACK       AscendingCallback,
479fba7fc7eSJung-uk Kim     void                    *Context);
480fba7fc7eSJung-uk Kim 
481fba7fc7eSJung-uk Kim /* Values for "Visitation" parameter above */
482fba7fc7eSJung-uk Kim 
483fba7fc7eSJung-uk Kim #define ASL_WALK_VISIT_DOWNWARD     0x01
484fba7fc7eSJung-uk Kim #define ASL_WALK_VISIT_UPWARD       0x02
485fba7fc7eSJung-uk Kim #define ASL_WALK_VISIT_TWICE        (ASL_WALK_VISIT_DOWNWARD | ASL_WALK_VISIT_UPWARD)
486fba7fc7eSJung-uk Kim 
487fba7fc7eSJung-uk Kim 
488fba7fc7eSJung-uk Kim ACPI_PARSE_OBJECT *
489fba7fc7eSJung-uk Kim TrAllocateNode (
490fba7fc7eSJung-uk Kim     UINT32                  ParseOpcode);
491fba7fc7eSJung-uk Kim 
492fba7fc7eSJung-uk Kim void
493fba7fc7eSJung-uk Kim TrReleaseNode (
494fba7fc7eSJung-uk Kim     ACPI_PARSE_OBJECT       *Op);
495fba7fc7eSJung-uk Kim 
496fba7fc7eSJung-uk Kim ACPI_PARSE_OBJECT *
497fba7fc7eSJung-uk Kim TrUpdateNode (
498fba7fc7eSJung-uk Kim     UINT32                  ParseOpcode,
499fba7fc7eSJung-uk Kim     ACPI_PARSE_OBJECT       *Op);
500fba7fc7eSJung-uk Kim 
501fba7fc7eSJung-uk Kim ACPI_PARSE_OBJECT *
502fba7fc7eSJung-uk Kim TrCreateNode (
503fba7fc7eSJung-uk Kim     UINT32                  ParseOpcode,
504fba7fc7eSJung-uk Kim     UINT32                  NumChildren,
505fba7fc7eSJung-uk Kim     ...);
506fba7fc7eSJung-uk Kim 
507fba7fc7eSJung-uk Kim ACPI_PARSE_OBJECT *
508fba7fc7eSJung-uk Kim TrCreateLeafNode (
509fba7fc7eSJung-uk Kim     UINT32                  ParseOpcode);
510fba7fc7eSJung-uk Kim 
511fba7fc7eSJung-uk Kim ACPI_PARSE_OBJECT *
512fba7fc7eSJung-uk Kim TrCreateValuedLeafNode (
513fba7fc7eSJung-uk Kim     UINT32                  ParseOpcode,
5149a179dd8SJung-uk Kim     UINT64                  Value);
515fba7fc7eSJung-uk Kim 
516fba7fc7eSJung-uk Kim ACPI_PARSE_OBJECT *
517fba7fc7eSJung-uk Kim TrLinkChildren (
518fba7fc7eSJung-uk Kim     ACPI_PARSE_OBJECT       *Op,
519fba7fc7eSJung-uk Kim     UINT32                  NumChildren,
520fba7fc7eSJung-uk Kim     ...);
521fba7fc7eSJung-uk Kim 
522fba7fc7eSJung-uk Kim void
523fba7fc7eSJung-uk Kim TrSetEndLineNumber (
524fba7fc7eSJung-uk Kim     ACPI_PARSE_OBJECT       *Op);
525fba7fc7eSJung-uk Kim 
526fba7fc7eSJung-uk Kim void
527fba7fc7eSJung-uk Kim TrWalkTree (
528fba7fc7eSJung-uk Kim     void);
529fba7fc7eSJung-uk Kim 
530fba7fc7eSJung-uk Kim ACPI_PARSE_OBJECT *
531fba7fc7eSJung-uk Kim TrLinkPeerNode (
532fba7fc7eSJung-uk Kim     ACPI_PARSE_OBJECT       *Op1,
533fba7fc7eSJung-uk Kim     ACPI_PARSE_OBJECT       *Op2);
534fba7fc7eSJung-uk Kim 
535fba7fc7eSJung-uk Kim ACPI_PARSE_OBJECT *
536fba7fc7eSJung-uk Kim TrLinkChildNode (
537fba7fc7eSJung-uk Kim     ACPI_PARSE_OBJECT       *Op1,
538fba7fc7eSJung-uk Kim     ACPI_PARSE_OBJECT       *Op2);
539fba7fc7eSJung-uk Kim 
540fba7fc7eSJung-uk Kim ACPI_PARSE_OBJECT *
541fba7fc7eSJung-uk Kim TrSetNodeFlags (
542fba7fc7eSJung-uk Kim     ACPI_PARSE_OBJECT       *Op,
543fba7fc7eSJung-uk Kim     UINT32                  Flags);
544fba7fc7eSJung-uk Kim 
545fba7fc7eSJung-uk Kim ACPI_PARSE_OBJECT *
546fba7fc7eSJung-uk Kim TrLinkPeerNodes (
547fba7fc7eSJung-uk Kim     UINT32                  NumPeers,
548fba7fc7eSJung-uk Kim     ...);
549fba7fc7eSJung-uk Kim 
550fba7fc7eSJung-uk Kim 
551fba7fc7eSJung-uk Kim /*
552fba7fc7eSJung-uk Kim  * aslfiles - File I/O support
553fba7fc7eSJung-uk Kim  */
554fba7fc7eSJung-uk Kim void
555fba7fc7eSJung-uk Kim AslAbort (
556fba7fc7eSJung-uk Kim     void);
55753289f6aSNate Lawson 
55853289f6aSNate Lawson void
559d6dd1baeSJung-uk Kim FlAddIncludeDirectory (
560d6dd1baeSJung-uk Kim     char                    *Dir);
561d6dd1baeSJung-uk Kim 
562d6dd1baeSJung-uk Kim void
56353289f6aSNate Lawson FlOpenIncludeFile (
56453289f6aSNate Lawson     ACPI_PARSE_OBJECT       *Op);
56553289f6aSNate Lawson 
56653289f6aSNate Lawson void
56753289f6aSNate Lawson FlFileError (
56853289f6aSNate Lawson     UINT32                  FileId,
56953289f6aSNate Lawson     UINT8                   ErrorId);
57053289f6aSNate Lawson 
57153289f6aSNate Lawson ACPI_STATUS
57253289f6aSNate Lawson FlReadFile (
57353289f6aSNate Lawson     UINT32                  FileId,
57453289f6aSNate Lawson     void                    *Buffer,
57553289f6aSNate Lawson     UINT32                  Length);
57653289f6aSNate Lawson 
57753289f6aSNate Lawson void
57853289f6aSNate Lawson FlWriteFile (
57953289f6aSNate Lawson     UINT32                  FileId,
58053289f6aSNate Lawson     void                    *Buffer,
58153289f6aSNate Lawson     UINT32                  Length);
58253289f6aSNate Lawson 
58353289f6aSNate Lawson void
58453289f6aSNate Lawson FlSeekFile (
58553289f6aSNate Lawson     UINT32                  FileId,
58653289f6aSNate Lawson     long                    Offset);
58753289f6aSNate Lawson 
58853289f6aSNate Lawson void
58953289f6aSNate Lawson FlCloseFile (
59053289f6aSNate Lawson     UINT32                  FileId);
59153289f6aSNate Lawson 
59253289f6aSNate Lawson void
59353289f6aSNate Lawson FlPrintFile (
59453289f6aSNate Lawson     UINT32                  FileId,
59553289f6aSNate Lawson     char                    *Format,
59653289f6aSNate Lawson     ...);
59753289f6aSNate Lawson 
59853289f6aSNate Lawson void
59953289f6aSNate Lawson FlSetLineNumber (
60053289f6aSNate Lawson     ACPI_PARSE_OBJECT       *Op);
60153289f6aSNate Lawson 
60253289f6aSNate Lawson ACPI_STATUS
60353289f6aSNate Lawson FlOpenInputFile (
60453289f6aSNate Lawson     char                    *InputFilename);
60553289f6aSNate Lawson 
60653289f6aSNate Lawson ACPI_STATUS
60753289f6aSNate Lawson FlOpenAmlOutputFile (
60853289f6aSNate Lawson     char                    *InputFilename);
60953289f6aSNate Lawson 
61053289f6aSNate Lawson ACPI_STATUS
61153289f6aSNate Lawson FlOpenMiscOutputFiles (
61253289f6aSNate Lawson     char                    *InputFilename);
61353289f6aSNate Lawson 
61453289f6aSNate Lawson 
615fba7fc7eSJung-uk Kim /*
616fba7fc7eSJung-uk Kim  * asload - load namespace in prep for cross reference
617fba7fc7eSJung-uk Kim  */
61853289f6aSNate Lawson ACPI_STATUS
61953289f6aSNate Lawson LdLoadNamespace (
62053289f6aSNate Lawson     ACPI_PARSE_OBJECT       *RootOp);
62153289f6aSNate Lawson 
62253289f6aSNate Lawson 
623fba7fc7eSJung-uk Kim /*
624fba7fc7eSJung-uk Kim  * asllookup - namespace cross reference
625fba7fc7eSJung-uk Kim  */
62653289f6aSNate Lawson ACPI_STATUS
627fba7fc7eSJung-uk Kim LkCrossReferenceNamespace (
628fba7fc7eSJung-uk Kim     void);
62953289f6aSNate Lawson 
6301a39cfb0SJung-uk Kim void
6311a39cfb0SJung-uk Kim LkFindUnreferencedObjects (
6321a39cfb0SJung-uk Kim     void);
6331a39cfb0SJung-uk Kim 
63453289f6aSNate Lawson ACPI_STATUS
63553289f6aSNate Lawson LsDisplayNamespace (
63653289f6aSNate Lawson     void);
63753289f6aSNate Lawson 
63853289f6aSNate Lawson 
639fba7fc7eSJung-uk Kim /*
640fba7fc7eSJung-uk Kim  * aslutils - common compiler utilites
641fba7fc7eSJung-uk Kim  */
642fba7fc7eSJung-uk Kim void
643fba7fc7eSJung-uk Kim DbgPrint (
644fba7fc7eSJung-uk Kim     UINT32                  Type,
645fba7fc7eSJung-uk Kim     char                    *Format,
646fba7fc7eSJung-uk Kim     ...);
64753289f6aSNate Lawson 
648fba7fc7eSJung-uk Kim /* Type values for above */
649fba7fc7eSJung-uk Kim 
650fba7fc7eSJung-uk Kim #define ASL_DEBUG_OUTPUT    0
651fba7fc7eSJung-uk Kim #define ASL_PARSE_OUTPUT    1
652fba7fc7eSJung-uk Kim #define ASL_TREE_OUTPUT     2
65353289f6aSNate Lawson 
65453289f6aSNate Lawson void
65553289f6aSNate Lawson UtDisplayConstantOpcodes (
65653289f6aSNate Lawson     void);
65753289f6aSNate Lawson 
658fba7fc7eSJung-uk Kim UINT8
65953289f6aSNate Lawson UtBeginEvent (
66053289f6aSNate Lawson     char                    *Name);
66153289f6aSNate Lawson 
66253289f6aSNate Lawson void
66353289f6aSNate Lawson UtEndEvent (
664fba7fc7eSJung-uk Kim     UINT8                   Event);
66553289f6aSNate Lawson 
66653289f6aSNate Lawson void *
66753289f6aSNate Lawson UtLocalCalloc (
66853289f6aSNate Lawson     UINT32                  Size);
66953289f6aSNate Lawson 
67053289f6aSNate Lawson void
67153289f6aSNate Lawson UtPrintFormattedName (
67253289f6aSNate Lawson     UINT16                  ParseOpcode,
67353289f6aSNate Lawson     UINT32                  Level);
67453289f6aSNate Lawson 
67553289f6aSNate Lawson void
67653289f6aSNate Lawson UtDisplaySummary (
67753289f6aSNate Lawson     UINT32                  FileId);
67853289f6aSNate Lawson 
67953289f6aSNate Lawson UINT8
68053289f6aSNate Lawson UtHexCharToValue (
681fba7fc7eSJung-uk Kim     int                     HexChar);
68253289f6aSNate Lawson 
68353289f6aSNate Lawson void
68453289f6aSNate Lawson UtConvertByteToHex (
68553289f6aSNate Lawson     UINT8                   RawByte,
68653289f6aSNate Lawson     UINT8                   *Buffer);
68753289f6aSNate Lawson 
68853289f6aSNate Lawson void
68953289f6aSNate Lawson UtConvertByteToAsmHex (
69053289f6aSNate Lawson     UINT8                   RawByte,
69153289f6aSNate Lawson     UINT8                   *Buffer);
69253289f6aSNate Lawson 
69353289f6aSNate Lawson char *
69453289f6aSNate Lawson UtGetOpName (
69553289f6aSNate Lawson     UINT32                  ParseOpcode);
69653289f6aSNate Lawson 
69753289f6aSNate Lawson void
69853289f6aSNate Lawson UtSetParseOpName (
69953289f6aSNate Lawson     ACPI_PARSE_OBJECT       *Op);
70053289f6aSNate Lawson 
70153289f6aSNate Lawson char *
70253289f6aSNate Lawson UtGetStringBuffer (
70353289f6aSNate Lawson     UINT32                  Length);
70453289f6aSNate Lawson 
70553289f6aSNate Lawson ACPI_STATUS
70653289f6aSNate Lawson UtInternalizeName (
70753289f6aSNate Lawson     char                    *ExternalName,
70853289f6aSNate Lawson     char                    **ConvertedName);
70953289f6aSNate Lawson 
71053289f6aSNate Lawson void
71153289f6aSNate Lawson UtAttachNamepathToOwner (
71253289f6aSNate Lawson     ACPI_PARSE_OBJECT       *Op,
71353289f6aSNate Lawson     ACPI_PARSE_OBJECT       *NameNode);
71453289f6aSNate Lawson 
71553289f6aSNate Lawson ACPI_PARSE_OBJECT *
71653289f6aSNate Lawson UtCheckIntegerRange (
71753289f6aSNate Lawson     ACPI_PARSE_OBJECT       *Op,
71853289f6aSNate Lawson     UINT32                  LowValue,
71953289f6aSNate Lawson     UINT32                  HighValue);
72053289f6aSNate Lawson 
7219a179dd8SJung-uk Kim UINT64
72253289f6aSNate Lawson UtDoConstant (
72353289f6aSNate Lawson     char                    *String);
72453289f6aSNate Lawson 
72553289f6aSNate Lawson 
72653289f6aSNate Lawson /*
727fba7fc7eSJung-uk Kim  * aslresource - Resource template generation utilities
72853289f6aSNate Lawson  */
72953289f6aSNate Lawson ASL_RESOURCE_NODE *
73053289f6aSNate Lawson RsAllocateResourceNode (
73153289f6aSNate Lawson     UINT32                  Size);
73253289f6aSNate Lawson 
73353289f6aSNate Lawson void
73453289f6aSNate Lawson RsCreateBitField (
73553289f6aSNate Lawson     ACPI_PARSE_OBJECT       *Op,
73653289f6aSNate Lawson     char                    *Name,
73753289f6aSNate Lawson     UINT32                  ByteOffset,
73853289f6aSNate Lawson     UINT32                  BitOffset);
73953289f6aSNate Lawson 
74053289f6aSNate Lawson void
74153289f6aSNate Lawson RsCreateByteField (
74253289f6aSNate Lawson     ACPI_PARSE_OBJECT       *Op,
74353289f6aSNate Lawson     char                    *Name,
74453289f6aSNate Lawson     UINT32                  ByteOffset);
74553289f6aSNate Lawson 
74653289f6aSNate Lawson void
74753289f6aSNate Lawson RsSetFlagBits (
74853289f6aSNate Lawson     UINT8                   *Flags,
74953289f6aSNate Lawson     ACPI_PARSE_OBJECT       *Op,
75053289f6aSNate Lawson     UINT8                   Position,
75153289f6aSNate Lawson     UINT8                   DefaultBit);
75253289f6aSNate Lawson 
75353289f6aSNate Lawson ACPI_PARSE_OBJECT *
75453289f6aSNate Lawson RsCompleteNodeAndGetNext (
75553289f6aSNate Lawson     ACPI_PARSE_OBJECT       *Op);
75653289f6aSNate Lawson 
757fba7fc7eSJung-uk Kim void
758fba7fc7eSJung-uk Kim RsCheckListForDuplicates (
759fba7fc7eSJung-uk Kim     ACPI_PARSE_OBJECT       *Op);
760fba7fc7eSJung-uk Kim 
76153289f6aSNate Lawson ASL_RESOURCE_NODE *
76253289f6aSNate Lawson RsDoOneResourceDescriptor (
76353289f6aSNate Lawson     ACPI_PARSE_OBJECT       *DescriptorTypeOp,
76453289f6aSNate Lawson     UINT32                  CurrentByteOffset,
76553289f6aSNate Lawson     UINT8                   *State);
76653289f6aSNate Lawson 
767fba7fc7eSJung-uk Kim /* Values for State above */
768fba7fc7eSJung-uk Kim 
76953289f6aSNate Lawson #define ACPI_RSTATE_NORMAL              0
77053289f6aSNate Lawson #define ACPI_RSTATE_START_DEPENDENT     1
77153289f6aSNate Lawson #define ACPI_RSTATE_DEPENDENT_LIST      2
77253289f6aSNate Lawson 
77353289f6aSNate Lawson UINT32
77453289f6aSNate Lawson RsLinkDescriptorChain (
77553289f6aSNate Lawson     ASL_RESOURCE_NODE       **PreviousRnode,
77653289f6aSNate Lawson     ASL_RESOURCE_NODE       *Rnode);
77753289f6aSNate Lawson 
778fba7fc7eSJung-uk Kim void
779fba7fc7eSJung-uk Kim RsDoResourceTemplate (
780fba7fc7eSJung-uk Kim     ACPI_PARSE_OBJECT       *Op);
781fba7fc7eSJung-uk Kim 
78253289f6aSNate Lawson 
78353289f6aSNate Lawson /*
784fba7fc7eSJung-uk Kim  * aslrestype1 - generate Small descriptors
78553289f6aSNate Lawson  */
78653289f6aSNate Lawson ASL_RESOURCE_NODE *
7871a39cfb0SJung-uk Kim RsDoEndTagDescriptor (
7881a39cfb0SJung-uk Kim     ACPI_PARSE_OBJECT       *Op,
7891a39cfb0SJung-uk Kim     UINT32                  CurrentByteOffset);
7901a39cfb0SJung-uk Kim 
7911a39cfb0SJung-uk Kim ASL_RESOURCE_NODE *
79253289f6aSNate Lawson RsDoDmaDescriptor (
79353289f6aSNate Lawson     ACPI_PARSE_OBJECT       *Op,
79453289f6aSNate Lawson     UINT32                  CurrentByteOffset);
79553289f6aSNate Lawson 
79653289f6aSNate Lawson ASL_RESOURCE_NODE *
79753289f6aSNate Lawson RsDoEndDependentDescriptor (
79853289f6aSNate Lawson     ACPI_PARSE_OBJECT       *Op,
79953289f6aSNate Lawson     UINT32                  CurrentByteOffset);
80053289f6aSNate Lawson 
80153289f6aSNate Lawson ASL_RESOURCE_NODE *
80253289f6aSNate Lawson RsDoFixedIoDescriptor (
80353289f6aSNate Lawson     ACPI_PARSE_OBJECT       *Op,
80453289f6aSNate Lawson     UINT32                  CurrentByteOffset);
80553289f6aSNate Lawson 
80653289f6aSNate Lawson ASL_RESOURCE_NODE *
80753289f6aSNate Lawson RsDoIoDescriptor (
80853289f6aSNate Lawson     ACPI_PARSE_OBJECT       *Op,
80953289f6aSNate Lawson     UINT32                  CurrentByteOffset);
81053289f6aSNate Lawson 
81153289f6aSNate Lawson ASL_RESOURCE_NODE *
81253289f6aSNate Lawson RsDoIrqDescriptor (
81353289f6aSNate Lawson     ACPI_PARSE_OBJECT       *Op,
81453289f6aSNate Lawson     UINT32                  CurrentByteOffset);
81553289f6aSNate Lawson 
81653289f6aSNate Lawson ASL_RESOURCE_NODE *
81753289f6aSNate Lawson RsDoIrqNoFlagsDescriptor (
81853289f6aSNate Lawson     ACPI_PARSE_OBJECT       *Op,
81953289f6aSNate Lawson     UINT32                  CurrentByteOffset);
82053289f6aSNate Lawson 
82153289f6aSNate Lawson ASL_RESOURCE_NODE *
82253289f6aSNate Lawson RsDoMemory24Descriptor (
82353289f6aSNate Lawson     ACPI_PARSE_OBJECT       *Op,
82453289f6aSNate Lawson     UINT32                  CurrentByteOffset);
82553289f6aSNate Lawson 
82653289f6aSNate Lawson ASL_RESOURCE_NODE *
82753289f6aSNate Lawson RsDoMemory32Descriptor (
82853289f6aSNate Lawson     ACPI_PARSE_OBJECT       *Op,
82953289f6aSNate Lawson     UINT32                  CurrentByteOffset);
83053289f6aSNate Lawson 
83153289f6aSNate Lawson ASL_RESOURCE_NODE *
83253289f6aSNate Lawson RsDoMemory32FixedDescriptor (
83353289f6aSNate Lawson     ACPI_PARSE_OBJECT       *Op,
83453289f6aSNate Lawson     UINT32                  CurrentByteOffset);
83553289f6aSNate Lawson 
83653289f6aSNate Lawson ASL_RESOURCE_NODE *
83753289f6aSNate Lawson RsDoStartDependentDescriptor (
83853289f6aSNate Lawson     ACPI_PARSE_OBJECT       *Op,
83953289f6aSNate Lawson     UINT32                  CurrentByteOffset);
84053289f6aSNate Lawson 
84153289f6aSNate Lawson ASL_RESOURCE_NODE *
84253289f6aSNate Lawson RsDoStartDependentNoPriDescriptor (
84353289f6aSNate Lawson     ACPI_PARSE_OBJECT       *Op,
84453289f6aSNate Lawson     UINT32                  CurrentByteOffset);
84553289f6aSNate Lawson 
84653289f6aSNate Lawson ASL_RESOURCE_NODE *
84753289f6aSNate Lawson RsDoVendorSmallDescriptor (
84853289f6aSNate Lawson     ACPI_PARSE_OBJECT       *Op,
84953289f6aSNate Lawson     UINT32                  CurrentByteOffset);
85053289f6aSNate Lawson 
85153289f6aSNate Lawson 
85253289f6aSNate Lawson /*
853fba7fc7eSJung-uk Kim  * aslrestype2 - generate Large descriptors
85453289f6aSNate Lawson  */
855fba7fc7eSJung-uk Kim ASL_RESOURCE_NODE *
856fba7fc7eSJung-uk Kim RsDoInterruptDescriptor (
857fba7fc7eSJung-uk Kim     ACPI_PARSE_OBJECT       *Op,
858fba7fc7eSJung-uk Kim     UINT32                  CurrentByteOffset);
85953289f6aSNate Lawson 
86053289f6aSNate Lawson ASL_RESOURCE_NODE *
86153289f6aSNate Lawson RsDoDwordIoDescriptor (
86253289f6aSNate Lawson     ACPI_PARSE_OBJECT       *Op,
86353289f6aSNate Lawson     UINT32                  CurrentByteOffset);
86453289f6aSNate Lawson 
86553289f6aSNate Lawson ASL_RESOURCE_NODE *
86653289f6aSNate Lawson RsDoDwordMemoryDescriptor (
86753289f6aSNate Lawson     ACPI_PARSE_OBJECT       *Op,
86853289f6aSNate Lawson     UINT32                  CurrentByteOffset);
86953289f6aSNate Lawson 
87053289f6aSNate Lawson ASL_RESOURCE_NODE *
871fba7fc7eSJung-uk Kim RsDoDwordSpaceDescriptor (
872fba7fc7eSJung-uk Kim     ACPI_PARSE_OBJECT       *Op,
873fba7fc7eSJung-uk Kim     UINT32                  CurrentByteOffset);
874fba7fc7eSJung-uk Kim 
875fba7fc7eSJung-uk Kim ASL_RESOURCE_NODE *
876fba7fc7eSJung-uk Kim RsDoExtendedIoDescriptor (
877fba7fc7eSJung-uk Kim     ACPI_PARSE_OBJECT       *Op,
878fba7fc7eSJung-uk Kim     UINT32                  CurrentByteOffset);
879fba7fc7eSJung-uk Kim 
880fba7fc7eSJung-uk Kim ASL_RESOURCE_NODE *
881fba7fc7eSJung-uk Kim RsDoExtendedMemoryDescriptor (
882fba7fc7eSJung-uk Kim     ACPI_PARSE_OBJECT       *Op,
883fba7fc7eSJung-uk Kim     UINT32                  CurrentByteOffset);
884fba7fc7eSJung-uk Kim 
885fba7fc7eSJung-uk Kim ASL_RESOURCE_NODE *
886fba7fc7eSJung-uk Kim RsDoExtendedSpaceDescriptor (
887fba7fc7eSJung-uk Kim     ACPI_PARSE_OBJECT       *Op,
888fba7fc7eSJung-uk Kim     UINT32                  CurrentByteOffset);
889fba7fc7eSJung-uk Kim 
890fba7fc7eSJung-uk Kim ASL_RESOURCE_NODE *
89153289f6aSNate Lawson RsDoQwordIoDescriptor (
89253289f6aSNate Lawson     ACPI_PARSE_OBJECT       *Op,
89353289f6aSNate Lawson     UINT32                  CurrentByteOffset);
89453289f6aSNate Lawson 
89553289f6aSNate Lawson ASL_RESOURCE_NODE *
89653289f6aSNate Lawson RsDoQwordMemoryDescriptor (
89753289f6aSNate Lawson     ACPI_PARSE_OBJECT       *Op,
89853289f6aSNate Lawson     UINT32                  CurrentByteOffset);
89953289f6aSNate Lawson 
90053289f6aSNate Lawson ASL_RESOURCE_NODE *
901fba7fc7eSJung-uk Kim RsDoQwordSpaceDescriptor (
902fba7fc7eSJung-uk Kim     ACPI_PARSE_OBJECT       *Op,
903fba7fc7eSJung-uk Kim     UINT32                  CurrentByteOffset);
904fba7fc7eSJung-uk Kim 
905fba7fc7eSJung-uk Kim ASL_RESOURCE_NODE *
90653289f6aSNate Lawson RsDoWordIoDescriptor (
90753289f6aSNate Lawson     ACPI_PARSE_OBJECT       *Op,
90853289f6aSNate Lawson     UINT32                  CurrentByteOffset);
90953289f6aSNate Lawson 
91053289f6aSNate Lawson ASL_RESOURCE_NODE *
911fba7fc7eSJung-uk Kim RsDoWordSpaceDescriptor (
912fba7fc7eSJung-uk Kim     ACPI_PARSE_OBJECT       *Op,
913fba7fc7eSJung-uk Kim     UINT32                  CurrentByteOffset);
914fba7fc7eSJung-uk Kim 
915fba7fc7eSJung-uk Kim ASL_RESOURCE_NODE *
91653289f6aSNate Lawson RsDoWordBusNumberDescriptor (
91753289f6aSNate Lawson     ACPI_PARSE_OBJECT       *Op,
91853289f6aSNate Lawson     UINT32                  CurrentByteOffset);
91953289f6aSNate Lawson 
92053289f6aSNate Lawson ASL_RESOURCE_NODE *
92153289f6aSNate Lawson RsDoVendorLargeDescriptor (
92253289f6aSNate Lawson     ACPI_PARSE_OBJECT       *Op,
92353289f6aSNate Lawson     UINT32                  CurrentByteOffset);
92453289f6aSNate Lawson 
92553289f6aSNate Lawson ASL_RESOURCE_NODE *
92653289f6aSNate Lawson RsDoGeneralRegisterDescriptor (
92753289f6aSNate Lawson     ACPI_PARSE_OBJECT       *Op,
92853289f6aSNate Lawson     UINT32                  CurrentByteOffset);
92953289f6aSNate Lawson 
93053289f6aSNate Lawson #endif /*  __ASLCOMPILER_H */
93153289f6aSNate Lawson 
932