1118611Snjl/******************************************************************************
2118611Snjl *
3151937Sjkim * Module Name: aslcompiler.h - common include file for iASL
4118611Snjl *
5118611Snjl *****************************************************************************/
6118611Snjl
7217365Sjkim/*
8306536Sjkim * Copyright (C) 2000 - 2016, Intel Corp.
9118611Snjl * All rights reserved.
10118611Snjl *
11217365Sjkim * Redistribution and use in source and binary forms, with or without
12217365Sjkim * modification, are permitted provided that the following conditions
13217365Sjkim * are met:
14217365Sjkim * 1. Redistributions of source code must retain the above copyright
15217365Sjkim *    notice, this list of conditions, and the following disclaimer,
16217365Sjkim *    without modification.
17217365Sjkim * 2. Redistributions in binary form must reproduce at minimum a disclaimer
18217365Sjkim *    substantially similar to the "NO WARRANTY" disclaimer below
19217365Sjkim *    ("Disclaimer") and any redistribution must be conditioned upon
20217365Sjkim *    including a substantially similar Disclaimer requirement for further
21217365Sjkim *    binary redistribution.
22217365Sjkim * 3. Neither the names of the above-listed copyright holders nor the names
23217365Sjkim *    of any contributors may be used to endorse or promote products derived
24217365Sjkim *    from this software without specific prior written permission.
25118611Snjl *
26217365Sjkim * Alternatively, this software may be distributed under the terms of the
27217365Sjkim * GNU General Public License ("GPL") version 2 as published by the Free
28217365Sjkim * Software Foundation.
29118611Snjl *
30217365Sjkim * NO WARRANTY
31217365Sjkim * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
32217365Sjkim * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
33217365Sjkim * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
34217365Sjkim * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
35217365Sjkim * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
36217365Sjkim * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
37217365Sjkim * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
38217365Sjkim * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
39217365Sjkim * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
40217365Sjkim * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
41217365Sjkim * POSSIBILITY OF SUCH DAMAGES.
42217365Sjkim */
43118611Snjl
44118611Snjl#ifndef __ASLCOMPILER_H
45118611Snjl#define __ASLCOMPILER_H
46118611Snjl
47217365Sjkim#include <contrib/dev/acpica/include/acpi.h>
48217365Sjkim#include <contrib/dev/acpica/include/accommon.h>
49217365Sjkim#include <contrib/dev/acpica/include/amlresrc.h>
50217365Sjkim#include <contrib/dev/acpica/include/acdebug.h>
51118611Snjl
52118611Snjl/* Microsoft-specific */
53118611Snjl
54118611Snjl#if (defined WIN32 || defined WIN64)
55118611Snjl
56118611Snjl/* warn : used #pragma pack */
57118611Snjl#pragma warning(disable:4103)
58118611Snjl
59118611Snjl/* warn : named type definition in parentheses */
60118611Snjl#pragma warning(disable:4115)
61118611Snjl#endif
62118611Snjl
63118611Snjl#include <stdio.h>
64118611Snjl#include <stdlib.h>
65118611Snjl#include <stdarg.h>
66118611Snjl#include <string.h>
67118611Snjl#include <errno.h>
68118611Snjl#include <ctype.h>
69118611Snjl
70151937Sjkim/* Compiler headers */
71118611Snjl
72151937Sjkim#include <contrib/dev/acpica/compiler/asldefine.h>
73151937Sjkim#include <contrib/dev/acpica/compiler/asltypes.h>
74213806Sjkim#include <contrib/dev/acpica/compiler/aslmessages.h>
75151937Sjkim#include <contrib/dev/acpica/compiler/aslglobal.h>
76233250Sjkim#include <contrib/dev/acpica/compiler/preprocess.h>
77118611Snjl
78118611Snjl
79118611Snjl/*******************************************************************************
80118611Snjl *
81118611Snjl * Compiler prototypes
82118611Snjl *
83118611Snjl ******************************************************************************/
84118611Snjl
85151937Sjkim/*
86233250Sjkim * Main ASL parser - generated from flex/bison, lex/yacc, etc.
87151937Sjkim */
88118611SnjlACPI_PARSE_OBJECT *
89118611SnjlAslDoError (
90118611Snjl    void);
91118611Snjl
92118611Snjlint
93118611SnjlAslCompilerlex(
94118611Snjl    void);
95118611Snjl
96118611Snjlvoid
97234623SjkimAslResetCurrentLineBuffer (
98118611Snjl    void);
99118611Snjl
100118611Snjlvoid
101234623SjkimAslInsertLineBuffer (
102118611Snjl    int                     SourceChar);
103118611Snjl
104118611Snjlint
105118611SnjlAslPopInputFileStack (
106118611Snjl    void);
107118611Snjl
108118611Snjlvoid
109118611SnjlAslPushInputFileStack (
110118611Snjl    FILE                    *InputFile,
111118611Snjl    char                    *Filename);
112118611Snjl
113281075Sdimvoid
114281075SdimAslParserCleanup (
115281075Sdim    void);
116281075Sdim
117281075Sdim
118193529Sjkim/*
119209746Sjkim * aslstartup - entered from main()
120193529Sjkim */
121209746Sjkimvoid
122209746SjkimAslInitializeGlobals (
123209746Sjkim    void);
124209746Sjkim
125210976Sjkimtypedef
126210976SjkimACPI_STATUS (*ASL_PATHNAME_CALLBACK) (
127210976Sjkim    char *);
128210976Sjkim
129193529SjkimACPI_STATUS
130193529SjkimAslDoOneFile (
131193529Sjkim    char                    *Filename);
132193529Sjkim
133234623SjkimACPI_STATUS
134234623SjkimAslCheckForErrorExit (
135234623Sjkim    void);
136234623Sjkim
137234623Sjkim
138151937Sjkim/*
139151937Sjkim * aslcompile - compile mainline
140151937Sjkim */
141118611Snjlvoid
142118611SnjlAslCompilerSignon (
143118611Snjl    UINT32                  FileId);
144118611Snjl
145118611Snjlvoid
146118611SnjlAslCompilerFileHeader (
147118611Snjl    UINT32                  FileId);
148118611Snjl
149151937Sjkimint
150151937SjkimCmDoCompile (
151151937Sjkim    void);
152151937Sjkim
153118611Snjlvoid
154151937SjkimCmDoOutputFiles (
155151937Sjkim    void);
156118611Snjl
157151937Sjkimvoid
158151937SjkimCmCleanupAndExit (
159151937Sjkim    void);
160118611Snjl
161281075Sdimvoid
162281075SdimCmDeleteCaches (
163281075Sdim    void);
164281075Sdim
165281075Sdim
166281075Sdim/*
167281075Sdim * aslascii - ascii support
168281075Sdim */
169209746SjkimACPI_STATUS
170306536SjkimFlIsFileAsciiSource (
171235945Sjkim    char                    *Filename,
172235945Sjkim    BOOLEAN                 DisplayErrors);
173118611Snjl
174209746Sjkim
175151937Sjkim/*
176218590Sjkim * aslwalks - semantic analysis and parse tree walks
177151937Sjkim */
178151937SjkimACPI_STATUS
179151937SjkimAnOtherSemanticAnalysisWalkBegin (
180151937Sjkim    ACPI_PARSE_OBJECT       *Op,
181151937Sjkim    UINT32                  Level,
182151937Sjkim    void                    *Context);
183118611Snjl
184151937SjkimACPI_STATUS
185151937SjkimAnOtherSemanticAnalysisWalkEnd (
186151937Sjkim    ACPI_PARSE_OBJECT       *Op,
187151937Sjkim    UINT32                  Level,
188151937Sjkim    void                    *Context);
189118611Snjl
190151937SjkimACPI_STATUS
191151937SjkimAnOperandTypecheckWalkEnd (
192151937Sjkim    ACPI_PARSE_OBJECT       *Op,
193151937Sjkim    UINT32                  Level,
194151937Sjkim    void                    *Context);
195118611Snjl
196151937SjkimACPI_STATUS
197245582SjkimAnMethodTypingWalkEnd (
198151937Sjkim    ACPI_PARSE_OBJECT       *Op,
199151937Sjkim    UINT32                  Level,
200151937Sjkim    void                    *Context);
201118611Snjl
202245582Sjkim
203245582Sjkim/*
204245582Sjkim * aslmethod - Control method analysis walk
205245582Sjkim */
206151937SjkimACPI_STATUS
207245582SjkimMtMethodAnalysisWalkBegin (
208151937Sjkim    ACPI_PARSE_OBJECT       *Op,
209151937Sjkim    UINT32                  Level,
210151937Sjkim    void                    *Context);
211118611Snjl
212151937SjkimACPI_STATUS
213245582SjkimMtMethodAnalysisWalkEnd (
214151937Sjkim    ACPI_PARSE_OBJECT       *Op,
215151937Sjkim    UINT32                  Level,
216151937Sjkim    void                    *Context);
217118611Snjl
218218590Sjkim
219218590Sjkim/*
220218590Sjkim * aslbtypes - bitfield data types
221218590Sjkim */
222218590SjkimUINT32
223218590SjkimAnMapObjTypeToBtype (
224218590Sjkim    ACPI_PARSE_OBJECT       *Op);
225218590Sjkim
226218590SjkimUINT32
227218590SjkimAnMapArgTypeToBtype (
228218590Sjkim    UINT32                  ArgType);
229218590Sjkim
230218590SjkimUINT32
231218590SjkimAnGetBtype (
232218590Sjkim    ACPI_PARSE_OBJECT       *Op);
233218590Sjkim
234218590Sjkimvoid
235218590SjkimAnFormatBtype (
236218590Sjkim    char                    *Buffer,
237218590Sjkim    UINT32                  Btype);
238218590Sjkim
239218590Sjkim
240218590Sjkim/*
241218590Sjkim * aslanalyze - Support functions for parse tree walks
242218590Sjkim */
243218590Sjkimvoid
244218590SjkimAnCheckId (
245151937Sjkim    ACPI_PARSE_OBJECT       *Op,
246218590Sjkim    ACPI_NAME               Type);
247118611Snjl
248218590Sjkim/* Values for Type argument above */
249151937Sjkim
250218590Sjkim#define ASL_TYPE_HID        0
251218590Sjkim#define ASL_TYPE_CID        1
252218590Sjkim
253218590SjkimBOOLEAN
254218590SjkimAnIsInternalMethod (
255218590Sjkim    ACPI_PARSE_OBJECT       *Op);
256218590Sjkim
257218590SjkimUINT32
258218590SjkimAnGetInternalMethodReturnType (
259218590Sjkim    ACPI_PARSE_OBJECT       *Op);
260218590Sjkim
261218590SjkimBOOLEAN
262218590SjkimAnLastStatementIsReturn (
263218590Sjkim    ACPI_PARSE_OBJECT       *Op);
264218590Sjkim
265218590Sjkimvoid
266218590SjkimAnCheckMethodReturnValue (
267218590Sjkim    ACPI_PARSE_OBJECT       *Op,
268218590Sjkim    const ACPI_OPCODE_INFO  *OpInfo,
269218590Sjkim    ACPI_PARSE_OBJECT       *ArgOp,
270218590Sjkim    UINT32                  RequiredBtypes,
271218590Sjkim    UINT32                  ThisNodeBtype);
272218590Sjkim
273218590SjkimBOOLEAN
274218590SjkimAnIsResultUsed (
275218590Sjkim    ACPI_PARSE_OBJECT       *Op);
276218590Sjkim
277218590Sjkimvoid
278218590SjkimApCheckForGpeNameConflict (
279218590Sjkim    ACPI_PARSE_OBJECT       *Op);
280218590Sjkim
281220663Sjkimvoid
282220663SjkimApCheckRegMethod (
283220663Sjkim    ACPI_PARSE_OBJECT       *Op);
284218590Sjkim
285281075SdimBOOLEAN
286281075SdimApFindNameInScope (
287281075Sdim    char                    *Name,
288281075Sdim    ACPI_PARSE_OBJECT       *Op);
289220663Sjkim
290306536SjkimBOOLEAN
291306536SjkimApFindNameInDeviceTree (
292306536Sjkim    char                    *Name,
293306536Sjkim    ACPI_PARSE_OBJECT       *Op);
294281075Sdim
295151937Sjkim/*
296151937Sjkim * aslerror - error handling/reporting
297151937Sjkim */
298118611Snjlvoid
299281075SdimAslAbort (
300281075Sdim    void);
301281075Sdim
302281075Sdimvoid
303118611SnjlAslError (
304118611Snjl    UINT8                   Level,
305281075Sdim    UINT16                  MessageId,
306118611Snjl    ACPI_PARSE_OBJECT       *Op,
307118611Snjl    char                    *ExtraMessage);
308118611Snjl
309250838SjkimACPI_STATUS
310250838SjkimAslDisableException (
311250838Sjkim    char                    *MessageIdString);
312250838Sjkim
313250838SjkimBOOLEAN
314250838SjkimAslIsExceptionDisabled (
315250838Sjkim    UINT8                   Level,
316281075Sdim    UINT16                  MessageId);
317250838Sjkim
318118611Snjlvoid
319118611SnjlAslCoreSubsystemError (
320118611Snjl    ACPI_PARSE_OBJECT       *Op,
321118611Snjl    ACPI_STATUS             Status,
322118611Snjl    char                    *ExtraMessage,
323118611Snjl    BOOLEAN                 Abort);
324118611Snjl
325151937Sjkimint
326151937SjkimAslCompilererror(
327228110Sjkim    const char              *s);
328151937Sjkim
329118611Snjlvoid
330118611SnjlAslCommonError (
331118611Snjl    UINT8                   Level,
332281075Sdim    UINT16                  MessageId,
333118611Snjl    UINT32                  CurrentLineNumber,
334118611Snjl    UINT32                  LogicalLineNumber,
335118611Snjl    UINT32                  LogicalByteOffset,
336118611Snjl    UINT32                  Column,
337118611Snjl    char                    *Filename,
338118611Snjl    char                    *ExtraMessage);
339118611Snjl
340118611Snjlvoid
341233250SjkimAslCommonError2 (
342233250Sjkim    UINT8                   Level,
343281075Sdim    UINT16                  MessageId,
344233250Sjkim    UINT32                  LineNumber,
345233250Sjkim    UINT32                  Column,
346233250Sjkim    char                    *SourceLine,
347233250Sjkim    char                    *Filename,
348233250Sjkim    char                    *ExtraMessage);
349233250Sjkim
350233250Sjkimvoid
351118611SnjlAePrintException (
352118611Snjl    UINT32                  FileId,
353118611Snjl    ASL_ERROR_MSG           *Enode,
354118611Snjl    char                    *Header);
355118611Snjl
356118611Snjlvoid
357118611SnjlAePrintErrorLog (
358118611Snjl    UINT32                  FileId);
359118611Snjl
360193529Sjkimvoid
361193529SjkimAeClearErrorLog (
362193529Sjkim    void);
363193529Sjkim
364118611Snjl
365151937Sjkim/*
366151937Sjkim * asllisting - generate all "listing" type files
367151937Sjkim */
368118611Snjlvoid
369151937SjkimLsDoListings (
370151937Sjkim    void);
371118611Snjl
372118611Snjlvoid
373249112SjkimLsWriteNodeToAsmListing (
374249112Sjkim    ACPI_PARSE_OBJECT       *Op);
375249112Sjkim
376249112Sjkimvoid
377249112SjkimLsWriteNode (
378249112Sjkim    ACPI_PARSE_OBJECT       *Op,
379249112Sjkim    UINT32                  FileId);
380249112Sjkim
381249112Sjkimvoid
382249112SjkimLsDumpParseTree (
383249112Sjkim    void);
384249112Sjkim
385249112Sjkim
386249112Sjkim/*
387249112Sjkim * asllistsup - Listing file support utilities
388249112Sjkim */
389249112Sjkimvoid
390249112SjkimLsDumpAscii (
391249112Sjkim    UINT32                  FileId,
392249112Sjkim    UINT32                  Count,
393249112Sjkim    UINT8                   *Buffer);
394249112Sjkim
395249112Sjkimvoid
396245582SjkimLsDumpAsciiInComment (
397245582Sjkim    UINT32                  FileId,
398245582Sjkim    UINT32                  Count,
399245582Sjkim    UINT8                   *Buffer);
400245582Sjkim
401245582Sjkimvoid
402249112SjkimLsCheckException (
403249112Sjkim    UINT32                  LineNumber,
404249112Sjkim    UINT32                  FileId);
405118611Snjl
406118611Snjlvoid
407249112SjkimLsFlushListingBuffer (
408118611Snjl    UINT32                  FileId);
409118611Snjl
410118611Snjlvoid
411249112SjkimLsWriteListingHexBytes (
412249112Sjkim    UINT8                   *Buffer,
413249112Sjkim    UINT32                  Length,
414249112Sjkim    UINT32                  FileId);
415249112Sjkim
416249112Sjkimvoid
417249112SjkimLsWriteSourceLines (
418249112Sjkim    UINT32                  ToLineNumber,
419249112Sjkim    UINT32                  ToLogicalLineNumber,
420249112Sjkim    UINT32                  FileId);
421249112Sjkim
422249112SjkimUINT32
423249112SjkimLsWriteOneSourceLine (
424249112Sjkim    UINT32                  FileId);
425249112Sjkim
426249112Sjkimvoid
427249112SjkimLsPushNode (
428249112Sjkim    char                    *Filename);
429249112Sjkim
430249112SjkimASL_LISTING_NODE *
431249112SjkimLsPopNode (
432118611Snjl    void);
433118611Snjl
434245582Sjkim
435245582Sjkim/*
436245582Sjkim * aslhex - generate all "hex" output files (C, ASM, ASL)
437245582Sjkim */
438167802Sjkimvoid
439245582SjkimHxDoHexOutput (
440167802Sjkim    void);
441118611Snjl
442245582Sjkim
443151937Sjkim/*
444151937Sjkim * aslfold - constant folding
445151937Sjkim */
446151937SjkimACPI_STATUS
447151937SjkimOpcAmlConstantWalk (
448151937Sjkim    ACPI_PARSE_OBJECT       *Op,
449151937Sjkim    UINT32                  Level,
450151937Sjkim    void                    *Context);
451118611Snjl
452118611Snjl
453118611Snjl/*
454281075Sdim * aslmessages - exception strings
455281075Sdim */
456281075Sdimconst char *
457281075SdimAeDecodeMessageId (
458281075Sdim    UINT16                  MessageId);
459281075Sdim
460281075Sdimconst char *
461281075SdimAeDecodeExceptionLevel (
462281075Sdim    UINT8                   Level);
463281075Sdim
464281075SdimUINT16
465281075SdimAeBuildFullExceptionCode (
466281075Sdim    UINT8                   Level,
467281075Sdim    UINT16                  MessageId);
468281075Sdim
469281075Sdim/*
470249112Sjkim * asloffset - generate C offset file for BIOS support
471249112Sjkim */
472249112SjkimACPI_STATUS
473249112SjkimLsAmlOffsetWalk (
474249112Sjkim    ACPI_PARSE_OBJECT       *Op,
475249112Sjkim    UINT32                  Level,
476249112Sjkim    void                    *Context);
477249112Sjkim
478249112Sjkimvoid
479249112SjkimLsDoOffsetTableHeader (
480249112Sjkim    UINT32                  FileId);
481249112Sjkim
482249112Sjkimvoid
483249112SjkimLsDoOffsetTableFooter (
484249112Sjkim    UINT32                  FileId);
485249112Sjkim
486249112Sjkim
487249112Sjkim/*
488118611Snjl * aslopcodes - generate AML opcodes
489118611Snjl */
490118611SnjlACPI_STATUS
491118611SnjlOpcAmlOpcodeWalk (
492118611Snjl    ACPI_PARSE_OBJECT       *Op,
493118611Snjl    UINT32                  Level,
494118611Snjl    void                    *Context);
495118611Snjl
496118611SnjlACPI_STATUS
497151937SjkimOpcAmlOpcodeUpdateWalk (
498118611Snjl    ACPI_PARSE_OBJECT       *Op,
499118611Snjl    UINT32                  Level,
500118611Snjl    void                    *Context);
501118611Snjl
502118611Snjlvoid
503118611SnjlOpcGenerateAmlOpcode (
504118611Snjl    ACPI_PARSE_OBJECT       *Op);
505118611Snjl
506118611SnjlUINT32
507118611SnjlOpcSetOptimalIntegerSize (
508118611Snjl    ACPI_PARSE_OBJECT       *Op);
509118611Snjl
510118611Snjlvoid
511118611SnjlOpcGetIntegerWidth (
512118611Snjl    ACPI_PARSE_OBJECT       *Op);
513118611Snjl
514151937Sjkim
515118611Snjl/*
516118611Snjl * asloperands - generate AML operands for the AML opcodes
517118611Snjl */
518151937SjkimACPI_PARSE_OBJECT  *
519151937SjkimUtGetArg (
520151937Sjkim    ACPI_PARSE_OBJECT       *Op,
521151937Sjkim    UINT32                  Argn);
522118611Snjl
523118611Snjlvoid
524118611SnjlOpnGenerateAmlOperands (
525118611Snjl    ACPI_PARSE_OBJECT       *Op);
526118611Snjl
527118611Snjlvoid
528118611SnjlOpnDoPackage (
529118611Snjl    ACPI_PARSE_OBJECT       *Op);
530118611Snjl
531118611Snjl
532118611Snjl/*
533118611Snjl * aslopt - optmization
534118611Snjl */
535118611Snjlvoid
536118611SnjlOptOptimizeNamePath (
537118611Snjl    ACPI_PARSE_OBJECT       *Op,
538118611Snjl    UINT32                  Flags,
539118611Snjl    ACPI_WALK_STATE         *WalkState,
540118611Snjl    char                    *AmlNameString,
541118611Snjl    ACPI_NAMESPACE_NODE     *TargetNode);
542118611Snjl
543118611Snjl
544118611Snjl/*
545306536Sjkim * aslpld - ToPLD macro support
546306536Sjkim */
547306536Sjkimvoid
548306536SjkimOpcDoPld (
549306536Sjkim    ACPI_PARSE_OBJECT       *Op);
550306536Sjkim
551306536Sjkim
552306536Sjkim/*
553281075Sdim * aslprintf - Printf/Fprintf macros
554281075Sdim */
555281075Sdimvoid
556281075SdimOpcDoPrintf (
557281075Sdim    ACPI_PARSE_OBJECT       *Op);
558281075Sdim
559281075Sdimvoid
560281075SdimOpcDoFprintf (
561281075Sdim    ACPI_PARSE_OBJECT       *Op);
562281075Sdim
563281075Sdim
564281075Sdim/*
565281075Sdim * aslprune - parse tree pruner
566281075Sdim */
567281075Sdimvoid
568281075SdimAslPruneParseTree (
569281075Sdim    UINT32                  PruneDepth,
570281075Sdim    UINT32                  Type);
571281075Sdim
572281075Sdim
573281075Sdim/*
574151937Sjkim * aslcodegen - code generation
575118611Snjl */
576118611Snjlvoid
577151937SjkimCgGenerateAmlOutput (
578151937Sjkim    void);
579118611Snjl
580118611Snjl
581151937Sjkim/*
582209746Sjkim * aslfile
583209746Sjkim */
584209746Sjkimvoid
585209746SjkimFlOpenFile (
586209746Sjkim    UINT32                  FileId,
587209746Sjkim    char                    *Filename,
588209746Sjkim    char                    *Mode);
589209746Sjkim
590209746Sjkim
591209746Sjkim/*
592151937Sjkim * asllength - calculate/adjust AML package lengths
593151937Sjkim */
594118611SnjlACPI_STATUS
595118611SnjlLnPackageLengthWalk (
596118611Snjl    ACPI_PARSE_OBJECT       *Op,
597118611Snjl    UINT32                  Level,
598118611Snjl    void                    *Context);
599118611Snjl
600118611SnjlACPI_STATUS
601118611SnjlLnInitLengthsWalk (
602118611Snjl    ACPI_PARSE_OBJECT       *Op,
603118611Snjl    UINT32                  Level,
604118611Snjl    void                    *Context);
605118611Snjl
606118611Snjlvoid
607151937SjkimCgGenerateAmlLengths (
608151937Sjkim    ACPI_PARSE_OBJECT       *Op);
609118611Snjl
610118611Snjl
611118611Snjl/*
612151937Sjkim * aslmap - opcode mappings and reserved method names
613118611Snjl */
614118611SnjlACPI_OBJECT_TYPE
615118611SnjlAslMapNamedOpcodeToDataType (
616118611Snjl    UINT16                  Opcode);
617118611Snjl
618204773Sjkim
619204773Sjkim/*
620204773Sjkim * aslpredef - ACPI predefined names support
621204773Sjkim */
622220663SjkimBOOLEAN
623204773SjkimApCheckForPredefinedMethod (
624204773Sjkim    ACPI_PARSE_OBJECT       *Op,
625204773Sjkim    ASL_METHOD_INFO         *MethodInfo);
626204773Sjkim
627206117Sjkimvoid
628206117SjkimApCheckPredefinedReturnValue (
629206117Sjkim    ACPI_PARSE_OBJECT       *Op,
630206117Sjkim    ASL_METHOD_INFO         *MethodInfo);
631206117Sjkim
632204773SjkimUINT32
633204773SjkimApCheckForPredefinedName (
634204773Sjkim    ACPI_PARSE_OBJECT       *Op,
635204773Sjkim    char                    *Name);
636204773Sjkim
637204773Sjkimvoid
638204773SjkimApCheckForPredefinedObject (
639204773Sjkim    ACPI_PARSE_OBJECT       *Op,
640204773Sjkim    char                    *Name);
641204773Sjkim
642246849SjkimACPI_STATUS
643246849SjkimApCheckObjectType (
644246849Sjkim    const char              *PredefinedName,
645246849Sjkim    ACPI_PARSE_OBJECT       *Op,
646246849Sjkim    UINT32                  ExpectedBtypes,
647246849Sjkim    UINT32                  PackageIndex);
648246849Sjkim
649204773Sjkimvoid
650204773SjkimApDisplayReservedNames (
651151937Sjkim    void);
652151937Sjkim
653151937Sjkim
654118611Snjl/*
655246849Sjkim * aslprepkg - ACPI predefined names support for packages
656246849Sjkim */
657246849Sjkimvoid
658246849SjkimApCheckPackage (
659246849Sjkim    ACPI_PARSE_OBJECT           *ParentOp,
660246849Sjkim    const ACPI_PREDEFINED_INFO  *Predefined);
661246849Sjkim
662246849Sjkim
663246849Sjkim/*
664118611Snjl * asltransform - parse tree transformations
665118611Snjl */
666118611SnjlACPI_STATUS
667306536SjkimTrAmlTransformWalkBegin (
668118611Snjl    ACPI_PARSE_OBJECT       *Op,
669118611Snjl    UINT32                  Level,
670118611Snjl    void                    *Context);
671118611Snjl
672306536SjkimACPI_STATUS
673306536SjkimTrAmlTransformWalkEnd (
674306536Sjkim    ACPI_PARSE_OBJECT       *Op,
675306536Sjkim    UINT32                  Level,
676306536Sjkim    void                    *Context);
677118611Snjl
678306536Sjkim
679118611Snjl/*
680118611Snjl * asltree - parse tree support
681118611Snjl */
682118611SnjlACPI_STATUS
683118611SnjlTrWalkParseTree (
684118611Snjl    ACPI_PARSE_OBJECT       *Op,
685118611Snjl    UINT32                  Visitation,
686118611Snjl    ASL_WALK_CALLBACK       DescendingCallback,
687118611Snjl    ASL_WALK_CALLBACK       AscendingCallback,
688118611Snjl    void                    *Context);
689118611Snjl
690306536Sjkim/*
691306536Sjkim * aslexternal - External opcode support
692306536Sjkim */
693306536SjkimACPI_STATUS
694306536SjkimExAmlExternalWalkBegin (
695306536Sjkim    ACPI_PARSE_OBJECT       *Op,
696306536Sjkim    UINT32                  Level,
697306536Sjkim    void                    *Context);
698306536Sjkim
699306536SjkimACPI_STATUS
700306536SjkimExAmlExternalWalkEnd (
701306536Sjkim    ACPI_PARSE_OBJECT       *Op,
702306536Sjkim    UINT32                  Level,
703306536Sjkim    void                    *Context);
704306536Sjkim
705306536Sjkimvoid
706306536SjkimExDoExternal (
707306536Sjkim    ACPI_PARSE_OBJECT       *Op);
708306536Sjkim
709118611Snjl/* Values for "Visitation" parameter above */
710118611Snjl
711118611Snjl#define ASL_WALK_VISIT_DOWNWARD     0x01
712118611Snjl#define ASL_WALK_VISIT_UPWARD       0x02
713118611Snjl#define ASL_WALK_VISIT_TWICE        (ASL_WALK_VISIT_DOWNWARD | ASL_WALK_VISIT_UPWARD)
714118611Snjl
715118611Snjl
716306536Sjkimvoid
717306536SjkimTrSetParent (
718306536Sjkim    ACPI_PARSE_OBJECT       *Op,
719306536Sjkim    ACPI_PARSE_OBJECT       *ParentOp);
720306536Sjkim
721151937SjkimACPI_PARSE_OBJECT *
722151937SjkimTrAllocateNode (
723151937Sjkim    UINT32                  ParseOpcode);
724118611Snjl
725151937Sjkimvoid
726281687SjkimTrPrintNodeCompileFlags (
727281687Sjkim    UINT32                  Flags);
728281687Sjkim
729281687Sjkimvoid
730151937SjkimTrReleaseNode (
731151937Sjkim    ACPI_PARSE_OBJECT       *Op);
732151937Sjkim
733118611SnjlACPI_PARSE_OBJECT *
734118611SnjlTrUpdateNode (
735118611Snjl    UINT32                  ParseOpcode,
736118611Snjl    ACPI_PARSE_OBJECT       *Op);
737118611Snjl
738118611SnjlACPI_PARSE_OBJECT *
739118611SnjlTrCreateNode (
740118611Snjl    UINT32                  ParseOpcode,
741118611Snjl    UINT32                  NumChildren,
742118611Snjl    ...);
743118611Snjl
744118611SnjlACPI_PARSE_OBJECT *
745118611SnjlTrCreateLeafNode (
746118611Snjl    UINT32                  ParseOpcode);
747118611Snjl
748118611SnjlACPI_PARSE_OBJECT *
749281687SjkimTrCreateNullTarget (
750281687Sjkim    void);
751281687Sjkim
752281687SjkimACPI_PARSE_OBJECT *
753281075SdimTrCreateAssignmentNode (
754281075Sdim    ACPI_PARSE_OBJECT       *Target,
755281075Sdim    ACPI_PARSE_OBJECT       *Source);
756281075Sdim
757281075SdimACPI_PARSE_OBJECT *
758281075SdimTrCreateTargetOperand (
759281075Sdim    ACPI_PARSE_OBJECT       *OriginalOp,
760281075Sdim    ACPI_PARSE_OBJECT       *ParentOp);
761281075Sdim
762281075SdimACPI_PARSE_OBJECT *
763118611SnjlTrCreateValuedLeafNode (
764118611Snjl    UINT32                  ParseOpcode,
765202771Sjkim    UINT64                  Value);
766118611Snjl
767118611SnjlACPI_PARSE_OBJECT *
768218590SjkimTrCreateConstantLeafNode (
769218590Sjkim    UINT32                  ParseOpcode);
770218590Sjkim
771218590SjkimACPI_PARSE_OBJECT *
772118611SnjlTrLinkChildren (
773118611Snjl    ACPI_PARSE_OBJECT       *Op,
774118611Snjl    UINT32                  NumChildren,
775118611Snjl    ...);
776118611Snjl
777118611Snjlvoid
778118611SnjlTrSetEndLineNumber (
779118611Snjl    ACPI_PARSE_OBJECT       *Op);
780118611Snjl
781118611Snjlvoid
782306536SjkimTrSetCurrentFilename (
783306536Sjkim    ACPI_PARSE_OBJECT       *Op);
784306536Sjkim
785306536Sjkimvoid
786151937SjkimTrWalkTree (
787151937Sjkim    void);
788118611Snjl
789118611SnjlACPI_PARSE_OBJECT *
790118611SnjlTrLinkPeerNode (
791118611Snjl    ACPI_PARSE_OBJECT       *Op1,
792118611Snjl    ACPI_PARSE_OBJECT       *Op2);
793118611Snjl
794118611SnjlACPI_PARSE_OBJECT *
795118611SnjlTrLinkChildNode (
796118611Snjl    ACPI_PARSE_OBJECT       *Op1,
797118611Snjl    ACPI_PARSE_OBJECT       *Op2);
798118611Snjl
799118611SnjlACPI_PARSE_OBJECT *
800118611SnjlTrSetNodeFlags (
801118611Snjl    ACPI_PARSE_OBJECT       *Op,
802118611Snjl    UINT32                  Flags);
803118611Snjl
804118611SnjlACPI_PARSE_OBJECT *
805239340SjkimTrSetNodeAmlLength (
806239340Sjkim    ACPI_PARSE_OBJECT       *Op,
807239340Sjkim    UINT32                  Length);
808239340Sjkim
809239340SjkimACPI_PARSE_OBJECT *
810118611SnjlTrLinkPeerNodes (
811118611Snjl    UINT32                  NumPeers,
812118611Snjl    ...);
813118611Snjl
814118611Snjl
815118611Snjl/*
816118611Snjl * aslfiles - File I/O support
817118611Snjl */
818118611Snjlvoid
819197104SjkimFlAddIncludeDirectory (
820197104Sjkim    char                    *Dir);
821197104Sjkim
822235945Sjkimchar *
823235945SjkimFlMergePathnames (
824235945Sjkim    char                    *PrefixDir,
825235945Sjkim    char                    *FilePathname);
826235945Sjkim
827197104Sjkimvoid
828118611SnjlFlOpenIncludeFile (
829118611Snjl    ACPI_PARSE_OBJECT       *Op);
830118611Snjl
831118611Snjlvoid
832118611SnjlFlFileError (
833118611Snjl    UINT32                  FileId,
834118611Snjl    UINT8                   ErrorId);
835118611Snjl
836207344SjkimUINT32
837207344SjkimFlGetFileSize (
838207344Sjkim    UINT32                  FileId);
839207344Sjkim
840118611SnjlACPI_STATUS
841118611SnjlFlReadFile (
842118611Snjl    UINT32                  FileId,
843118611Snjl    void                    *Buffer,
844118611Snjl    UINT32                  Length);
845118611Snjl
846118611Snjlvoid
847118611SnjlFlWriteFile (
848118611Snjl    UINT32                  FileId,
849118611Snjl    void                    *Buffer,
850118611Snjl    UINT32                  Length);
851118611Snjl
852118611Snjlvoid
853118611SnjlFlSeekFile (
854118611Snjl    UINT32                  FileId,
855118611Snjl    long                    Offset);
856118611Snjl
857118611Snjlvoid
858118611SnjlFlCloseFile (
859118611Snjl    UINT32                  FileId);
860118611Snjl
861118611Snjlvoid
862118611SnjlFlPrintFile (
863118611Snjl    UINT32                  FileId,
864118611Snjl    char                    *Format,
865118611Snjl    ...);
866118611Snjl
867118611Snjlvoid
868240716SjkimFlDeleteFile (
869240716Sjkim    UINT32                  FileId);
870240716Sjkim
871240716Sjkimvoid
872118611SnjlFlSetLineNumber (
873234623Sjkim    UINT32                  LineNumber);
874118611Snjl
875234623Sjkimvoid
876234623SjkimFlSetFilename (
877234623Sjkim    char                    *Filename);
878234623Sjkim
879118611SnjlACPI_STATUS
880118611SnjlFlOpenInputFile (
881118611Snjl    char                    *InputFilename);
882118611Snjl
883118611SnjlACPI_STATUS
884118611SnjlFlOpenAmlOutputFile (
885118611Snjl    char                    *InputFilename);
886118611Snjl
887118611SnjlACPI_STATUS
888118611SnjlFlOpenMiscOutputFiles (
889118611Snjl    char                    *InputFilename);
890118611Snjl
891281075Sdim/*
892281075Sdim * aslhwmap - hardware map summary
893281075Sdim */
894281075Sdimvoid
895281075SdimMpEmitMappingInfo (
896281075Sdim    void);
897118611Snjl
898281075Sdim
899151937Sjkim/*
900151937Sjkim * asload - load namespace in prep for cross reference
901151937Sjkim */
902118611SnjlACPI_STATUS
903118611SnjlLdLoadNamespace (
904118611Snjl    ACPI_PARSE_OBJECT       *RootOp);
905118611Snjl
906118611Snjl
907151937Sjkim/*
908245582Sjkim * asllookup - namespace lookup functions
909151937Sjkim */
910167802Sjkimvoid
911167802SjkimLkFindUnreferencedObjects (
912167802Sjkim    void);
913167802Sjkim
914250838Sjkim/*
915250838Sjkim * aslmain - startup
916250838Sjkim */
917250838Sjkimvoid
918250838SjkimUsage (
919250838Sjkim    void);
920245582Sjkim
921250838Sjkimvoid
922250838SjkimAslFilenameHelp (
923250838Sjkim    void);
924250838Sjkim
925250838Sjkim
926245582Sjkim/*
927245582Sjkim * aslnamesp - namespace output file generation
928245582Sjkim */
929118611SnjlACPI_STATUS
930245582SjkimNsDisplayNamespace (
931118611Snjl    void);
932118611Snjl
933212761Sjkimvoid
934245582SjkimNsSetupNamespaceListing (
935212761Sjkim    void                    *Handle);
936118611Snjl
937250838Sjkim/*
938250838Sjkim * asloptions - command line processing
939250838Sjkim */
940250838Sjkimint
941250838SjkimAslCommandLine (
942250838Sjkim    int                     argc,
943250838Sjkim    char                    **argv);
944212761Sjkim
945151937Sjkim/*
946245582Sjkim * aslxref - namespace cross reference
947245582Sjkim */
948245582SjkimACPI_STATUS
949245582SjkimXfCrossReferenceNamespace (
950245582Sjkim    void);
951245582Sjkim
952245582Sjkim
953245582Sjkim/*
954306536Sjkim * aslxrefout
955306536Sjkim */
956306536Sjkimvoid
957306536SjkimOtPrintHeaders (
958306536Sjkim    char                    *Message);
959306536Sjkim
960306536Sjkimvoid
961306536SjkimOtCreateXrefFile (
962306536Sjkim    void);
963306536Sjkim
964306536Sjkimvoid
965306536SjkimOtXrefWalkPart1 (
966306536Sjkim    ACPI_PARSE_OBJECT       *Op,
967306536Sjkim    UINT32                  Level,
968306536Sjkim    ASL_METHOD_INFO         *MethodInfo);
969306536Sjkim
970306536Sjkim
971306536Sjkim/*
972151937Sjkim * aslutils - common compiler utilites
973151937Sjkim */
974151937Sjkimvoid
975151937SjkimDbgPrint (
976151937Sjkim    UINT32                  Type,
977151937Sjkim    char                    *Format,
978151937Sjkim    ...);
979118611Snjl
980151937Sjkim/* Type values for above */
981118611Snjl
982151937Sjkim#define ASL_DEBUG_OUTPUT    0
983151937Sjkim#define ASL_PARSE_OUTPUT    1
984151937Sjkim#define ASL_TREE_OUTPUT     2
985151937Sjkim
986306536SjkimUINT8
987306536SjkimUtIsBigEndianMachine (
988306536Sjkim    void);
989306536Sjkim
990306536SjkimBOOLEAN
991306536SjkimUtQueryForOverwrite (
992306536Sjkim    char                    *Pathname);
993306536Sjkim
994118611Snjlvoid
995306536SjkimUtDumpStringOp (
996306536Sjkim    ACPI_PARSE_OBJECT       *Op,
997306536Sjkim    UINT32                  Level);
998306536Sjkim
999306536Sjkimvoid
1000306536SjkimUtDumpIntegerOp (
1001306536Sjkim    ACPI_PARSE_OBJECT       *Op,
1002306536Sjkim    UINT32                  Level,
1003306536Sjkim    UINT32                  IntegerLength);
1004306536Sjkim
1005306536Sjkimvoid
1006306536SjkimUtDumpBasicOp (
1007306536Sjkim    ACPI_PARSE_OBJECT       *Op,
1008306536Sjkim    UINT32                  Level);
1009306536Sjkim
1010306536Sjkimvoid
1011209746SjkimUtDisplaySupportedTables (
1012209746Sjkim    void);
1013209746Sjkim
1014209746Sjkimvoid
1015118611SnjlUtDisplayConstantOpcodes (
1016118611Snjl    void);
1017118611Snjl
1018151937SjkimUINT8
1019118611SnjlUtBeginEvent (
1020118611Snjl    char                    *Name);
1021118611Snjl
1022118611Snjlvoid
1023118611SnjlUtEndEvent (
1024151937Sjkim    UINT8                   Event);
1025118611Snjl
1026118611Snjlvoid *
1027118611SnjlUtLocalCalloc (
1028118611Snjl    UINT32                  Size);
1029118611Snjl
1030118611Snjlvoid
1031118611SnjlUtDisplaySummary (
1032118611Snjl    UINT32                  FileId);
1033118611Snjl
1034118611Snjlvoid
1035118611SnjlUtConvertByteToHex (
1036118611Snjl    UINT8                   RawByte,
1037118611Snjl    UINT8                   *Buffer);
1038118611Snjl
1039118611Snjlvoid
1040118611SnjlUtConvertByteToAsmHex (
1041118611Snjl    UINT8                   RawByte,
1042118611Snjl    UINT8                   *Buffer);
1043118611Snjl
1044118611Snjlchar *
1045118611SnjlUtGetOpName (
1046118611Snjl    UINT32                  ParseOpcode);
1047118611Snjl
1048118611Snjlvoid
1049118611SnjlUtSetParseOpName (
1050118611Snjl    ACPI_PARSE_OBJECT       *Op);
1051118611Snjl
1052118611Snjlchar *
1053281075SdimUtStringCacheCalloc (
1054118611Snjl    UINT32                  Length);
1055118611Snjl
1056240716Sjkimvoid
1057240716SjkimUtExpandLineBuffers (
1058240716Sjkim    void);
1059240716Sjkim
1060281075Sdimvoid
1061281075SdimUtFreeLineBuffers (
1062281075Sdim    void);
1063281075Sdim
1064118611SnjlACPI_STATUS
1065118611SnjlUtInternalizeName (
1066118611Snjl    char                    *ExternalName,
1067118611Snjl    char                    **ConvertedName);
1068118611Snjl
1069118611Snjlvoid
1070118611SnjlUtAttachNamepathToOwner (
1071118611Snjl    ACPI_PARSE_OBJECT       *Op,
1072118611Snjl    ACPI_PARSE_OBJECT       *NameNode);
1073118611Snjl
1074118611SnjlACPI_PARSE_OBJECT *
1075118611SnjlUtCheckIntegerRange (
1076118611Snjl    ACPI_PARSE_OBJECT       *Op,
1077118611Snjl    UINT32                  LowValue,
1078118611Snjl    UINT32                  HighValue);
1079118611Snjl
1080202771SjkimUINT64
1081118611SnjlUtDoConstant (
1082118611Snjl    char                    *String);
1083118611Snjl
1084220663Sjkim
1085217365Sjkim/*
1086217365Sjkim * asluuid - UUID support
1087217365Sjkim */
1088217365SjkimACPI_STATUS
1089217365SjkimAuValidateUuid (
1090217365Sjkim    char                    *InString);
1091118611Snjl
1092217365SjkimACPI_STATUS
1093217365SjkimAuConvertUuidToString (
1094217365Sjkim    char                    *UuIdBuffer,
1095217365Sjkim    char                    *OutString);
1096217365Sjkim
1097118611Snjl/*
1098151937Sjkim * aslresource - Resource template generation utilities
1099118611Snjl */
1100207344Sjkimvoid
1101207344SjkimRsSmallAddressCheck (
1102207344Sjkim    UINT8                   Type,
1103207344Sjkim    UINT32                  Minimum,
1104207344Sjkim    UINT32                  Maximum,
1105207344Sjkim    UINT32                  Length,
1106207344Sjkim    UINT32                  Alignment,
1107207344Sjkim    ACPI_PARSE_OBJECT       *MinOp,
1108207344Sjkim    ACPI_PARSE_OBJECT       *MaxOp,
1109207344Sjkim    ACPI_PARSE_OBJECT       *LengthOp,
1110213806Sjkim    ACPI_PARSE_OBJECT       *AlignOp,
1111213806Sjkim    ACPI_PARSE_OBJECT       *Op);
1112207344Sjkim
1113207344Sjkimvoid
1114207344SjkimRsLargeAddressCheck (
1115207344Sjkim    UINT64                  Minimum,
1116207344Sjkim    UINT64                  Maximum,
1117207344Sjkim    UINT64                  Length,
1118207344Sjkim    UINT64                  Granularity,
1119207344Sjkim    UINT8                   Flags,
1120207344Sjkim    ACPI_PARSE_OBJECT       *MinOp,
1121207344Sjkim    ACPI_PARSE_OBJECT       *MaxOp,
1122207344Sjkim    ACPI_PARSE_OBJECT       *LengthOp,
1123213806Sjkim    ACPI_PARSE_OBJECT       *GranOp,
1124213806Sjkim    ACPI_PARSE_OBJECT       *Op);
1125207344Sjkim
1126207344SjkimUINT16
1127207344SjkimRsGetStringDataLength (
1128207344Sjkim    ACPI_PARSE_OBJECT       *InitializerOp);
1129207344Sjkim
1130118611SnjlASL_RESOURCE_NODE *
1131118611SnjlRsAllocateResourceNode (
1132118611Snjl    UINT32                  Size);
1133118611Snjl
1134151937Sjkimvoid
1135228110SjkimRsCreateResourceField (
1136118611Snjl    ACPI_PARSE_OBJECT       *Op,
1137118611Snjl    char                    *Name,
1138118611Snjl    UINT32                  ByteOffset,
1139228110Sjkim    UINT32                  BitOffset,
1140228110Sjkim    UINT32                  BitLength);
1141118611Snjl
1142118611Snjlvoid
1143228110SjkimRsSetFlagBits (
1144228110Sjkim    UINT8                   *Flags,
1145118611Snjl    ACPI_PARSE_OBJECT       *Op,
1146228110Sjkim    UINT8                   Position,
1147228110Sjkim    UINT8                   DefaultBit);
1148118611Snjl
1149118611Snjlvoid
1150228110SjkimRsSetFlagBits16 (
1151228110Sjkim    UINT16                  *Flags,
1152118611Snjl    ACPI_PARSE_OBJECT       *Op,
1153118611Snjl    UINT8                   Position,
1154118611Snjl    UINT8                   DefaultBit);
1155118611Snjl
1156118611SnjlACPI_PARSE_OBJECT *
1157118611SnjlRsCompleteNodeAndGetNext (
1158118611Snjl    ACPI_PARSE_OBJECT       *Op);
1159118611Snjl
1160151937Sjkimvoid
1161151937SjkimRsCheckListForDuplicates (
1162151937Sjkim    ACPI_PARSE_OBJECT       *Op);
1163151937Sjkim
1164118611SnjlASL_RESOURCE_NODE *
1165118611SnjlRsDoOneResourceDescriptor (
1166281075Sdim    ASL_RESOURCE_INFO       *Info,
1167118611Snjl    UINT8                   *State);
1168118611Snjl
1169151937Sjkim/* Values for State above */
1170151937Sjkim
1171118611Snjl#define ACPI_RSTATE_NORMAL              0
1172118611Snjl#define ACPI_RSTATE_START_DEPENDENT     1
1173118611Snjl#define ACPI_RSTATE_DEPENDENT_LIST      2
1174118611Snjl
1175118611SnjlUINT32
1176118611SnjlRsLinkDescriptorChain (
1177118611Snjl    ASL_RESOURCE_NODE       **PreviousRnode,
1178118611Snjl    ASL_RESOURCE_NODE       *Rnode);
1179118611Snjl
1180151937Sjkimvoid
1181151937SjkimRsDoResourceTemplate (
1182151937Sjkim    ACPI_PARSE_OBJECT       *Op);
1183118611Snjl
1184151937Sjkim
1185118611Snjl/*
1186207344Sjkim * aslrestype1 - Miscellaneous Small descriptors
1187118611Snjl */
1188118611SnjlASL_RESOURCE_NODE *
1189167802SjkimRsDoEndTagDescriptor (
1190281075Sdim    ASL_RESOURCE_INFO       *Info);
1191167802Sjkim
1192167802SjkimASL_RESOURCE_NODE *
1193207344SjkimRsDoEndDependentDescriptor (
1194281075Sdim    ASL_RESOURCE_INFO       *Info);
1195118611Snjl
1196118611SnjlASL_RESOURCE_NODE *
1197207344SjkimRsDoMemory24Descriptor (
1198281075Sdim    ASL_RESOURCE_INFO       *Info);
1199118611Snjl
1200118611SnjlASL_RESOURCE_NODE *
1201207344SjkimRsDoMemory32Descriptor (
1202281075Sdim    ASL_RESOURCE_INFO       *Info);
1203118611Snjl
1204118611SnjlASL_RESOURCE_NODE *
1205207344SjkimRsDoMemory32FixedDescriptor (
1206281075Sdim    ASL_RESOURCE_INFO       *Info);
1207118611Snjl
1208118611SnjlASL_RESOURCE_NODE *
1209207344SjkimRsDoStartDependentDescriptor (
1210281075Sdim    ASL_RESOURCE_INFO       *Info);
1211118611Snjl
1212118611SnjlASL_RESOURCE_NODE *
1213207344SjkimRsDoStartDependentNoPriDescriptor (
1214281075Sdim    ASL_RESOURCE_INFO       *Info);
1215118611Snjl
1216118611SnjlASL_RESOURCE_NODE *
1217207344SjkimRsDoVendorSmallDescriptor (
1218281075Sdim    ASL_RESOURCE_INFO       *Info);
1219118611Snjl
1220207344Sjkim
1221207344Sjkim/*
1222207344Sjkim * aslrestype1i - I/O-related Small descriptors
1223207344Sjkim */
1224118611SnjlASL_RESOURCE_NODE *
1225207344SjkimRsDoDmaDescriptor (
1226281075Sdim    ASL_RESOURCE_INFO       *Info);
1227118611Snjl
1228118611SnjlASL_RESOURCE_NODE *
1229228110SjkimRsDoFixedDmaDescriptor (
1230281075Sdim    ASL_RESOURCE_INFO       *Info);
1231228110Sjkim
1232228110SjkimASL_RESOURCE_NODE *
1233207344SjkimRsDoFixedIoDescriptor (
1234281075Sdim    ASL_RESOURCE_INFO       *Info);
1235118611Snjl
1236118611SnjlASL_RESOURCE_NODE *
1237207344SjkimRsDoIoDescriptor (
1238281075Sdim    ASL_RESOURCE_INFO       *Info);
1239118611Snjl
1240118611SnjlASL_RESOURCE_NODE *
1241207344SjkimRsDoIrqDescriptor (
1242281075Sdim    ASL_RESOURCE_INFO       *Info);
1243118611Snjl
1244118611SnjlASL_RESOURCE_NODE *
1245207344SjkimRsDoIrqNoFlagsDescriptor (
1246281075Sdim    ASL_RESOURCE_INFO       *Info);
1247118611Snjl
1248118611Snjl
1249118611Snjl/*
1250207344Sjkim * aslrestype2 - Large resource descriptors
1251118611Snjl */
1252151937SjkimASL_RESOURCE_NODE *
1253151937SjkimRsDoInterruptDescriptor (
1254281075Sdim    ASL_RESOURCE_INFO       *Info);
1255118611Snjl
1256118611SnjlASL_RESOURCE_NODE *
1257207344SjkimRsDoVendorLargeDescriptor (
1258281075Sdim    ASL_RESOURCE_INFO       *Info);
1259207344Sjkim
1260207344SjkimASL_RESOURCE_NODE *
1261207344SjkimRsDoGeneralRegisterDescriptor (
1262281075Sdim    ASL_RESOURCE_INFO       *Info);
1263207344Sjkim
1264228110SjkimASL_RESOURCE_NODE *
1265228110SjkimRsDoGpioIntDescriptor (
1266281075Sdim    ASL_RESOURCE_INFO       *Info);
1267207344Sjkim
1268228110SjkimASL_RESOURCE_NODE *
1269228110SjkimRsDoGpioIoDescriptor (
1270281075Sdim    ASL_RESOURCE_INFO       *Info);
1271228110Sjkim
1272228110SjkimASL_RESOURCE_NODE *
1273228110SjkimRsDoI2cSerialBusDescriptor (
1274281075Sdim    ASL_RESOURCE_INFO       *Info);
1275228110Sjkim
1276228110SjkimASL_RESOURCE_NODE *
1277228110SjkimRsDoSpiSerialBusDescriptor (
1278281075Sdim    ASL_RESOURCE_INFO       *Info);
1279228110Sjkim
1280228110SjkimASL_RESOURCE_NODE *
1281228110SjkimRsDoUartSerialBusDescriptor (
1282281075Sdim    ASL_RESOURCE_INFO       *Info);
1283228110Sjkim
1284207344Sjkim/*
1285207344Sjkim * aslrestype2d - DWord address descriptors
1286207344Sjkim */
1287207344SjkimASL_RESOURCE_NODE *
1288118611SnjlRsDoDwordIoDescriptor (
1289281075Sdim    ASL_RESOURCE_INFO       *Info);
1290118611Snjl
1291118611SnjlASL_RESOURCE_NODE *
1292118611SnjlRsDoDwordMemoryDescriptor (
1293281075Sdim    ASL_RESOURCE_INFO       *Info);
1294118611Snjl
1295118611SnjlASL_RESOURCE_NODE *
1296151937SjkimRsDoDwordSpaceDescriptor (
1297281075Sdim    ASL_RESOURCE_INFO       *Info);
1298151937Sjkim
1299207344Sjkim
1300207344Sjkim/*
1301207344Sjkim * aslrestype2e - Extended address descriptors
1302207344Sjkim */
1303151937SjkimASL_RESOURCE_NODE *
1304151937SjkimRsDoExtendedIoDescriptor (
1305281075Sdim    ASL_RESOURCE_INFO       *Info);
1306151937Sjkim
1307151937SjkimASL_RESOURCE_NODE *
1308151937SjkimRsDoExtendedMemoryDescriptor (
1309281075Sdim    ASL_RESOURCE_INFO       *Info);
1310151937Sjkim
1311151937SjkimASL_RESOURCE_NODE *
1312151937SjkimRsDoExtendedSpaceDescriptor (
1313281075Sdim    ASL_RESOURCE_INFO       *Info);
1314151937Sjkim
1315207344Sjkim
1316207344Sjkim/*
1317207344Sjkim * aslrestype2q - QWord address descriptors
1318207344Sjkim */
1319151937SjkimASL_RESOURCE_NODE *
1320118611SnjlRsDoQwordIoDescriptor (
1321281075Sdim    ASL_RESOURCE_INFO       *Info);
1322118611Snjl
1323118611SnjlASL_RESOURCE_NODE *
1324118611SnjlRsDoQwordMemoryDescriptor (
1325281075Sdim    ASL_RESOURCE_INFO       *Info);
1326118611Snjl
1327118611SnjlASL_RESOURCE_NODE *
1328151937SjkimRsDoQwordSpaceDescriptor (
1329281075Sdim    ASL_RESOURCE_INFO       *Info);
1330151937Sjkim
1331207344Sjkim
1332207344Sjkim/*
1333207344Sjkim * aslrestype2w - Word address descriptors
1334207344Sjkim */
1335151937SjkimASL_RESOURCE_NODE *
1336118611SnjlRsDoWordIoDescriptor (
1337281075Sdim    ASL_RESOURCE_INFO       *Info);
1338118611Snjl
1339118611SnjlASL_RESOURCE_NODE *
1340151937SjkimRsDoWordSpaceDescriptor (
1341281075Sdim    ASL_RESOURCE_INFO       *Info);
1342151937Sjkim
1343151937SjkimASL_RESOURCE_NODE *
1344118611SnjlRsDoWordBusNumberDescriptor (
1345281075Sdim    ASL_RESOURCE_INFO       *Info);
1346118611Snjl
1347281075Sdim
1348209746Sjkim/*
1349209746Sjkim * Entry to data table compiler subsystem
1350209746Sjkim */
1351209746SjkimACPI_STATUS
1352209746SjkimDtDoCompile(
1353209746Sjkim    void);
1354209746Sjkim
1355209746SjkimACPI_STATUS
1356209746SjkimDtCreateTemplates (
1357306536Sjkim    char                    **argv);
1358209746Sjkim
1359118611Snjl#endif /*  __ASLCOMPILER_H */
1360