aslcompiler.h revision 210976
1230557Sjimharris
2230557Sjimharris/******************************************************************************
3230557Sjimharris *
4230557Sjimharris * Module Name: aslcompiler.h - common include file for iASL
5230557Sjimharris *
6230557Sjimharris *****************************************************************************/
7230557Sjimharris
8230557Sjimharris/******************************************************************************
9230557Sjimharris *
10230557Sjimharris * 1. Copyright Notice
11230557Sjimharris *
12230557Sjimharris * Some or all of this work - Copyright (c) 1999 - 2010, Intel Corp.
13230557Sjimharris * All rights reserved.
14230557Sjimharris *
15230557Sjimharris * 2. License
16230557Sjimharris *
17230557Sjimharris * 2.1. This is your license from Intel Corp. under its intellectual property
18230557Sjimharris * rights.  You may have additional license terms from the party that provided
19230557Sjimharris * you this software, covering your right to use that party's intellectual
20230557Sjimharris * property rights.
21230557Sjimharris *
22230557Sjimharris * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
23230557Sjimharris * copy of the source code appearing in this file ("Covered Code") an
24230557Sjimharris * irrevocable, perpetual, worldwide license under Intel's copyrights in the
25230557Sjimharris * base code distributed originally by Intel ("Original Intel Code") to copy,
26230557Sjimharris * make derivatives, distribute, use and display any portion of the Covered
27230557Sjimharris * Code in any form, with the right to sublicense such rights; and
28230557Sjimharris *
29230557Sjimharris * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
30230557Sjimharris * license (with the right to sublicense), under only those claims of Intel
31230557Sjimharris * patents that are infringed by the Original Intel Code, to make, use, sell,
32230557Sjimharris * offer to sell, and import the Covered Code and derivative works thereof
33230557Sjimharris * solely to the minimum extent necessary to exercise the above copyright
34230557Sjimharris * license, and in no event shall the patent license extend to any additions
35230557Sjimharris * to or modifications of the Original Intel Code.  No other license or right
36230557Sjimharris * is granted directly or by implication, estoppel or otherwise;
37230557Sjimharris *
38230557Sjimharris * The above copyright and patent license is granted only if the following
39230557Sjimharris * conditions are met:
40230557Sjimharris *
41230557Sjimharris * 3. Conditions
42230557Sjimharris *
43230557Sjimharris * 3.1. Redistribution of Source with Rights to Further Distribute Source.
44230557Sjimharris * Redistribution of source code of any substantial portion of the Covered
45230557Sjimharris * Code or modification with rights to further distribute source must include
46230557Sjimharris * the above Copyright Notice, the above License, this list of Conditions,
47230557Sjimharris * and the following Disclaimer and Export Compliance provision.  In addition,
48230557Sjimharris * Licensee must cause all Covered Code to which Licensee contributes to
49230557Sjimharris * contain a file documenting the changes Licensee made to create that Covered
50230557Sjimharris * Code and the date of any change.  Licensee must include in that file the
51230557Sjimharris * documentation of any changes made by any predecessor Licensee.  Licensee
52230557Sjimharris * must include a prominent statement that the modification is derived,
53230557Sjimharris * directly or indirectly, from Original Intel Code.
54230557Sjimharris *
55230557Sjimharris * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
56230557Sjimharris * Redistribution of source code of any substantial portion of the Covered
57230557Sjimharris * Code or modification without rights to further distribute source must
58230557Sjimharris * include the following Disclaimer and Export Compliance provision in the
59230557Sjimharris * documentation and/or other materials provided with distribution.  In
60230557Sjimharris * addition, Licensee may not authorize further sublicense of source of any
61230557Sjimharris * portion of the Covered Code, and must include terms to the effect that the
62230557Sjimharris * license from Licensee to its licensee is limited to the intellectual
63230557Sjimharris * property embodied in the software Licensee provides to its licensee, and
64230557Sjimharris * not to intellectual property embodied in modifications its licensee may
65230557Sjimharris * make.
66230557Sjimharris *
67230557Sjimharris * 3.3. Redistribution of Executable. Redistribution in executable form of any
68230557Sjimharris * substantial portion of the Covered Code or modification must reproduce the
69230557Sjimharris * above Copyright Notice, and the following Disclaimer and Export Compliance
70230557Sjimharris * provision in the documentation and/or other materials provided with the
71230557Sjimharris * distribution.
72230557Sjimharris *
73230557Sjimharris * 3.4. Intel retains all right, title, and interest in and to the Original
74230557Sjimharris * Intel Code.
75230557Sjimharris *
76230557Sjimharris * 3.5. Neither the name Intel nor any other trademark owned or controlled by
77230557Sjimharris * Intel shall be used in advertising or otherwise to promote the sale, use or
78230557Sjimharris * other dealings in products derived from or relating to the Covered Code
79230557Sjimharris * without prior written authorization from Intel.
80230557Sjimharris *
81230557Sjimharris * 4. Disclaimer and Export Compliance
82230557Sjimharris *
83230557Sjimharris * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
84230557Sjimharris * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
85230557Sjimharris * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
86230557Sjimharris * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
87230557Sjimharris * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
88230557Sjimharris * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
89230557Sjimharris * PARTICULAR PURPOSE.
90230557Sjimharris *
91230557Sjimharris * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
92230557Sjimharris * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
93230557Sjimharris * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
94230557Sjimharris * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
95230557Sjimharris * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
96230557Sjimharris * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
97230557Sjimharris * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
98230557Sjimharris * LIMITED REMEDY.
99230557Sjimharris *
100230557Sjimharris * 4.3. Licensee shall not export, either directly or indirectly, any of this
101230557Sjimharris * software or system incorporating such software without first obtaining any
102230557Sjimharris * required license or other approval from the U. S. Department of Commerce or
103230557Sjimharris * any other agency or department of the United States Government.  In the
104230557Sjimharris * event Licensee exports any such software from the United States or
105230557Sjimharris * re-exports any such software from a foreign destination, Licensee shall
106230557Sjimharris * ensure that the distribution and export/re-export of the software is in
107230557Sjimharris * compliance with all laws, regulations, orders, or other restrictions of the
108230557Sjimharris * U.S. Export Administration Regulations. Licensee agrees that neither it nor
109230557Sjimharris * any of its subsidiaries will export/re-export any technical data, process,
110230557Sjimharris * software, or service, directly or indirectly, to any country for which the
111230557Sjimharris * United States government or any agency thereof requires an export license,
112230557Sjimharris * other governmental approval, or letter of assurance, without first obtaining
113230557Sjimharris * such license, approval or letter.
114230557Sjimharris *
115230557Sjimharris *****************************************************************************/
116230557Sjimharris
117230557Sjimharris
118230557Sjimharris#ifndef __ASLCOMPILER_H
119230557Sjimharris#define __ASLCOMPILER_H
120230557Sjimharris
121230557Sjimharris
122230557Sjimharris/* Microsoft-specific */
123230557Sjimharris
124230557Sjimharris#if (defined WIN32 || defined WIN64)
125230557Sjimharris
126230557Sjimharris/* warn : used #pragma pack */
127230557Sjimharris#pragma warning(disable:4103)
128230557Sjimharris
129230557Sjimharris/* warn : named type definition in parentheses */
130230557Sjimharris#pragma warning(disable:4115)
131230557Sjimharris#endif
132230557Sjimharris
133230557Sjimharris#include <stdio.h>
134230557Sjimharris#include <stdlib.h>
135230557Sjimharris#include <stdarg.h>
136230557Sjimharris#include <string.h>
137230557Sjimharris#include <errno.h>
138230557Sjimharris#include <ctype.h>
139230557Sjimharris
140230557Sjimharris
141230557Sjimharris#include <contrib/dev/acpica/include/acpi.h>
142230557Sjimharris#include <contrib/dev/acpica/include/accommon.h>
143230557Sjimharris#include <contrib/dev/acpica/include/amlresrc.h>
144230557Sjimharris#include <contrib/dev/acpica/include/acdebug.h>
145230557Sjimharris
146230557Sjimharris/* Compiler headers */
147230557Sjimharris
148230557Sjimharris#include <contrib/dev/acpica/compiler/asldefine.h>
149230557Sjimharris#include <contrib/dev/acpica/compiler/asltypes.h>
150230557Sjimharris#include <contrib/dev/acpica/compiler/aslglobal.h>
151230557Sjimharris
152230557Sjimharris
153230557Sjimharris/*******************************************************************************
154230557Sjimharris *
155230557Sjimharris * Compiler prototypes
156230557Sjimharris *
157230557Sjimharris ******************************************************************************/
158230557Sjimharris
159230557Sjimharris/*
160230557Sjimharris * parser - generated from flex/bison, lex/yacc, etc.
161230557Sjimharris */
162230557Sjimharrisint
163230557SjimharrisAslCompilerparse(
164230557Sjimharris    void);
165230557Sjimharris
166230557SjimharrisACPI_PARSE_OBJECT *
167230557SjimharrisAslDoError (
168230557Sjimharris    void);
169230557Sjimharris
170230557Sjimharrisint
171230557SjimharrisAslCompilerlex(
172230557Sjimharris    void);
173230557Sjimharris
174230557Sjimharrisvoid
175230557SjimharrisResetCurrentLineBuffer (
176230557Sjimharris    void);
177230557Sjimharris
178230557Sjimharrisvoid
179230557SjimharrisInsertLineBuffer (
180230557Sjimharris    int                     SourceChar);
181230557Sjimharris
182230557Sjimharrisint
183230557SjimharrisAslPopInputFileStack (
184230557Sjimharris    void);
185230557Sjimharris
186230557Sjimharrisvoid
187230557SjimharrisAslPushInputFileStack (
188230557Sjimharris    FILE                    *InputFile,
189230557Sjimharris    char                    *Filename);
190230557Sjimharris
191230557Sjimharris/*
192230557Sjimharris * aslstartup - entered from main()
193230557Sjimharris */
194230557Sjimharrisvoid
195230557SjimharrisAslInitializeGlobals (
196230557Sjimharris    void);
197230557Sjimharris
198230557Sjimharristypedef
199230557SjimharrisACPI_STATUS (*ASL_PATHNAME_CALLBACK) (
200230557Sjimharris    char *);
201230557Sjimharris
202230557SjimharrisACPI_STATUS
203230557SjimharrisAslDoOnePathname (
204230557Sjimharris    char                    *Pathname,
205230557Sjimharris    ASL_PATHNAME_CALLBACK   Callback);
206230557Sjimharris
207230557SjimharrisACPI_STATUS
208230557SjimharrisAslDoOneFile (
209230557Sjimharris    char                    *Filename);
210230557Sjimharris
211230557Sjimharris/*
212230557Sjimharris * aslcompile - compile mainline
213230557Sjimharris */
214230557Sjimharrisvoid
215230557SjimharrisAslCompilerSignon (
216230557Sjimharris    UINT32                  FileId);
217230557Sjimharris
218230557Sjimharrisvoid
219230557SjimharrisAslCompilerFileHeader (
220230557Sjimharris    UINT32                  FileId);
221230557Sjimharris
222230557Sjimharrisint
223230557SjimharrisCmDoCompile (
224230557Sjimharris    void);
225230557Sjimharris
226230557Sjimharrisvoid
227230557SjimharrisCmDoOutputFiles (
228230557Sjimharris    void);
229230557Sjimharris
230230557Sjimharrisvoid
231230557SjimharrisCmCleanupAndExit (
232230557Sjimharris    void);
233230557Sjimharris
234230557SjimharrisACPI_STATUS
235230557SjimharrisFlCheckForAscii (
236230557Sjimharris    ASL_FILE_INFO           *FileInfo);
237230557Sjimharris
238230557Sjimharris
239230557Sjimharris/*
240230557Sjimharris * aslanalyze - semantic analysis
241230557Sjimharris */
242230557SjimharrisACPI_STATUS
243230557SjimharrisAnOtherSemanticAnalysisWalkBegin (
244230557Sjimharris    ACPI_PARSE_OBJECT       *Op,
245230557Sjimharris    UINT32                  Level,
246230557Sjimharris    void                    *Context);
247230557Sjimharris
248230557SjimharrisACPI_STATUS
249230557SjimharrisAnOtherSemanticAnalysisWalkEnd (
250230557Sjimharris    ACPI_PARSE_OBJECT       *Op,
251230557Sjimharris    UINT32                  Level,
252230557Sjimharris    void                    *Context);
253230557Sjimharris
254230557SjimharrisACPI_STATUS
255230557SjimharrisAnOperandTypecheckWalkBegin (
256230557Sjimharris    ACPI_PARSE_OBJECT       *Op,
257230557Sjimharris    UINT32                  Level,
258230557Sjimharris    void                    *Context);
259230557Sjimharris
260230557SjimharrisACPI_STATUS
261230557SjimharrisAnOperandTypecheckWalkEnd (
262230557Sjimharris    ACPI_PARSE_OBJECT       *Op,
263230557Sjimharris    UINT32                  Level,
264230557Sjimharris    void                    *Context);
265230557Sjimharris
266230557SjimharrisACPI_STATUS
267230557SjimharrisAnMethodAnalysisWalkBegin (
268230557Sjimharris    ACPI_PARSE_OBJECT       *Op,
269230557Sjimharris    UINT32                  Level,
270230557Sjimharris    void                    *Context);
271230557Sjimharris
272230557SjimharrisACPI_STATUS
273230557SjimharrisAnMethodAnalysisWalkEnd (
274230557Sjimharris    ACPI_PARSE_OBJECT       *Op,
275230557Sjimharris    UINT32                  Level,
276230557Sjimharris    void                    *Context);
277230557Sjimharris
278230557SjimharrisACPI_STATUS
279230557SjimharrisAnMethodTypingWalkBegin (
280230557Sjimharris    ACPI_PARSE_OBJECT       *Op,
281230557Sjimharris    UINT32                  Level,
282230557Sjimharris    void                    *Context);
283230557Sjimharris
284230557SjimharrisACPI_STATUS
285230557SjimharrisAnMethodTypingWalkEnd (
286230557Sjimharris    ACPI_PARSE_OBJECT       *Op,
287230557Sjimharris    UINT32                  Level,
288230557Sjimharris    void                    *Context);
289230557Sjimharris
290230557Sjimharris
291230557Sjimharris/*
292230557Sjimharris * aslerror - error handling/reporting
293230557Sjimharris */
294230557Sjimharrisvoid
295230557SjimharrisAslError (
296230557Sjimharris    UINT8                   Level,
297230557Sjimharris    UINT8                   MessageId,
298230557Sjimharris    ACPI_PARSE_OBJECT       *Op,
299230557Sjimharris    char                    *ExtraMessage);
300230557Sjimharris
301230557Sjimharrisvoid
302230557SjimharrisAslCoreSubsystemError (
303230557Sjimharris    ACPI_PARSE_OBJECT       *Op,
304230557Sjimharris    ACPI_STATUS             Status,
305230557Sjimharris    char                    *ExtraMessage,
306230557Sjimharris    BOOLEAN                 Abort);
307230557Sjimharris
308230557Sjimharrisint
309230557SjimharrisAslCompilererror(
310230557Sjimharris    char                    *s);
311230557Sjimharris
312230557Sjimharrisvoid
313230557SjimharrisAslCommonError (
314230557Sjimharris    UINT8                   Level,
315230557Sjimharris    UINT8                   MessageId,
316230557Sjimharris    UINT32                  CurrentLineNumber,
317230557Sjimharris    UINT32                  LogicalLineNumber,
318230557Sjimharris    UINT32                  LogicalByteOffset,
319230557Sjimharris    UINT32                  Column,
320230557Sjimharris    char                    *Filename,
321230557Sjimharris    char                    *ExtraMessage);
322230557Sjimharris
323230557Sjimharrisvoid
324230557SjimharrisAePrintException (
325230557Sjimharris    UINT32                  FileId,
326230557Sjimharris    ASL_ERROR_MSG           *Enode,
327230557Sjimharris    char                    *Header);
328230557Sjimharris
329230557Sjimharrisvoid
330230557SjimharrisAePrintErrorLog (
331230557Sjimharris    UINT32                  FileId);
332230557Sjimharris
333230557Sjimharrisvoid
334230557SjimharrisAeClearErrorLog (
335230557Sjimharris    void);
336230557Sjimharris
337230557SjimharrisACPI_PHYSICAL_ADDRESS
338230557SjimharrisAeLocalGetRootPointer (
339230557Sjimharris    void);
340230557Sjimharris
341230557Sjimharris
342230557Sjimharris/*
343230557Sjimharris * asllisting - generate all "listing" type files
344230557Sjimharris */
345230557Sjimharrisvoid
346230557SjimharrisLsDoListings (
347230557Sjimharris    void);
348230557Sjimharris
349230557Sjimharrisvoid
350230557SjimharrisLsWriteNodeToAsmListing (
351230557Sjimharris    ACPI_PARSE_OBJECT       *Op);
352230557Sjimharris
353230557Sjimharrisvoid
354230557SjimharrisLsWriteNode (
355230557Sjimharris    ACPI_PARSE_OBJECT       *Op,
356230557Sjimharris    UINT32                  FileId);
357230557Sjimharris
358230557Sjimharrisvoid
359230557SjimharrisLsDoHexOutput (
360230557Sjimharris    void);
361230557Sjimharris
362230557Sjimharrisvoid
363230557SjimharrisLsDumpParseTree (
364230557Sjimharris    void);
365230557Sjimharris
366230557Sjimharris/*
367230557Sjimharris * aslfold - constant folding
368230557Sjimharris */
369230557SjimharrisACPI_STATUS
370230557SjimharrisOpcAmlConstantWalk (
371230557Sjimharris    ACPI_PARSE_OBJECT       *Op,
372230557Sjimharris    UINT32                  Level,
373230557Sjimharris    void                    *Context);
374230557Sjimharris
375230557Sjimharris
376230557Sjimharris/*
377230557Sjimharris * aslopcodes - generate AML opcodes
378230557Sjimharris */
379230557SjimharrisACPI_STATUS
380230557SjimharrisOpcAmlOpcodeWalk (
381230557Sjimharris    ACPI_PARSE_OBJECT       *Op,
382230557Sjimharris    UINT32                  Level,
383230557Sjimharris    void                    *Context);
384230557Sjimharris
385230557SjimharrisACPI_STATUS
386230557SjimharrisOpcAmlOpcodeUpdateWalk (
387230557Sjimharris    ACPI_PARSE_OBJECT       *Op,
388230557Sjimharris    UINT32                  Level,
389230557Sjimharris    void                    *Context);
390230557Sjimharris
391230557Sjimharrisvoid
392230557SjimharrisOpcGenerateAmlOpcode (
393230557Sjimharris    ACPI_PARSE_OBJECT       *Op);
394230557Sjimharris
395230557SjimharrisUINT32
396230557SjimharrisOpcSetOptimalIntegerSize (
397230557Sjimharris    ACPI_PARSE_OBJECT       *Op);
398230557Sjimharris
399230557Sjimharrisvoid
400230557SjimharrisOpcGetIntegerWidth (
401230557Sjimharris    ACPI_PARSE_OBJECT       *Op);
402230557Sjimharris
403230557Sjimharris
404230557Sjimharris/*
405230557Sjimharris * asloperands - generate AML operands for the AML opcodes
406230557Sjimharris */
407230557SjimharrisACPI_PARSE_OBJECT  *
408230557SjimharrisUtGetArg (
409230557Sjimharris    ACPI_PARSE_OBJECT       *Op,
410230557Sjimharris    UINT32                  Argn);
411230557Sjimharris
412230557Sjimharrisvoid
413230557SjimharrisOpnGenerateAmlOperands (
414230557Sjimharris    ACPI_PARSE_OBJECT       *Op);
415230557Sjimharris
416230557Sjimharrisvoid
417230557SjimharrisOpnDoPackage (
418230557Sjimharris    ACPI_PARSE_OBJECT       *Op);
419230557Sjimharris
420230557Sjimharris
421230557Sjimharris/*
422230557Sjimharris * aslopt - optmization
423230557Sjimharris */
424230557Sjimharrisvoid
425230557SjimharrisOptOptimizeNamePath (
426230557Sjimharris    ACPI_PARSE_OBJECT       *Op,
427230557Sjimharris    UINT32                  Flags,
428230557Sjimharris    ACPI_WALK_STATE         *WalkState,
429230557Sjimharris    char                    *AmlNameString,
430230557Sjimharris    ACPI_NAMESPACE_NODE     *TargetNode);
431230557Sjimharris
432230557Sjimharris
433230557Sjimharris/*
434230557Sjimharris * aslcodegen - code generation
435230557Sjimharris */
436230557Sjimharrisvoid
437230557SjimharrisCgGenerateAmlOutput (
438230557Sjimharris    void);
439230557Sjimharris
440230557Sjimharris
441230557Sjimharris/*
442230557Sjimharris * aslfile
443230557Sjimharris */
444230557Sjimharrisvoid
445230557SjimharrisFlOpenFile (
446230557Sjimharris    UINT32                  FileId,
447230557Sjimharris    char                    *Filename,
448230557Sjimharris    char                    *Mode);
449230557Sjimharris
450230557Sjimharris
451230557Sjimharris/*
452230557Sjimharris * asllength - calculate/adjust AML package lengths
453230557Sjimharris */
454230557SjimharrisACPI_STATUS
455230557SjimharrisLnPackageLengthWalk (
456230557Sjimharris    ACPI_PARSE_OBJECT       *Op,
457230557Sjimharris    UINT32                  Level,
458230557Sjimharris    void                    *Context);
459230557Sjimharris
460230557SjimharrisACPI_STATUS
461230557SjimharrisLnInitLengthsWalk (
462230557Sjimharris    ACPI_PARSE_OBJECT       *Op,
463230557Sjimharris    UINT32                  Level,
464230557Sjimharris    void                    *Context);
465230557Sjimharris
466230557Sjimharrisvoid
467230557SjimharrisCgGenerateAmlLengths (
468230557Sjimharris    ACPI_PARSE_OBJECT       *Op);
469230557Sjimharris
470230557Sjimharris
471230557Sjimharris/*
472230557Sjimharris * aslmap - opcode mappings and reserved method names
473230557Sjimharris */
474230557SjimharrisACPI_OBJECT_TYPE
475230557SjimharrisAslMapNamedOpcodeToDataType (
476230557Sjimharris    UINT16                  Opcode);
477230557Sjimharris
478230557Sjimharris
479230557Sjimharris/*
480230557Sjimharris * aslpredef - ACPI predefined names support
481230557Sjimharris */
482230557Sjimharrisvoid
483230557SjimharrisApCheckForPredefinedMethod (
484230557Sjimharris    ACPI_PARSE_OBJECT       *Op,
485230557Sjimharris    ASL_METHOD_INFO         *MethodInfo);
486230557Sjimharris
487230557Sjimharrisvoid
488230557SjimharrisApCheckPredefinedReturnValue (
489230557Sjimharris    ACPI_PARSE_OBJECT       *Op,
490230557Sjimharris    ASL_METHOD_INFO         *MethodInfo);
491230557Sjimharris
492230557SjimharrisUINT32
493230557SjimharrisApCheckForPredefinedName (
494230557Sjimharris    ACPI_PARSE_OBJECT       *Op,
495230557Sjimharris    char                    *Name);
496230557Sjimharris
497230557Sjimharrisvoid
498230557SjimharrisApCheckForPredefinedObject (
499230557Sjimharris    ACPI_PARSE_OBJECT       *Op,
500230557Sjimharris    char                    *Name);
501230557Sjimharris
502230557Sjimharrisvoid
503230557SjimharrisApDisplayReservedNames (
504230557Sjimharris    void);
505230557Sjimharris
506230557Sjimharris
507230557Sjimharris/*
508230557Sjimharris * asltransform - parse tree transformations
509230557Sjimharris */
510230557SjimharrisACPI_STATUS
511230557SjimharrisTrAmlTransformWalk (
512230557Sjimharris    ACPI_PARSE_OBJECT       *Op,
513230557Sjimharris    UINT32                  Level,
514230557Sjimharris    void                    *Context);
515230557Sjimharris
516230557Sjimharris
517230557Sjimharris/*
518230557Sjimharris * asltree - parse tree support
519230557Sjimharris */
520230557SjimharrisACPI_STATUS
521230557SjimharrisTrWalkParseTree (
522230557Sjimharris    ACPI_PARSE_OBJECT       *Op,
523230557Sjimharris    UINT32                  Visitation,
524230557Sjimharris    ASL_WALK_CALLBACK       DescendingCallback,
525230557Sjimharris    ASL_WALK_CALLBACK       AscendingCallback,
526230557Sjimharris    void                    *Context);
527230557Sjimharris
528230557Sjimharris/* Values for "Visitation" parameter above */
529230557Sjimharris
530230557Sjimharris#define ASL_WALK_VISIT_DOWNWARD     0x01
531230557Sjimharris#define ASL_WALK_VISIT_UPWARD       0x02
532230557Sjimharris#define ASL_WALK_VISIT_TWICE        (ASL_WALK_VISIT_DOWNWARD | ASL_WALK_VISIT_UPWARD)
533230557Sjimharris
534230557Sjimharris
535230557SjimharrisACPI_PARSE_OBJECT *
536230557SjimharrisTrAllocateNode (
537230557Sjimharris    UINT32                  ParseOpcode);
538230557Sjimharris
539230557Sjimharrisvoid
540230557SjimharrisTrReleaseNode (
541230557Sjimharris    ACPI_PARSE_OBJECT       *Op);
542230557Sjimharris
543230557SjimharrisACPI_PARSE_OBJECT *
544230557SjimharrisTrUpdateNode (
545230557Sjimharris    UINT32                  ParseOpcode,
546230557Sjimharris    ACPI_PARSE_OBJECT       *Op);
547230557Sjimharris
548230557SjimharrisACPI_PARSE_OBJECT *
549230557SjimharrisTrCreateNode (
550230557Sjimharris    UINT32                  ParseOpcode,
551230557Sjimharris    UINT32                  NumChildren,
552230557Sjimharris    ...);
553230557Sjimharris
554230557SjimharrisACPI_PARSE_OBJECT *
555230557SjimharrisTrCreateLeafNode (
556230557Sjimharris    UINT32                  ParseOpcode);
557230557Sjimharris
558230557SjimharrisACPI_PARSE_OBJECT *
559230557SjimharrisTrCreateValuedLeafNode (
560230557Sjimharris    UINT32                  ParseOpcode,
561230557Sjimharris    UINT64                  Value);
562230557Sjimharris
563230557SjimharrisACPI_PARSE_OBJECT *
564230557SjimharrisTrLinkChildren (
565230557Sjimharris    ACPI_PARSE_OBJECT       *Op,
566230557Sjimharris    UINT32                  NumChildren,
567230557Sjimharris    ...);
568230557Sjimharris
569230557Sjimharrisvoid
570230557SjimharrisTrSetEndLineNumber (
571230557Sjimharris    ACPI_PARSE_OBJECT       *Op);
572230557Sjimharris
573230557Sjimharrisvoid
574230557SjimharrisTrWalkTree (
575230557Sjimharris    void);
576230557Sjimharris
577230557SjimharrisACPI_PARSE_OBJECT *
578230557SjimharrisTrLinkPeerNode (
579230557Sjimharris    ACPI_PARSE_OBJECT       *Op1,
580230557Sjimharris    ACPI_PARSE_OBJECT       *Op2);
581230557Sjimharris
582230557SjimharrisACPI_PARSE_OBJECT *
583230557SjimharrisTrLinkChildNode (
584230557Sjimharris    ACPI_PARSE_OBJECT       *Op1,
585230557Sjimharris    ACPI_PARSE_OBJECT       *Op2);
586230557Sjimharris
587230557SjimharrisACPI_PARSE_OBJECT *
588230557SjimharrisTrSetNodeFlags (
589230557Sjimharris    ACPI_PARSE_OBJECT       *Op,
590230557Sjimharris    UINT32                  Flags);
591230557Sjimharris
592230557SjimharrisACPI_PARSE_OBJECT *
593230557SjimharrisTrLinkPeerNodes (
594230557Sjimharris    UINT32                  NumPeers,
595230557Sjimharris    ...);
596230557Sjimharris
597230557Sjimharris
598230557Sjimharris/*
599230557Sjimharris * aslfiles - File I/O support
600230557Sjimharris */
601230557Sjimharrisvoid
602230557SjimharrisAslAbort (
603230557Sjimharris    void);
604230557Sjimharris
605230557Sjimharrisvoid
606230557SjimharrisFlAddIncludeDirectory (
607230557Sjimharris    char                    *Dir);
608230557Sjimharris
609230557Sjimharrisvoid
610230557SjimharrisFlOpenIncludeFile (
611230557Sjimharris    ACPI_PARSE_OBJECT       *Op);
612230557Sjimharris
613230557Sjimharrisvoid
614230557SjimharrisFlFileError (
615230557Sjimharris    UINT32                  FileId,
616230557Sjimharris    UINT8                   ErrorId);
617230557Sjimharris
618230557SjimharrisUINT32
619230557SjimharrisFlGetFileSize (
620230557Sjimharris    UINT32                  FileId);
621230557Sjimharris
622230557SjimharrisACPI_STATUS
623230557SjimharrisFlReadFile (
624230557Sjimharris    UINT32                  FileId,
625230557Sjimharris    void                    *Buffer,
626230557Sjimharris    UINT32                  Length);
627230557Sjimharris
628230557Sjimharrisvoid
629230557SjimharrisFlWriteFile (
630230557Sjimharris    UINT32                  FileId,
631230557Sjimharris    void                    *Buffer,
632230557Sjimharris    UINT32                  Length);
633230557Sjimharris
634230557Sjimharrisvoid
635230557SjimharrisFlSeekFile (
636230557Sjimharris    UINT32                  FileId,
637230557Sjimharris    long                    Offset);
638230557Sjimharris
639230557Sjimharrisvoid
640230557SjimharrisFlCloseFile (
641230557Sjimharris    UINT32                  FileId);
642230557Sjimharris
643230557Sjimharrisvoid
644230557SjimharrisFlPrintFile (
645230557Sjimharris    UINT32                  FileId,
646230557Sjimharris    char                    *Format,
647230557Sjimharris    ...);
648230557Sjimharris
649230557Sjimharrisvoid
650230557SjimharrisFlSetLineNumber (
651230557Sjimharris    ACPI_PARSE_OBJECT       *Op);
652230557Sjimharris
653230557SjimharrisACPI_STATUS
654230557SjimharrisFlOpenInputFile (
655230557Sjimharris    char                    *InputFilename);
656230557Sjimharris
657230557SjimharrisACPI_STATUS
658230557SjimharrisFlOpenAmlOutputFile (
659230557Sjimharris    char                    *InputFilename);
660230557Sjimharris
661230557SjimharrisACPI_STATUS
662230557SjimharrisFlOpenMiscOutputFiles (
663230557Sjimharris    char                    *InputFilename);
664230557Sjimharris
665230557Sjimharris
666230557Sjimharris/*
667230557Sjimharris * asload - load namespace in prep for cross reference
668230557Sjimharris */
669230557SjimharrisACPI_STATUS
670230557SjimharrisLdLoadNamespace (
671230557Sjimharris    ACPI_PARSE_OBJECT       *RootOp);
672230557Sjimharris
673230557Sjimharris
674230557Sjimharris/*
675230557Sjimharris * asllookup - namespace cross reference
676230557Sjimharris */
677230557SjimharrisACPI_STATUS
678230557SjimharrisLkCrossReferenceNamespace (
679230557Sjimharris    void);
680230557Sjimharris
681230557Sjimharrisvoid
682230557SjimharrisLkFindUnreferencedObjects (
683230557Sjimharris    void);
684230557Sjimharris
685230557SjimharrisACPI_STATUS
686230557SjimharrisLsDisplayNamespace (
687230557Sjimharris    void);
688230557Sjimharris
689230557Sjimharris
690230557Sjimharris/*
691230557Sjimharris * aslutils - common compiler utilites
692230557Sjimharris */
693230557Sjimharrisvoid
694230557SjimharrisDbgPrint (
695230557Sjimharris    UINT32                  Type,
696230557Sjimharris    char                    *Format,
697230557Sjimharris    ...);
698230557Sjimharris
699230557Sjimharris/* Type values for above */
700230557Sjimharris
701230557Sjimharris#define ASL_DEBUG_OUTPUT    0
702230557Sjimharris#define ASL_PARSE_OUTPUT    1
703230557Sjimharris#define ASL_TREE_OUTPUT     2
704230557Sjimharris
705230557Sjimharrisvoid
706230557SjimharrisUtDisplaySupportedTables (
707230557Sjimharris    void);
708230557Sjimharris
709230557Sjimharrisvoid
710230557SjimharrisUtDisplayConstantOpcodes (
711230557Sjimharris    void);
712230557Sjimharris
713230557SjimharrisUINT8
714230557SjimharrisUtBeginEvent (
715230557Sjimharris    char                    *Name);
716230557Sjimharris
717230557Sjimharrisvoid
718230557SjimharrisUtEndEvent (
719230557Sjimharris    UINT8                   Event);
720230557Sjimharris
721230557Sjimharrisvoid *
722230557SjimharrisUtLocalCalloc (
723230557Sjimharris    UINT32                  Size);
724230557Sjimharris
725230557Sjimharrisvoid
726230557SjimharrisUtPrintFormattedName (
727230557Sjimharris    UINT16                  ParseOpcode,
728230557Sjimharris    UINT32                  Level);
729230557Sjimharris
730230557Sjimharrisvoid
731230557SjimharrisUtDisplaySummary (
732230557Sjimharris    UINT32                  FileId);
733230557Sjimharris
734230557SjimharrisUINT8
735230557SjimharrisUtHexCharToValue (
736230557Sjimharris    int                     HexChar);
737230557Sjimharris
738230557Sjimharrisvoid
739230557SjimharrisUtConvertByteToHex (
740230557Sjimharris    UINT8                   RawByte,
741230557Sjimharris    UINT8                   *Buffer);
742230557Sjimharris
743230557Sjimharrisvoid
744230557SjimharrisUtConvertByteToAsmHex (
745230557Sjimharris    UINT8                   RawByte,
746230557Sjimharris    UINT8                   *Buffer);
747230557Sjimharris
748230557Sjimharrischar *
749230557SjimharrisUtGetOpName (
750230557Sjimharris    UINT32                  ParseOpcode);
751230557Sjimharris
752230557Sjimharrisvoid
753230557SjimharrisUtSetParseOpName (
754230557Sjimharris    ACPI_PARSE_OBJECT       *Op);
755230557Sjimharris
756230557Sjimharrischar *
757230557SjimharrisUtGetStringBuffer (
758230557Sjimharris    UINT32                  Length);
759230557Sjimharris
760230557SjimharrisACPI_STATUS
761230557SjimharrisUtInternalizeName (
762230557Sjimharris    char                    *ExternalName,
763230557Sjimharris    char                    **ConvertedName);
764230557Sjimharris
765230557Sjimharrisvoid
766230557SjimharrisUtAttachNamepathToOwner (
767230557Sjimharris    ACPI_PARSE_OBJECT       *Op,
768230557Sjimharris    ACPI_PARSE_OBJECT       *NameNode);
769230557Sjimharris
770230557SjimharrisACPI_PARSE_OBJECT *
771230557SjimharrisUtCheckIntegerRange (
772230557Sjimharris    ACPI_PARSE_OBJECT       *Op,
773230557Sjimharris    UINT32                  LowValue,
774230557Sjimharris    UINT32                  HighValue);
775230557Sjimharris
776230557SjimharrisUINT64
777230557SjimharrisUtDoConstant (
778230557Sjimharris    char                    *String);
779230557Sjimharris
780230557Sjimharris
781230557Sjimharris/*
782230557Sjimharris * aslresource - Resource template generation utilities
783230557Sjimharris */
784230557Sjimharrisvoid
785230557SjimharrisRsSmallAddressCheck (
786230557Sjimharris    UINT8                   Type,
787230557Sjimharris    UINT32                  Minimum,
788230557Sjimharris    UINT32                  Maximum,
789230557Sjimharris    UINT32                  Length,
790230557Sjimharris    UINT32                  Alignment,
791230557Sjimharris    ACPI_PARSE_OBJECT       *MinOp,
792230557Sjimharris    ACPI_PARSE_OBJECT       *MaxOp,
793230557Sjimharris    ACPI_PARSE_OBJECT       *LengthOp,
794230557Sjimharris    ACPI_PARSE_OBJECT       *AlignOp);
795230557Sjimharris
796230557Sjimharrisvoid
797230557SjimharrisRsLargeAddressCheck (
798230557Sjimharris    UINT64                  Minimum,
799230557Sjimharris    UINT64                  Maximum,
800230557Sjimharris    UINT64                  Length,
801230557Sjimharris    UINT64                  Granularity,
802230557Sjimharris    UINT8                   Flags,
803230557Sjimharris    ACPI_PARSE_OBJECT       *MinOp,
804230557Sjimharris    ACPI_PARSE_OBJECT       *MaxOp,
805230557Sjimharris    ACPI_PARSE_OBJECT       *LengthOp,
806230557Sjimharris    ACPI_PARSE_OBJECT       *GranOp);
807230557Sjimharris
808230557SjimharrisUINT16
809230557SjimharrisRsGetStringDataLength (
810230557Sjimharris    ACPI_PARSE_OBJECT       *InitializerOp);
811230557Sjimharris
812230557SjimharrisASL_RESOURCE_NODE *
813230557SjimharrisRsAllocateResourceNode (
814230557Sjimharris    UINT32                  Size);
815230557Sjimharris
816230557Sjimharrisvoid
817230557SjimharrisRsCreateBitField (
818230557Sjimharris    ACPI_PARSE_OBJECT       *Op,
819230557Sjimharris    char                    *Name,
820230557Sjimharris    UINT32                  ByteOffset,
821230557Sjimharris    UINT32                  BitOffset);
822230557Sjimharris
823230557Sjimharrisvoid
824230557SjimharrisRsCreateByteField (
825230557Sjimharris    ACPI_PARSE_OBJECT       *Op,
826230557Sjimharris    char                    *Name,
827230557Sjimharris    UINT32                  ByteOffset);
828230557Sjimharris
829230557Sjimharrisvoid
830230557SjimharrisRsSetFlagBits (
831230557Sjimharris    UINT8                   *Flags,
832230557Sjimharris    ACPI_PARSE_OBJECT       *Op,
833230557Sjimharris    UINT8                   Position,
834230557Sjimharris    UINT8                   DefaultBit);
835230557Sjimharris
836230557SjimharrisACPI_PARSE_OBJECT *
837230557SjimharrisRsCompleteNodeAndGetNext (
838230557Sjimharris    ACPI_PARSE_OBJECT       *Op);
839230557Sjimharris
840230557Sjimharrisvoid
841230557SjimharrisRsCheckListForDuplicates (
842230557Sjimharris    ACPI_PARSE_OBJECT       *Op);
843230557Sjimharris
844230557SjimharrisASL_RESOURCE_NODE *
845230557SjimharrisRsDoOneResourceDescriptor (
846230557Sjimharris    ACPI_PARSE_OBJECT       *DescriptorTypeOp,
847230557Sjimharris    UINT32                  CurrentByteOffset,
848230557Sjimharris    UINT8                   *State);
849230557Sjimharris
850230557Sjimharris/* Values for State above */
851230557Sjimharris
852230557Sjimharris#define ACPI_RSTATE_NORMAL              0
853230557Sjimharris#define ACPI_RSTATE_START_DEPENDENT     1
854230557Sjimharris#define ACPI_RSTATE_DEPENDENT_LIST      2
855230557Sjimharris
856230557SjimharrisUINT32
857230557SjimharrisRsLinkDescriptorChain (
858230557Sjimharris    ASL_RESOURCE_NODE       **PreviousRnode,
859230557Sjimharris    ASL_RESOURCE_NODE       *Rnode);
860230557Sjimharris
861230557Sjimharrisvoid
862230557SjimharrisRsDoResourceTemplate (
863230557Sjimharris    ACPI_PARSE_OBJECT       *Op);
864230557Sjimharris
865230557Sjimharris
866230557Sjimharris/*
867230557Sjimharris * aslrestype1 - Miscellaneous Small descriptors
868230557Sjimharris */
869230557SjimharrisASL_RESOURCE_NODE *
870230557SjimharrisRsDoEndTagDescriptor (
871230557Sjimharris    ACPI_PARSE_OBJECT       *Op,
872230557Sjimharris    UINT32                  CurrentByteOffset);
873230557Sjimharris
874230557SjimharrisASL_RESOURCE_NODE *
875230557SjimharrisRsDoEndDependentDescriptor (
876230557Sjimharris    ACPI_PARSE_OBJECT       *Op,
877230557Sjimharris    UINT32                  CurrentByteOffset);
878230557Sjimharris
879230557SjimharrisASL_RESOURCE_NODE *
880230557SjimharrisRsDoMemory24Descriptor (
881230557Sjimharris    ACPI_PARSE_OBJECT       *Op,
882230557Sjimharris    UINT32                  CurrentByteOffset);
883230557Sjimharris
884230557SjimharrisASL_RESOURCE_NODE *
885230557SjimharrisRsDoMemory32Descriptor (
886230557Sjimharris    ACPI_PARSE_OBJECT       *Op,
887230557Sjimharris    UINT32                  CurrentByteOffset);
888230557Sjimharris
889230557SjimharrisASL_RESOURCE_NODE *
890230557SjimharrisRsDoMemory32FixedDescriptor (
891230557Sjimharris    ACPI_PARSE_OBJECT       *Op,
892230557Sjimharris    UINT32                  CurrentByteOffset);
893230557Sjimharris
894230557SjimharrisASL_RESOURCE_NODE *
895230557SjimharrisRsDoStartDependentDescriptor (
896230557Sjimharris    ACPI_PARSE_OBJECT       *Op,
897230557Sjimharris    UINT32                  CurrentByteOffset);
898230557Sjimharris
899230557SjimharrisASL_RESOURCE_NODE *
900230557SjimharrisRsDoStartDependentNoPriDescriptor (
901230557Sjimharris    ACPI_PARSE_OBJECT       *Op,
902230557Sjimharris    UINT32                  CurrentByteOffset);
903230557Sjimharris
904230557SjimharrisASL_RESOURCE_NODE *
905230557SjimharrisRsDoVendorSmallDescriptor (
906230557Sjimharris    ACPI_PARSE_OBJECT       *Op,
907230557Sjimharris    UINT32                  CurrentByteOffset);
908230557Sjimharris
909230557Sjimharris
910230557Sjimharris/*
911230557Sjimharris * aslrestype1i - I/O-related Small descriptors
912230557Sjimharris */
913230557SjimharrisASL_RESOURCE_NODE *
914230557SjimharrisRsDoDmaDescriptor (
915230557Sjimharris    ACPI_PARSE_OBJECT       *Op,
916230557Sjimharris    UINT32                  CurrentByteOffset);
917230557Sjimharris
918230557SjimharrisASL_RESOURCE_NODE *
919230557SjimharrisRsDoFixedIoDescriptor (
920230557Sjimharris    ACPI_PARSE_OBJECT       *Op,
921230557Sjimharris    UINT32                  CurrentByteOffset);
922230557Sjimharris
923230557SjimharrisASL_RESOURCE_NODE *
924230557SjimharrisRsDoIoDescriptor (
925230557Sjimharris    ACPI_PARSE_OBJECT       *Op,
926230557Sjimharris    UINT32                  CurrentByteOffset);
927230557Sjimharris
928230557SjimharrisASL_RESOURCE_NODE *
929230557SjimharrisRsDoIrqDescriptor (
930230557Sjimharris    ACPI_PARSE_OBJECT       *Op,
931230557Sjimharris    UINT32                  CurrentByteOffset);
932230557Sjimharris
933230557SjimharrisASL_RESOURCE_NODE *
934230557SjimharrisRsDoIrqNoFlagsDescriptor (
935230557Sjimharris    ACPI_PARSE_OBJECT       *Op,
936230557Sjimharris    UINT32                  CurrentByteOffset);
937230557Sjimharris
938230557Sjimharris
939230557Sjimharris/*
940230557Sjimharris * aslrestype2 - Large resource descriptors
941230557Sjimharris */
942230557SjimharrisASL_RESOURCE_NODE *
943230557SjimharrisRsDoInterruptDescriptor (
944230557Sjimharris    ACPI_PARSE_OBJECT       *Op,
945230557Sjimharris    UINT32                  CurrentByteOffset);
946230557Sjimharris
947230557SjimharrisASL_RESOURCE_NODE *
948230557SjimharrisRsDoVendorLargeDescriptor (
949230557Sjimharris    ACPI_PARSE_OBJECT       *Op,
950230557Sjimharris    UINT32                  CurrentByteOffset);
951230557Sjimharris
952230557SjimharrisASL_RESOURCE_NODE *
953230557SjimharrisRsDoGeneralRegisterDescriptor (
954230557Sjimharris    ACPI_PARSE_OBJECT       *Op,
955230557Sjimharris    UINT32                  CurrentByteOffset);
956230557Sjimharris
957230557Sjimharris
958230557Sjimharris/*
959230557Sjimharris * aslrestype2d - DWord address descriptors
960230557Sjimharris */
961230557SjimharrisASL_RESOURCE_NODE *
962230557SjimharrisRsDoDwordIoDescriptor (
963230557Sjimharris    ACPI_PARSE_OBJECT       *Op,
964230557Sjimharris    UINT32                  CurrentByteOffset);
965230557Sjimharris
966230557SjimharrisASL_RESOURCE_NODE *
967230557SjimharrisRsDoDwordMemoryDescriptor (
968230557Sjimharris    ACPI_PARSE_OBJECT       *Op,
969230557Sjimharris    UINT32                  CurrentByteOffset);
970230557Sjimharris
971230557SjimharrisASL_RESOURCE_NODE *
972230557SjimharrisRsDoDwordSpaceDescriptor (
973230557Sjimharris    ACPI_PARSE_OBJECT       *Op,
974230557Sjimharris    UINT32                  CurrentByteOffset);
975230557Sjimharris
976230557Sjimharris
977230557Sjimharris/*
978 * aslrestype2e - Extended address descriptors
979 */
980ASL_RESOURCE_NODE *
981RsDoExtendedIoDescriptor (
982    ACPI_PARSE_OBJECT       *Op,
983    UINT32                  CurrentByteOffset);
984
985ASL_RESOURCE_NODE *
986RsDoExtendedMemoryDescriptor (
987    ACPI_PARSE_OBJECT       *Op,
988    UINT32                  CurrentByteOffset);
989
990ASL_RESOURCE_NODE *
991RsDoExtendedSpaceDescriptor (
992    ACPI_PARSE_OBJECT       *Op,
993    UINT32                  CurrentByteOffset);
994
995
996/*
997 * aslrestype2q - QWord address descriptors
998 */
999ASL_RESOURCE_NODE *
1000RsDoQwordIoDescriptor (
1001    ACPI_PARSE_OBJECT       *Op,
1002    UINT32                  CurrentByteOffset);
1003
1004ASL_RESOURCE_NODE *
1005RsDoQwordMemoryDescriptor (
1006    ACPI_PARSE_OBJECT       *Op,
1007    UINT32                  CurrentByteOffset);
1008
1009ASL_RESOURCE_NODE *
1010RsDoQwordSpaceDescriptor (
1011    ACPI_PARSE_OBJECT       *Op,
1012    UINT32                  CurrentByteOffset);
1013
1014
1015/*
1016 * aslrestype2w - Word address descriptors
1017 */
1018ASL_RESOURCE_NODE *
1019RsDoWordIoDescriptor (
1020    ACPI_PARSE_OBJECT       *Op,
1021    UINT32                  CurrentByteOffset);
1022
1023ASL_RESOURCE_NODE *
1024RsDoWordSpaceDescriptor (
1025    ACPI_PARSE_OBJECT       *Op,
1026    UINT32                  CurrentByteOffset);
1027
1028ASL_RESOURCE_NODE *
1029RsDoWordBusNumberDescriptor (
1030    ACPI_PARSE_OBJECT       *Op,
1031    UINT32                  CurrentByteOffset);
1032
1033/*
1034 * Entry to data table compiler subsystem
1035 */
1036ACPI_STATUS
1037DtDoCompile(
1038    void);
1039
1040ACPI_STATUS
1041DtCreateTemplates (
1042    char                    *Signature);
1043
1044#endif /*  __ASLCOMPILER_H */
1045
1046