1118611Snjl/******************************************************************************
2118611Snjl *
3151937Sjkim * Module Name: aslcompiler.h - common include file for iASL
4118611Snjl *
5118611Snjl *****************************************************************************/
6118611Snjl
7217365Sjkim/*
8281075Sdim * Copyright (C) 2000 - 2015, 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
170246849SjkimFlCheckForAcpiTable (
171246849Sjkim    FILE                    *Handle);
172246849Sjkim
173246849SjkimACPI_STATUS
174209746SjkimFlCheckForAscii (
175235945Sjkim    char                    *Filename,
176235945Sjkim    BOOLEAN                 DisplayErrors);
177118611Snjl
178209746Sjkim
179151937Sjkim/*
180218590Sjkim * aslwalks - semantic analysis and parse tree walks
181151937Sjkim */
182151937SjkimACPI_STATUS
183151937SjkimAnOtherSemanticAnalysisWalkBegin (
184151937Sjkim    ACPI_PARSE_OBJECT       *Op,
185151937Sjkim    UINT32                  Level,
186151937Sjkim    void                    *Context);
187118611Snjl
188151937SjkimACPI_STATUS
189151937SjkimAnOtherSemanticAnalysisWalkEnd (
190151937Sjkim    ACPI_PARSE_OBJECT       *Op,
191151937Sjkim    UINT32                  Level,
192151937Sjkim    void                    *Context);
193118611Snjl
194151937SjkimACPI_STATUS
195151937SjkimAnOperandTypecheckWalkEnd (
196151937Sjkim    ACPI_PARSE_OBJECT       *Op,
197151937Sjkim    UINT32                  Level,
198151937Sjkim    void                    *Context);
199118611Snjl
200151937SjkimACPI_STATUS
201245582SjkimAnMethodTypingWalkEnd (
202151937Sjkim    ACPI_PARSE_OBJECT       *Op,
203151937Sjkim    UINT32                  Level,
204151937Sjkim    void                    *Context);
205118611Snjl
206245582Sjkim
207245582Sjkim/*
208245582Sjkim * aslmethod - Control method analysis walk
209245582Sjkim */
210151937SjkimACPI_STATUS
211245582SjkimMtMethodAnalysisWalkBegin (
212151937Sjkim    ACPI_PARSE_OBJECT       *Op,
213151937Sjkim    UINT32                  Level,
214151937Sjkim    void                    *Context);
215118611Snjl
216151937SjkimACPI_STATUS
217245582SjkimMtMethodAnalysisWalkEnd (
218151937Sjkim    ACPI_PARSE_OBJECT       *Op,
219151937Sjkim    UINT32                  Level,
220151937Sjkim    void                    *Context);
221118611Snjl
222218590Sjkim
223218590Sjkim/*
224218590Sjkim * aslbtypes - bitfield data types
225218590Sjkim */
226218590SjkimUINT32
227218590SjkimAnMapObjTypeToBtype (
228218590Sjkim    ACPI_PARSE_OBJECT       *Op);
229218590Sjkim
230218590SjkimUINT32
231218590SjkimAnMapArgTypeToBtype (
232218590Sjkim    UINT32                  ArgType);
233218590Sjkim
234218590SjkimUINT32
235218590SjkimAnGetBtype (
236218590Sjkim    ACPI_PARSE_OBJECT       *Op);
237218590Sjkim
238218590Sjkimvoid
239218590SjkimAnFormatBtype (
240218590Sjkim    char                    *Buffer,
241218590Sjkim    UINT32                  Btype);
242218590Sjkim
243218590Sjkim
244218590Sjkim/*
245218590Sjkim * aslanalyze - Support functions for parse tree walks
246218590Sjkim */
247218590Sjkimvoid
248218590SjkimAnCheckId (
249151937Sjkim    ACPI_PARSE_OBJECT       *Op,
250218590Sjkim    ACPI_NAME               Type);
251118611Snjl
252218590Sjkim/* Values for Type argument above */
253151937Sjkim
254218590Sjkim#define ASL_TYPE_HID        0
255218590Sjkim#define ASL_TYPE_CID        1
256218590Sjkim
257218590SjkimBOOLEAN
258218590SjkimAnIsInternalMethod (
259218590Sjkim    ACPI_PARSE_OBJECT       *Op);
260218590Sjkim
261218590SjkimUINT32
262218590SjkimAnGetInternalMethodReturnType (
263218590Sjkim    ACPI_PARSE_OBJECT       *Op);
264218590Sjkim
265218590SjkimBOOLEAN
266218590SjkimAnLastStatementIsReturn (
267218590Sjkim    ACPI_PARSE_OBJECT       *Op);
268218590Sjkim
269218590Sjkimvoid
270218590SjkimAnCheckMethodReturnValue (
271218590Sjkim    ACPI_PARSE_OBJECT       *Op,
272218590Sjkim    const ACPI_OPCODE_INFO  *OpInfo,
273218590Sjkim    ACPI_PARSE_OBJECT       *ArgOp,
274218590Sjkim    UINT32                  RequiredBtypes,
275218590Sjkim    UINT32                  ThisNodeBtype);
276218590Sjkim
277218590SjkimBOOLEAN
278218590SjkimAnIsResultUsed (
279218590Sjkim    ACPI_PARSE_OBJECT       *Op);
280218590Sjkim
281218590Sjkimvoid
282218590SjkimApCheckForGpeNameConflict (
283218590Sjkim    ACPI_PARSE_OBJECT       *Op);
284218590Sjkim
285220663Sjkimvoid
286220663SjkimApCheckRegMethod (
287220663Sjkim    ACPI_PARSE_OBJECT       *Op);
288218590Sjkim
289281075SdimBOOLEAN
290281075SdimApFindNameInScope (
291281075Sdim    char                    *Name,
292281075Sdim    ACPI_PARSE_OBJECT       *Op);
293220663Sjkim
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/*
545281075Sdim * aslprintf - Printf/Fprintf macros
546281075Sdim */
547281075Sdimvoid
548281075SdimOpcDoPrintf (
549281075Sdim    ACPI_PARSE_OBJECT       *Op);
550281075Sdim
551281075Sdimvoid
552281075SdimOpcDoFprintf (
553281075Sdim    ACPI_PARSE_OBJECT       *Op);
554281075Sdim
555281075Sdim
556281075Sdim/*
557281075Sdim * aslprune - parse tree pruner
558281075Sdim */
559281075Sdimvoid
560281075SdimAslPruneParseTree (
561281075Sdim    UINT32                  PruneDepth,
562281075Sdim    UINT32                  Type);
563281075Sdim
564281075Sdim
565281075Sdim/*
566151937Sjkim * aslcodegen - code generation
567118611Snjl */
568118611Snjlvoid
569151937SjkimCgGenerateAmlOutput (
570151937Sjkim    void);
571118611Snjl
572118611Snjl
573151937Sjkim/*
574209746Sjkim * aslfile
575209746Sjkim */
576209746Sjkimvoid
577209746SjkimFlOpenFile (
578209746Sjkim    UINT32                  FileId,
579209746Sjkim    char                    *Filename,
580209746Sjkim    char                    *Mode);
581209746Sjkim
582209746Sjkim
583209746Sjkim/*
584151937Sjkim * asllength - calculate/adjust AML package lengths
585151937Sjkim */
586118611SnjlACPI_STATUS
587118611SnjlLnPackageLengthWalk (
588118611Snjl    ACPI_PARSE_OBJECT       *Op,
589118611Snjl    UINT32                  Level,
590118611Snjl    void                    *Context);
591118611Snjl
592118611SnjlACPI_STATUS
593118611SnjlLnInitLengthsWalk (
594118611Snjl    ACPI_PARSE_OBJECT       *Op,
595118611Snjl    UINT32                  Level,
596118611Snjl    void                    *Context);
597118611Snjl
598118611Snjlvoid
599151937SjkimCgGenerateAmlLengths (
600151937Sjkim    ACPI_PARSE_OBJECT       *Op);
601118611Snjl
602118611Snjl
603118611Snjl/*
604151937Sjkim * aslmap - opcode mappings and reserved method names
605118611Snjl */
606118611SnjlACPI_OBJECT_TYPE
607118611SnjlAslMapNamedOpcodeToDataType (
608118611Snjl    UINT16                  Opcode);
609118611Snjl
610204773Sjkim
611204773Sjkim/*
612204773Sjkim * aslpredef - ACPI predefined names support
613204773Sjkim */
614220663SjkimBOOLEAN
615204773SjkimApCheckForPredefinedMethod (
616204773Sjkim    ACPI_PARSE_OBJECT       *Op,
617204773Sjkim    ASL_METHOD_INFO         *MethodInfo);
618204773Sjkim
619206117Sjkimvoid
620206117SjkimApCheckPredefinedReturnValue (
621206117Sjkim    ACPI_PARSE_OBJECT       *Op,
622206117Sjkim    ASL_METHOD_INFO         *MethodInfo);
623206117Sjkim
624204773SjkimUINT32
625204773SjkimApCheckForPredefinedName (
626204773Sjkim    ACPI_PARSE_OBJECT       *Op,
627204773Sjkim    char                    *Name);
628204773Sjkim
629204773Sjkimvoid
630204773SjkimApCheckForPredefinedObject (
631204773Sjkim    ACPI_PARSE_OBJECT       *Op,
632204773Sjkim    char                    *Name);
633204773Sjkim
634246849SjkimACPI_STATUS
635246849SjkimApCheckObjectType (
636246849Sjkim    const char              *PredefinedName,
637246849Sjkim    ACPI_PARSE_OBJECT       *Op,
638246849Sjkim    UINT32                  ExpectedBtypes,
639246849Sjkim    UINT32                  PackageIndex);
640246849Sjkim
641204773Sjkimvoid
642204773SjkimApDisplayReservedNames (
643151937Sjkim    void);
644151937Sjkim
645151937Sjkim
646118611Snjl/*
647246849Sjkim * aslprepkg - ACPI predefined names support for packages
648246849Sjkim */
649246849Sjkimvoid
650246849SjkimApCheckPackage (
651246849Sjkim    ACPI_PARSE_OBJECT           *ParentOp,
652246849Sjkim    const ACPI_PREDEFINED_INFO  *Predefined);
653246849Sjkim
654246849Sjkim
655246849Sjkim/*
656118611Snjl * asltransform - parse tree transformations
657118611Snjl */
658118611SnjlACPI_STATUS
659118611SnjlTrAmlTransformWalk (
660118611Snjl    ACPI_PARSE_OBJECT       *Op,
661118611Snjl    UINT32                  Level,
662118611Snjl    void                    *Context);
663118611Snjl
664118611Snjl
665118611Snjl/*
666118611Snjl * asltree - parse tree support
667118611Snjl */
668118611SnjlACPI_STATUS
669118611SnjlTrWalkParseTree (
670118611Snjl    ACPI_PARSE_OBJECT       *Op,
671118611Snjl    UINT32                  Visitation,
672118611Snjl    ASL_WALK_CALLBACK       DescendingCallback,
673118611Snjl    ASL_WALK_CALLBACK       AscendingCallback,
674118611Snjl    void                    *Context);
675118611Snjl
676118611Snjl/* Values for "Visitation" parameter above */
677118611Snjl
678118611Snjl#define ASL_WALK_VISIT_DOWNWARD     0x01
679118611Snjl#define ASL_WALK_VISIT_UPWARD       0x02
680118611Snjl#define ASL_WALK_VISIT_TWICE        (ASL_WALK_VISIT_DOWNWARD | ASL_WALK_VISIT_UPWARD)
681118611Snjl
682118611Snjl
683151937SjkimACPI_PARSE_OBJECT *
684151937SjkimTrAllocateNode (
685151937Sjkim    UINT32                  ParseOpcode);
686118611Snjl
687151937Sjkimvoid
688281687SjkimTrPrintNodeCompileFlags (
689281687Sjkim    UINT32                  Flags);
690281687Sjkim
691281687Sjkimvoid
692151937SjkimTrReleaseNode (
693151937Sjkim    ACPI_PARSE_OBJECT       *Op);
694151937Sjkim
695118611SnjlACPI_PARSE_OBJECT *
696118611SnjlTrUpdateNode (
697118611Snjl    UINT32                  ParseOpcode,
698118611Snjl    ACPI_PARSE_OBJECT       *Op);
699118611Snjl
700118611SnjlACPI_PARSE_OBJECT *
701118611SnjlTrCreateNode (
702118611Snjl    UINT32                  ParseOpcode,
703118611Snjl    UINT32                  NumChildren,
704118611Snjl    ...);
705118611Snjl
706118611SnjlACPI_PARSE_OBJECT *
707118611SnjlTrCreateLeafNode (
708118611Snjl    UINT32                  ParseOpcode);
709118611Snjl
710118611SnjlACPI_PARSE_OBJECT *
711281687SjkimTrCreateNullTarget (
712281687Sjkim    void);
713281687Sjkim
714281687SjkimACPI_PARSE_OBJECT *
715281075SdimTrCreateAssignmentNode (
716281075Sdim    ACPI_PARSE_OBJECT       *Target,
717281075Sdim    ACPI_PARSE_OBJECT       *Source);
718281075Sdim
719281075SdimACPI_PARSE_OBJECT *
720281075SdimTrCreateTargetOperand (
721281075Sdim    ACPI_PARSE_OBJECT       *OriginalOp,
722281075Sdim    ACPI_PARSE_OBJECT       *ParentOp);
723281075Sdim
724281075SdimACPI_PARSE_OBJECT *
725118611SnjlTrCreateValuedLeafNode (
726118611Snjl    UINT32                  ParseOpcode,
727202771Sjkim    UINT64                  Value);
728118611Snjl
729118611SnjlACPI_PARSE_OBJECT *
730218590SjkimTrCreateConstantLeafNode (
731218590Sjkim    UINT32                  ParseOpcode);
732218590Sjkim
733218590SjkimACPI_PARSE_OBJECT *
734118611SnjlTrLinkChildren (
735118611Snjl    ACPI_PARSE_OBJECT       *Op,
736118611Snjl    UINT32                  NumChildren,
737118611Snjl    ...);
738118611Snjl
739118611Snjlvoid
740118611SnjlTrSetEndLineNumber (
741118611Snjl    ACPI_PARSE_OBJECT       *Op);
742118611Snjl
743118611Snjlvoid
744151937SjkimTrWalkTree (
745151937Sjkim    void);
746118611Snjl
747118611SnjlACPI_PARSE_OBJECT *
748118611SnjlTrLinkPeerNode (
749118611Snjl    ACPI_PARSE_OBJECT       *Op1,
750118611Snjl    ACPI_PARSE_OBJECT       *Op2);
751118611Snjl
752118611SnjlACPI_PARSE_OBJECT *
753118611SnjlTrLinkChildNode (
754118611Snjl    ACPI_PARSE_OBJECT       *Op1,
755118611Snjl    ACPI_PARSE_OBJECT       *Op2);
756118611Snjl
757118611SnjlACPI_PARSE_OBJECT *
758118611SnjlTrSetNodeFlags (
759118611Snjl    ACPI_PARSE_OBJECT       *Op,
760118611Snjl    UINT32                  Flags);
761118611Snjl
762118611SnjlACPI_PARSE_OBJECT *
763239340SjkimTrSetNodeAmlLength (
764239340Sjkim    ACPI_PARSE_OBJECT       *Op,
765239340Sjkim    UINT32                  Length);
766239340Sjkim
767239340SjkimACPI_PARSE_OBJECT *
768118611SnjlTrLinkPeerNodes (
769118611Snjl    UINT32                  NumPeers,
770118611Snjl    ...);
771118611Snjl
772118611Snjl
773118611Snjl/*
774118611Snjl * aslfiles - File I/O support
775118611Snjl */
776118611Snjlvoid
777197104SjkimFlAddIncludeDirectory (
778197104Sjkim    char                    *Dir);
779197104Sjkim
780235945Sjkimchar *
781235945SjkimFlMergePathnames (
782235945Sjkim    char                    *PrefixDir,
783235945Sjkim    char                    *FilePathname);
784235945Sjkim
785197104Sjkimvoid
786118611SnjlFlOpenIncludeFile (
787118611Snjl    ACPI_PARSE_OBJECT       *Op);
788118611Snjl
789118611Snjlvoid
790118611SnjlFlFileError (
791118611Snjl    UINT32                  FileId,
792118611Snjl    UINT8                   ErrorId);
793118611Snjl
794207344SjkimUINT32
795207344SjkimFlGetFileSize (
796207344Sjkim    UINT32                  FileId);
797207344Sjkim
798118611SnjlACPI_STATUS
799118611SnjlFlReadFile (
800118611Snjl    UINT32                  FileId,
801118611Snjl    void                    *Buffer,
802118611Snjl    UINT32                  Length);
803118611Snjl
804118611Snjlvoid
805118611SnjlFlWriteFile (
806118611Snjl    UINT32                  FileId,
807118611Snjl    void                    *Buffer,
808118611Snjl    UINT32                  Length);
809118611Snjl
810118611Snjlvoid
811118611SnjlFlSeekFile (
812118611Snjl    UINT32                  FileId,
813118611Snjl    long                    Offset);
814118611Snjl
815118611Snjlvoid
816118611SnjlFlCloseFile (
817118611Snjl    UINT32                  FileId);
818118611Snjl
819118611Snjlvoid
820118611SnjlFlPrintFile (
821118611Snjl    UINT32                  FileId,
822118611Snjl    char                    *Format,
823118611Snjl    ...);
824118611Snjl
825118611Snjlvoid
826240716SjkimFlDeleteFile (
827240716Sjkim    UINT32                  FileId);
828240716Sjkim
829240716Sjkimvoid
830118611SnjlFlSetLineNumber (
831234623Sjkim    UINT32                  LineNumber);
832118611Snjl
833234623Sjkimvoid
834234623SjkimFlSetFilename (
835234623Sjkim    char                    *Filename);
836234623Sjkim
837118611SnjlACPI_STATUS
838118611SnjlFlOpenInputFile (
839118611Snjl    char                    *InputFilename);
840118611Snjl
841118611SnjlACPI_STATUS
842118611SnjlFlOpenAmlOutputFile (
843118611Snjl    char                    *InputFilename);
844118611Snjl
845118611SnjlACPI_STATUS
846118611SnjlFlOpenMiscOutputFiles (
847118611Snjl    char                    *InputFilename);
848118611Snjl
849281075Sdim/*
850281075Sdim * aslhwmap - hardware map summary
851281075Sdim */
852281075Sdimvoid
853281075SdimMpEmitMappingInfo (
854281075Sdim    void);
855118611Snjl
856281075Sdim
857151937Sjkim/*
858151937Sjkim * asload - load namespace in prep for cross reference
859151937Sjkim */
860118611SnjlACPI_STATUS
861118611SnjlLdLoadNamespace (
862118611Snjl    ACPI_PARSE_OBJECT       *RootOp);
863118611Snjl
864118611Snjl
865151937Sjkim/*
866245582Sjkim * asllookup - namespace lookup functions
867151937Sjkim */
868167802Sjkimvoid
869167802SjkimLkFindUnreferencedObjects (
870167802Sjkim    void);
871167802Sjkim
872250838Sjkim/*
873250838Sjkim * aslmain - startup
874250838Sjkim */
875250838Sjkimvoid
876250838SjkimUsage (
877250838Sjkim    void);
878245582Sjkim
879250838Sjkimvoid
880250838SjkimAslFilenameHelp (
881250838Sjkim    void);
882250838Sjkim
883250838Sjkim
884245582Sjkim/*
885245582Sjkim * aslnamesp - namespace output file generation
886245582Sjkim */
887118611SnjlACPI_STATUS
888245582SjkimNsDisplayNamespace (
889118611Snjl    void);
890118611Snjl
891212761Sjkimvoid
892245582SjkimNsSetupNamespaceListing (
893212761Sjkim    void                    *Handle);
894118611Snjl
895250838Sjkim/*
896250838Sjkim * asloptions - command line processing
897250838Sjkim */
898250838Sjkimint
899250838SjkimAslCommandLine (
900250838Sjkim    int                     argc,
901250838Sjkim    char                    **argv);
902212761Sjkim
903151937Sjkim/*
904245582Sjkim * aslxref - namespace cross reference
905245582Sjkim */
906245582SjkimACPI_STATUS
907245582SjkimXfCrossReferenceNamespace (
908245582Sjkim    void);
909245582Sjkim
910245582Sjkim
911245582Sjkim/*
912151937Sjkim * aslutils - common compiler utilites
913151937Sjkim */
914151937Sjkimvoid
915151937SjkimDbgPrint (
916151937Sjkim    UINT32                  Type,
917151937Sjkim    char                    *Format,
918151937Sjkim    ...);
919118611Snjl
920151937Sjkim/* Type values for above */
921118611Snjl
922151937Sjkim#define ASL_DEBUG_OUTPUT    0
923151937Sjkim#define ASL_PARSE_OUTPUT    1
924151937Sjkim#define ASL_TREE_OUTPUT     2
925151937Sjkim
926118611Snjlvoid
927209746SjkimUtDisplaySupportedTables (
928209746Sjkim    void);
929209746Sjkim
930209746Sjkimvoid
931118611SnjlUtDisplayConstantOpcodes (
932118611Snjl    void);
933118611Snjl
934151937SjkimUINT8
935118611SnjlUtBeginEvent (
936118611Snjl    char                    *Name);
937118611Snjl
938118611Snjlvoid
939118611SnjlUtEndEvent (
940151937Sjkim    UINT8                   Event);
941118611Snjl
942118611Snjlvoid *
943118611SnjlUtLocalCalloc (
944118611Snjl    UINT32                  Size);
945118611Snjl
946118611Snjlvoid
947118611SnjlUtPrintFormattedName (
948118611Snjl    UINT16                  ParseOpcode,
949118611Snjl    UINT32                  Level);
950118611Snjl
951118611Snjlvoid
952118611SnjlUtDisplaySummary (
953118611Snjl    UINT32                  FileId);
954118611Snjl
955118611Snjlvoid
956118611SnjlUtConvertByteToHex (
957118611Snjl    UINT8                   RawByte,
958118611Snjl    UINT8                   *Buffer);
959118611Snjl
960118611Snjlvoid
961118611SnjlUtConvertByteToAsmHex (
962118611Snjl    UINT8                   RawByte,
963118611Snjl    UINT8                   *Buffer);
964118611Snjl
965118611Snjlchar *
966118611SnjlUtGetOpName (
967118611Snjl    UINT32                  ParseOpcode);
968118611Snjl
969118611Snjlvoid
970118611SnjlUtSetParseOpName (
971118611Snjl    ACPI_PARSE_OBJECT       *Op);
972118611Snjl
973118611Snjlchar *
974281075SdimUtStringCacheCalloc (
975118611Snjl    UINT32                  Length);
976118611Snjl
977240716Sjkimvoid
978240716SjkimUtExpandLineBuffers (
979240716Sjkim    void);
980240716Sjkim
981281075Sdimvoid
982281075SdimUtFreeLineBuffers (
983281075Sdim    void);
984281075Sdim
985118611SnjlACPI_STATUS
986118611SnjlUtInternalizeName (
987118611Snjl    char                    *ExternalName,
988118611Snjl    char                    **ConvertedName);
989118611Snjl
990118611Snjlvoid
991118611SnjlUtAttachNamepathToOwner (
992118611Snjl    ACPI_PARSE_OBJECT       *Op,
993118611Snjl    ACPI_PARSE_OBJECT       *NameNode);
994118611Snjl
995118611SnjlACPI_PARSE_OBJECT *
996118611SnjlUtCheckIntegerRange (
997118611Snjl    ACPI_PARSE_OBJECT       *Op,
998118611Snjl    UINT32                  LowValue,
999118611Snjl    UINT32                  HighValue);
1000118611Snjl
1001202771SjkimUINT64
1002118611SnjlUtDoConstant (
1003118611Snjl    char                    *String);
1004118611Snjl
1005220663SjkimACPI_STATUS
1006220663SjkimUtStrtoul64 (
1007220663Sjkim    char                    *String,
1008220663Sjkim    UINT32                  Base,
1009220663Sjkim    UINT64                  *RetInteger);
1010220663Sjkim
1011220663Sjkim
1012217365Sjkim/*
1013217365Sjkim * asluuid - UUID support
1014217365Sjkim */
1015217365SjkimACPI_STATUS
1016217365SjkimAuValidateUuid (
1017217365Sjkim    char                    *InString);
1018118611Snjl
1019217365SjkimACPI_STATUS
1020217365SjkimAuConvertUuidToString (
1021217365Sjkim    char                    *UuIdBuffer,
1022217365Sjkim    char                    *OutString);
1023217365Sjkim
1024118611Snjl/*
1025151937Sjkim * aslresource - Resource template generation utilities
1026118611Snjl */
1027207344Sjkimvoid
1028207344SjkimRsSmallAddressCheck (
1029207344Sjkim    UINT8                   Type,
1030207344Sjkim    UINT32                  Minimum,
1031207344Sjkim    UINT32                  Maximum,
1032207344Sjkim    UINT32                  Length,
1033207344Sjkim    UINT32                  Alignment,
1034207344Sjkim    ACPI_PARSE_OBJECT       *MinOp,
1035207344Sjkim    ACPI_PARSE_OBJECT       *MaxOp,
1036207344Sjkim    ACPI_PARSE_OBJECT       *LengthOp,
1037213806Sjkim    ACPI_PARSE_OBJECT       *AlignOp,
1038213806Sjkim    ACPI_PARSE_OBJECT       *Op);
1039207344Sjkim
1040207344Sjkimvoid
1041207344SjkimRsLargeAddressCheck (
1042207344Sjkim    UINT64                  Minimum,
1043207344Sjkim    UINT64                  Maximum,
1044207344Sjkim    UINT64                  Length,
1045207344Sjkim    UINT64                  Granularity,
1046207344Sjkim    UINT8                   Flags,
1047207344Sjkim    ACPI_PARSE_OBJECT       *MinOp,
1048207344Sjkim    ACPI_PARSE_OBJECT       *MaxOp,
1049207344Sjkim    ACPI_PARSE_OBJECT       *LengthOp,
1050213806Sjkim    ACPI_PARSE_OBJECT       *GranOp,
1051213806Sjkim    ACPI_PARSE_OBJECT       *Op);
1052207344Sjkim
1053207344SjkimUINT16
1054207344SjkimRsGetStringDataLength (
1055207344Sjkim    ACPI_PARSE_OBJECT       *InitializerOp);
1056207344Sjkim
1057118611SnjlASL_RESOURCE_NODE *
1058118611SnjlRsAllocateResourceNode (
1059118611Snjl    UINT32                  Size);
1060118611Snjl
1061151937Sjkimvoid
1062228110SjkimRsCreateResourceField (
1063118611Snjl    ACPI_PARSE_OBJECT       *Op,
1064118611Snjl    char                    *Name,
1065118611Snjl    UINT32                  ByteOffset,
1066228110Sjkim    UINT32                  BitOffset,
1067228110Sjkim    UINT32                  BitLength);
1068118611Snjl
1069118611Snjlvoid
1070228110SjkimRsSetFlagBits (
1071228110Sjkim    UINT8                   *Flags,
1072118611Snjl    ACPI_PARSE_OBJECT       *Op,
1073228110Sjkim    UINT8                   Position,
1074228110Sjkim    UINT8                   DefaultBit);
1075118611Snjl
1076118611Snjlvoid
1077228110SjkimRsSetFlagBits16 (
1078228110Sjkim    UINT16                  *Flags,
1079118611Snjl    ACPI_PARSE_OBJECT       *Op,
1080118611Snjl    UINT8                   Position,
1081118611Snjl    UINT8                   DefaultBit);
1082118611Snjl
1083118611SnjlACPI_PARSE_OBJECT *
1084118611SnjlRsCompleteNodeAndGetNext (
1085118611Snjl    ACPI_PARSE_OBJECT       *Op);
1086118611Snjl
1087151937Sjkimvoid
1088151937SjkimRsCheckListForDuplicates (
1089151937Sjkim    ACPI_PARSE_OBJECT       *Op);
1090151937Sjkim
1091118611SnjlASL_RESOURCE_NODE *
1092118611SnjlRsDoOneResourceDescriptor (
1093281075Sdim    ASL_RESOURCE_INFO       *Info,
1094118611Snjl    UINT8                   *State);
1095118611Snjl
1096151937Sjkim/* Values for State above */
1097151937Sjkim
1098118611Snjl#define ACPI_RSTATE_NORMAL              0
1099118611Snjl#define ACPI_RSTATE_START_DEPENDENT     1
1100118611Snjl#define ACPI_RSTATE_DEPENDENT_LIST      2
1101118611Snjl
1102118611SnjlUINT32
1103118611SnjlRsLinkDescriptorChain (
1104118611Snjl    ASL_RESOURCE_NODE       **PreviousRnode,
1105118611Snjl    ASL_RESOURCE_NODE       *Rnode);
1106118611Snjl
1107151937Sjkimvoid
1108151937SjkimRsDoResourceTemplate (
1109151937Sjkim    ACPI_PARSE_OBJECT       *Op);
1110118611Snjl
1111151937Sjkim
1112118611Snjl/*
1113207344Sjkim * aslrestype1 - Miscellaneous Small descriptors
1114118611Snjl */
1115118611SnjlASL_RESOURCE_NODE *
1116167802SjkimRsDoEndTagDescriptor (
1117281075Sdim    ASL_RESOURCE_INFO       *Info);
1118167802Sjkim
1119167802SjkimASL_RESOURCE_NODE *
1120207344SjkimRsDoEndDependentDescriptor (
1121281075Sdim    ASL_RESOURCE_INFO       *Info);
1122118611Snjl
1123118611SnjlASL_RESOURCE_NODE *
1124207344SjkimRsDoMemory24Descriptor (
1125281075Sdim    ASL_RESOURCE_INFO       *Info);
1126118611Snjl
1127118611SnjlASL_RESOURCE_NODE *
1128207344SjkimRsDoMemory32Descriptor (
1129281075Sdim    ASL_RESOURCE_INFO       *Info);
1130118611Snjl
1131118611SnjlASL_RESOURCE_NODE *
1132207344SjkimRsDoMemory32FixedDescriptor (
1133281075Sdim    ASL_RESOURCE_INFO       *Info);
1134118611Snjl
1135118611SnjlASL_RESOURCE_NODE *
1136207344SjkimRsDoStartDependentDescriptor (
1137281075Sdim    ASL_RESOURCE_INFO       *Info);
1138118611Snjl
1139118611SnjlASL_RESOURCE_NODE *
1140207344SjkimRsDoStartDependentNoPriDescriptor (
1141281075Sdim    ASL_RESOURCE_INFO       *Info);
1142118611Snjl
1143118611SnjlASL_RESOURCE_NODE *
1144207344SjkimRsDoVendorSmallDescriptor (
1145281075Sdim    ASL_RESOURCE_INFO       *Info);
1146118611Snjl
1147207344Sjkim
1148207344Sjkim/*
1149207344Sjkim * aslrestype1i - I/O-related Small descriptors
1150207344Sjkim */
1151118611SnjlASL_RESOURCE_NODE *
1152207344SjkimRsDoDmaDescriptor (
1153281075Sdim    ASL_RESOURCE_INFO       *Info);
1154118611Snjl
1155118611SnjlASL_RESOURCE_NODE *
1156228110SjkimRsDoFixedDmaDescriptor (
1157281075Sdim    ASL_RESOURCE_INFO       *Info);
1158228110Sjkim
1159228110SjkimASL_RESOURCE_NODE *
1160207344SjkimRsDoFixedIoDescriptor (
1161281075Sdim    ASL_RESOURCE_INFO       *Info);
1162118611Snjl
1163118611SnjlASL_RESOURCE_NODE *
1164207344SjkimRsDoIoDescriptor (
1165281075Sdim    ASL_RESOURCE_INFO       *Info);
1166118611Snjl
1167118611SnjlASL_RESOURCE_NODE *
1168207344SjkimRsDoIrqDescriptor (
1169281075Sdim    ASL_RESOURCE_INFO       *Info);
1170118611Snjl
1171118611SnjlASL_RESOURCE_NODE *
1172207344SjkimRsDoIrqNoFlagsDescriptor (
1173281075Sdim    ASL_RESOURCE_INFO       *Info);
1174118611Snjl
1175118611Snjl
1176118611Snjl/*
1177207344Sjkim * aslrestype2 - Large resource descriptors
1178118611Snjl */
1179151937SjkimASL_RESOURCE_NODE *
1180151937SjkimRsDoInterruptDescriptor (
1181281075Sdim    ASL_RESOURCE_INFO       *Info);
1182118611Snjl
1183118611SnjlASL_RESOURCE_NODE *
1184207344SjkimRsDoVendorLargeDescriptor (
1185281075Sdim    ASL_RESOURCE_INFO       *Info);
1186207344Sjkim
1187207344SjkimASL_RESOURCE_NODE *
1188207344SjkimRsDoGeneralRegisterDescriptor (
1189281075Sdim    ASL_RESOURCE_INFO       *Info);
1190207344Sjkim
1191228110SjkimASL_RESOURCE_NODE *
1192228110SjkimRsDoGpioIntDescriptor (
1193281075Sdim    ASL_RESOURCE_INFO       *Info);
1194207344Sjkim
1195228110SjkimASL_RESOURCE_NODE *
1196228110SjkimRsDoGpioIoDescriptor (
1197281075Sdim    ASL_RESOURCE_INFO       *Info);
1198228110Sjkim
1199228110SjkimASL_RESOURCE_NODE *
1200228110SjkimRsDoI2cSerialBusDescriptor (
1201281075Sdim    ASL_RESOURCE_INFO       *Info);
1202228110Sjkim
1203228110SjkimASL_RESOURCE_NODE *
1204228110SjkimRsDoSpiSerialBusDescriptor (
1205281075Sdim    ASL_RESOURCE_INFO       *Info);
1206228110Sjkim
1207228110SjkimASL_RESOURCE_NODE *
1208228110SjkimRsDoUartSerialBusDescriptor (
1209281075Sdim    ASL_RESOURCE_INFO       *Info);
1210228110Sjkim
1211207344Sjkim/*
1212207344Sjkim * aslrestype2d - DWord address descriptors
1213207344Sjkim */
1214207344SjkimASL_RESOURCE_NODE *
1215118611SnjlRsDoDwordIoDescriptor (
1216281075Sdim    ASL_RESOURCE_INFO       *Info);
1217118611Snjl
1218118611SnjlASL_RESOURCE_NODE *
1219118611SnjlRsDoDwordMemoryDescriptor (
1220281075Sdim    ASL_RESOURCE_INFO       *Info);
1221118611Snjl
1222118611SnjlASL_RESOURCE_NODE *
1223151937SjkimRsDoDwordSpaceDescriptor (
1224281075Sdim    ASL_RESOURCE_INFO       *Info);
1225151937Sjkim
1226207344Sjkim
1227207344Sjkim/*
1228207344Sjkim * aslrestype2e - Extended address descriptors
1229207344Sjkim */
1230151937SjkimASL_RESOURCE_NODE *
1231151937SjkimRsDoExtendedIoDescriptor (
1232281075Sdim    ASL_RESOURCE_INFO       *Info);
1233151937Sjkim
1234151937SjkimASL_RESOURCE_NODE *
1235151937SjkimRsDoExtendedMemoryDescriptor (
1236281075Sdim    ASL_RESOURCE_INFO       *Info);
1237151937Sjkim
1238151937SjkimASL_RESOURCE_NODE *
1239151937SjkimRsDoExtendedSpaceDescriptor (
1240281075Sdim    ASL_RESOURCE_INFO       *Info);
1241151937Sjkim
1242207344Sjkim
1243207344Sjkim/*
1244207344Sjkim * aslrestype2q - QWord address descriptors
1245207344Sjkim */
1246151937SjkimASL_RESOURCE_NODE *
1247118611SnjlRsDoQwordIoDescriptor (
1248281075Sdim    ASL_RESOURCE_INFO       *Info);
1249118611Snjl
1250118611SnjlASL_RESOURCE_NODE *
1251118611SnjlRsDoQwordMemoryDescriptor (
1252281075Sdim    ASL_RESOURCE_INFO       *Info);
1253118611Snjl
1254118611SnjlASL_RESOURCE_NODE *
1255151937SjkimRsDoQwordSpaceDescriptor (
1256281075Sdim    ASL_RESOURCE_INFO       *Info);
1257151937Sjkim
1258207344Sjkim
1259207344Sjkim/*
1260207344Sjkim * aslrestype2w - Word address descriptors
1261207344Sjkim */
1262151937SjkimASL_RESOURCE_NODE *
1263118611SnjlRsDoWordIoDescriptor (
1264281075Sdim    ASL_RESOURCE_INFO       *Info);
1265118611Snjl
1266118611SnjlASL_RESOURCE_NODE *
1267151937SjkimRsDoWordSpaceDescriptor (
1268281075Sdim    ASL_RESOURCE_INFO       *Info);
1269151937Sjkim
1270151937SjkimASL_RESOURCE_NODE *
1271118611SnjlRsDoWordBusNumberDescriptor (
1272281075Sdim    ASL_RESOURCE_INFO       *Info);
1273118611Snjl
1274281075Sdim
1275209746Sjkim/*
1276209746Sjkim * Entry to data table compiler subsystem
1277209746Sjkim */
1278209746SjkimACPI_STATUS
1279209746SjkimDtDoCompile(
1280209746Sjkim    void);
1281209746Sjkim
1282209746SjkimACPI_STATUS
1283209746SjkimDtCreateTemplates (
1284209746Sjkim    char                    *Signature);
1285209746Sjkim
1286118611Snjl#endif /*  __ASLCOMPILER_H */
1287