]> CyberLeo.Net >> Repos - FreeBSD/releng/9.2.git/blob - sys/contrib/dev/acpica/compiler/aslcompiler.h
- Copy stable/9 to releng/9.2 as part of the 9.2-RELEASE cycle.
[FreeBSD/releng/9.2.git] / sys / contrib / dev / acpica / compiler / aslcompiler.h
1
2 /******************************************************************************
3  *
4  * Module Name: aslcompiler.h - common include file for iASL
5  *
6  *****************************************************************************/
7
8 /*
9  * Copyright (C) 2000 - 2011, Intel Corp.
10  * All rights reserved.
11  *
12  * Redistribution and use in source and binary forms, with or without
13  * modification, are permitted provided that the following conditions
14  * are met:
15  * 1. Redistributions of source code must retain the above copyright
16  *    notice, this list of conditions, and the following disclaimer,
17  *    without modification.
18  * 2. Redistributions in binary form must reproduce at minimum a disclaimer
19  *    substantially similar to the "NO WARRANTY" disclaimer below
20  *    ("Disclaimer") and any redistribution must be conditioned upon
21  *    including a substantially similar Disclaimer requirement for further
22  *    binary redistribution.
23  * 3. Neither the names of the above-listed copyright holders nor the names
24  *    of any contributors may be used to endorse or promote products derived
25  *    from this software without specific prior written permission.
26  *
27  * Alternatively, this software may be distributed under the terms of the
28  * GNU General Public License ("GPL") version 2 as published by the Free
29  * Software Foundation.
30  *
31  * NO WARRANTY
32  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
33  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
34  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
35  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
36  * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
37  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
38  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
39  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
40  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
41  * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
42  * POSSIBILITY OF SUCH DAMAGES.
43  */
44
45
46 #ifndef __ASLCOMPILER_H
47 #define __ASLCOMPILER_H
48
49 #include <contrib/dev/acpica/include/acpi.h>
50 #include <contrib/dev/acpica/include/accommon.h>
51 #include <contrib/dev/acpica/include/amlresrc.h>
52 #include <contrib/dev/acpica/include/acdebug.h>
53
54 /* Microsoft-specific */
55
56 #if (defined WIN32 || defined WIN64)
57
58 /* warn : used #pragma pack */
59 #pragma warning(disable:4103)
60
61 /* warn : named type definition in parentheses */
62 #pragma warning(disable:4115)
63 #endif
64
65 #include <stdio.h>
66 #include <stdlib.h>
67 #include <stdarg.h>
68 #include <string.h>
69 #include <errno.h>
70 #include <ctype.h>
71
72 /* Compiler headers */
73
74 #include <contrib/dev/acpica/compiler/asldefine.h>
75 #include <contrib/dev/acpica/compiler/asltypes.h>
76 #include <contrib/dev/acpica/compiler/aslmessages.h>
77 #include <contrib/dev/acpica/compiler/aslglobal.h>
78
79
80 /*******************************************************************************
81  *
82  * Compiler prototypes
83  *
84  ******************************************************************************/
85
86 /*
87  * parser - generated from flex/bison, lex/yacc, etc.
88  */
89 int
90 AslCompilerparse(
91     void);
92
93 ACPI_PARSE_OBJECT *
94 AslDoError (
95     void);
96
97 int
98 AslCompilerlex(
99     void);
100
101 void
102 ResetCurrentLineBuffer (
103     void);
104
105 void
106 InsertLineBuffer (
107     int                     SourceChar);
108
109 int
110 AslPopInputFileStack (
111     void);
112
113 void
114 AslPushInputFileStack (
115     FILE                    *InputFile,
116     char                    *Filename);
117
118 /*
119  * aslstartup - entered from main()
120  */
121 void
122 AslInitializeGlobals (
123     void);
124
125 typedef
126 ACPI_STATUS (*ASL_PATHNAME_CALLBACK) (
127     char *);
128
129 ACPI_STATUS
130 AslDoOnePathname (
131     char                    *Pathname,
132     ASL_PATHNAME_CALLBACK   Callback);
133
134 ACPI_STATUS
135 AslDoOneFile (
136     char                    *Filename);
137
138 /*
139  * aslcompile - compile mainline
140  */
141 void
142 AslCompilerSignon (
143     UINT32                  FileId);
144
145 void
146 AslCompilerFileHeader (
147     UINT32                  FileId);
148
149 int
150 CmDoCompile (
151     void);
152
153 void
154 CmDoOutputFiles (
155     void);
156
157 void
158 CmCleanupAndExit (
159     void);
160
161 ACPI_STATUS
162 FlCheckForAscii (
163     ASL_FILE_INFO           *FileInfo);
164
165
166 /*
167  * aslwalks - semantic analysis and parse tree walks
168  */
169 ACPI_STATUS
170 AnOtherSemanticAnalysisWalkBegin (
171     ACPI_PARSE_OBJECT       *Op,
172     UINT32                  Level,
173     void                    *Context);
174
175 ACPI_STATUS
176 AnOtherSemanticAnalysisWalkEnd (
177     ACPI_PARSE_OBJECT       *Op,
178     UINT32                  Level,
179     void                    *Context);
180
181 ACPI_STATUS
182 AnOperandTypecheckWalkEnd (
183     ACPI_PARSE_OBJECT       *Op,
184     UINT32                  Level,
185     void                    *Context);
186
187 ACPI_STATUS
188 AnMethodAnalysisWalkBegin (
189     ACPI_PARSE_OBJECT       *Op,
190     UINT32                  Level,
191     void                    *Context);
192
193 ACPI_STATUS
194 AnMethodAnalysisWalkEnd (
195     ACPI_PARSE_OBJECT       *Op,
196     UINT32                  Level,
197     void                    *Context);
198
199 ACPI_STATUS
200 AnMethodTypingWalkEnd (
201     ACPI_PARSE_OBJECT       *Op,
202     UINT32                  Level,
203     void                    *Context);
204
205
206 /*
207  * aslbtypes - bitfield data types
208  */
209 UINT32
210 AnMapObjTypeToBtype (
211     ACPI_PARSE_OBJECT       *Op);
212
213 UINT32
214 AnMapArgTypeToBtype (
215     UINT32                  ArgType);
216
217 UINT32
218 AnGetBtype (
219     ACPI_PARSE_OBJECT       *Op);
220
221 void
222 AnFormatBtype (
223     char                    *Buffer,
224     UINT32                  Btype);
225
226
227 /*
228  * aslanalyze - Support functions for parse tree walks
229  */
230 void
231 AnCheckId (
232     ACPI_PARSE_OBJECT       *Op,
233     ACPI_NAME               Type);
234
235 /* Values for Type argument above */
236
237 #define ASL_TYPE_HID        0
238 #define ASL_TYPE_CID        1
239
240 BOOLEAN
241 AnIsInternalMethod (
242     ACPI_PARSE_OBJECT       *Op);
243
244 UINT32
245 AnGetInternalMethodReturnType (
246     ACPI_PARSE_OBJECT       *Op);
247
248 BOOLEAN
249 AnLastStatementIsReturn (
250     ACPI_PARSE_OBJECT       *Op);
251
252 void
253 AnCheckMethodReturnValue (
254     ACPI_PARSE_OBJECT       *Op,
255     const ACPI_OPCODE_INFO  *OpInfo,
256     ACPI_PARSE_OBJECT       *ArgOp,
257     UINT32                  RequiredBtypes,
258     UINT32                  ThisNodeBtype);
259
260 BOOLEAN
261 AnIsResultUsed (
262     ACPI_PARSE_OBJECT       *Op);
263
264 void
265 ApCheckForGpeNameConflict (
266     ACPI_PARSE_OBJECT       *Op);
267
268 void
269 ApCheckRegMethod (
270     ACPI_PARSE_OBJECT       *Op);
271
272
273 /*
274  * aslerror - error handling/reporting
275  */
276 void
277 AslError (
278     UINT8                   Level,
279     UINT8                   MessageId,
280     ACPI_PARSE_OBJECT       *Op,
281     char                    *ExtraMessage);
282
283 void
284 AslCoreSubsystemError (
285     ACPI_PARSE_OBJECT       *Op,
286     ACPI_STATUS             Status,
287     char                    *ExtraMessage,
288     BOOLEAN                 Abort);
289
290 int
291 AslCompilererror(
292     char                    *s);
293
294 void
295 AslCommonError (
296     UINT8                   Level,
297     UINT8                   MessageId,
298     UINT32                  CurrentLineNumber,
299     UINT32                  LogicalLineNumber,
300     UINT32                  LogicalByteOffset,
301     UINT32                  Column,
302     char                    *Filename,
303     char                    *ExtraMessage);
304
305 void
306 AePrintException (
307     UINT32                  FileId,
308     ASL_ERROR_MSG           *Enode,
309     char                    *Header);
310
311 void
312 AePrintErrorLog (
313     UINT32                  FileId);
314
315 void
316 AeClearErrorLog (
317     void);
318
319 ACPI_PHYSICAL_ADDRESS
320 AeLocalGetRootPointer (
321     void);
322
323
324 /*
325  * asllisting - generate all "listing" type files
326  */
327 void
328 LsDoListings (
329     void);
330
331 void
332 LsWriteNodeToAsmListing (
333     ACPI_PARSE_OBJECT       *Op);
334
335 void
336 LsWriteNode (
337     ACPI_PARSE_OBJECT       *Op,
338     UINT32                  FileId);
339
340 void
341 LsDoHexOutput (
342     void);
343
344 void
345 LsDumpParseTree (
346     void);
347
348 /*
349  * aslfold - constant folding
350  */
351 ACPI_STATUS
352 OpcAmlConstantWalk (
353     ACPI_PARSE_OBJECT       *Op,
354     UINT32                  Level,
355     void                    *Context);
356
357
358 /*
359  * aslopcodes - generate AML opcodes
360  */
361 ACPI_STATUS
362 OpcAmlOpcodeWalk (
363     ACPI_PARSE_OBJECT       *Op,
364     UINT32                  Level,
365     void                    *Context);
366
367 ACPI_STATUS
368 OpcAmlOpcodeUpdateWalk (
369     ACPI_PARSE_OBJECT       *Op,
370     UINT32                  Level,
371     void                    *Context);
372
373 void
374 OpcGenerateAmlOpcode (
375     ACPI_PARSE_OBJECT       *Op);
376
377 UINT32
378 OpcSetOptimalIntegerSize (
379     ACPI_PARSE_OBJECT       *Op);
380
381 void
382 OpcGetIntegerWidth (
383     ACPI_PARSE_OBJECT       *Op);
384
385
386 /*
387  * asloperands - generate AML operands for the AML opcodes
388  */
389 ACPI_PARSE_OBJECT  *
390 UtGetArg (
391     ACPI_PARSE_OBJECT       *Op,
392     UINT32                  Argn);
393
394 void
395 OpnGenerateAmlOperands (
396     ACPI_PARSE_OBJECT       *Op);
397
398 void
399 OpnDoPackage (
400     ACPI_PARSE_OBJECT       *Op);
401
402
403 /*
404  * aslopt - optmization
405  */
406 void
407 OptOptimizeNamePath (
408     ACPI_PARSE_OBJECT       *Op,
409     UINT32                  Flags,
410     ACPI_WALK_STATE         *WalkState,
411     char                    *AmlNameString,
412     ACPI_NAMESPACE_NODE     *TargetNode);
413
414
415 /*
416  * aslcodegen - code generation
417  */
418 void
419 CgGenerateAmlOutput (
420     void);
421
422
423 /*
424  * aslfile
425  */
426 void
427 FlOpenFile (
428     UINT32                  FileId,
429     char                    *Filename,
430     char                    *Mode);
431
432
433 /*
434  * asllength - calculate/adjust AML package lengths
435  */
436 ACPI_STATUS
437 LnPackageLengthWalk (
438     ACPI_PARSE_OBJECT       *Op,
439     UINT32                  Level,
440     void                    *Context);
441
442 ACPI_STATUS
443 LnInitLengthsWalk (
444     ACPI_PARSE_OBJECT       *Op,
445     UINT32                  Level,
446     void                    *Context);
447
448 void
449 CgGenerateAmlLengths (
450     ACPI_PARSE_OBJECT       *Op);
451
452
453 /*
454  * aslmap - opcode mappings and reserved method names
455  */
456 ACPI_OBJECT_TYPE
457 AslMapNamedOpcodeToDataType (
458     UINT16                  Opcode);
459
460
461 /*
462  * aslpredef - ACPI predefined names support
463  */
464 BOOLEAN
465 ApCheckForPredefinedMethod (
466     ACPI_PARSE_OBJECT       *Op,
467     ASL_METHOD_INFO         *MethodInfo);
468
469 void
470 ApCheckPredefinedReturnValue (
471     ACPI_PARSE_OBJECT       *Op,
472     ASL_METHOD_INFO         *MethodInfo);
473
474 UINT32
475 ApCheckForPredefinedName (
476     ACPI_PARSE_OBJECT       *Op,
477     char                    *Name);
478
479 void
480 ApCheckForPredefinedObject (
481     ACPI_PARSE_OBJECT       *Op,
482     char                    *Name);
483
484 void
485 ApDisplayReservedNames (
486     void);
487
488
489 /*
490  * asltransform - parse tree transformations
491  */
492 ACPI_STATUS
493 TrAmlTransformWalk (
494     ACPI_PARSE_OBJECT       *Op,
495     UINT32                  Level,
496     void                    *Context);
497
498
499 /*
500  * asltree - parse tree support
501  */
502 ACPI_STATUS
503 TrWalkParseTree (
504     ACPI_PARSE_OBJECT       *Op,
505     UINT32                  Visitation,
506     ASL_WALK_CALLBACK       DescendingCallback,
507     ASL_WALK_CALLBACK       AscendingCallback,
508     void                    *Context);
509
510 /* Values for "Visitation" parameter above */
511
512 #define ASL_WALK_VISIT_DOWNWARD     0x01
513 #define ASL_WALK_VISIT_UPWARD       0x02
514 #define ASL_WALK_VISIT_TWICE        (ASL_WALK_VISIT_DOWNWARD | ASL_WALK_VISIT_UPWARD)
515
516
517 ACPI_PARSE_OBJECT *
518 TrAllocateNode (
519     UINT32                  ParseOpcode);
520
521 void
522 TrReleaseNode (
523     ACPI_PARSE_OBJECT       *Op);
524
525 ACPI_PARSE_OBJECT *
526 TrUpdateNode (
527     UINT32                  ParseOpcode,
528     ACPI_PARSE_OBJECT       *Op);
529
530 ACPI_PARSE_OBJECT *
531 TrCreateNode (
532     UINT32                  ParseOpcode,
533     UINT32                  NumChildren,
534     ...);
535
536 ACPI_PARSE_OBJECT *
537 TrCreateLeafNode (
538     UINT32                  ParseOpcode);
539
540 ACPI_PARSE_OBJECT *
541 TrCreateValuedLeafNode (
542     UINT32                  ParseOpcode,
543     UINT64                  Value);
544
545 ACPI_PARSE_OBJECT *
546 TrCreateConstantLeafNode (
547     UINT32                  ParseOpcode);
548
549 ACPI_PARSE_OBJECT *
550 TrLinkChildren (
551     ACPI_PARSE_OBJECT       *Op,
552     UINT32                  NumChildren,
553     ...);
554
555 void
556 TrSetEndLineNumber (
557     ACPI_PARSE_OBJECT       *Op);
558
559 void
560 TrWalkTree (
561     void);
562
563 ACPI_PARSE_OBJECT *
564 TrLinkPeerNode (
565     ACPI_PARSE_OBJECT       *Op1,
566     ACPI_PARSE_OBJECT       *Op2);
567
568 ACPI_PARSE_OBJECT *
569 TrLinkChildNode (
570     ACPI_PARSE_OBJECT       *Op1,
571     ACPI_PARSE_OBJECT       *Op2);
572
573 ACPI_PARSE_OBJECT *
574 TrSetNodeFlags (
575     ACPI_PARSE_OBJECT       *Op,
576     UINT32                  Flags);
577
578 ACPI_PARSE_OBJECT *
579 TrLinkPeerNodes (
580     UINT32                  NumPeers,
581     ...);
582
583
584 /*
585  * aslfiles - File I/O support
586  */
587 void
588 AslAbort (
589     void);
590
591 void
592 FlAddIncludeDirectory (
593     char                    *Dir);
594
595 void
596 FlOpenIncludeFile (
597     ACPI_PARSE_OBJECT       *Op);
598
599 void
600 FlFileError (
601     UINT32                  FileId,
602     UINT8                   ErrorId);
603
604 UINT32
605 FlGetFileSize (
606     UINT32                  FileId);
607
608 ACPI_STATUS
609 FlReadFile (
610     UINT32                  FileId,
611     void                    *Buffer,
612     UINT32                  Length);
613
614 void
615 FlWriteFile (
616     UINT32                  FileId,
617     void                    *Buffer,
618     UINT32                  Length);
619
620 void
621 FlSeekFile (
622     UINT32                  FileId,
623     long                    Offset);
624
625 void
626 FlCloseFile (
627     UINT32                  FileId);
628
629 void
630 FlPrintFile (
631     UINT32                  FileId,
632     char                    *Format,
633     ...);
634
635 void
636 FlSetLineNumber (
637     ACPI_PARSE_OBJECT       *Op);
638
639 ACPI_STATUS
640 FlOpenInputFile (
641     char                    *InputFilename);
642
643 ACPI_STATUS
644 FlOpenAmlOutputFile (
645     char                    *InputFilename);
646
647 ACPI_STATUS
648 FlOpenMiscOutputFiles (
649     char                    *InputFilename);
650
651
652 /*
653  * asload - load namespace in prep for cross reference
654  */
655 ACPI_STATUS
656 LdLoadNamespace (
657     ACPI_PARSE_OBJECT       *RootOp);
658
659
660 /*
661  * asllookup - namespace cross reference
662  */
663 ACPI_STATUS
664 LkCrossReferenceNamespace (
665     void);
666
667 void
668 LkFindUnreferencedObjects (
669     void);
670
671 ACPI_STATUS
672 LsDisplayNamespace (
673     void);
674
675 void
676 LsSetupNsList (
677     void                    *Handle);
678
679
680 /*
681  * aslutils - common compiler utilites
682  */
683 void
684 DbgPrint (
685     UINT32                  Type,
686     char                    *Format,
687     ...);
688
689 /* Type values for above */
690
691 #define ASL_DEBUG_OUTPUT    0
692 #define ASL_PARSE_OUTPUT    1
693 #define ASL_TREE_OUTPUT     2
694
695 void
696 UtDisplaySupportedTables (
697     void);
698
699 void
700 UtDisplayConstantOpcodes (
701     void);
702
703 UINT8
704 UtBeginEvent (
705     char                    *Name);
706
707 void
708 UtEndEvent (
709     UINT8                   Event);
710
711 void *
712 UtLocalCalloc (
713     UINT32                  Size);
714
715 void
716 UtPrintFormattedName (
717     UINT16                  ParseOpcode,
718     UINT32                  Level);
719
720 void
721 UtDisplaySummary (
722     UINT32                  FileId);
723
724 UINT8
725 UtHexCharToValue (
726     int                     HexChar);
727
728 void
729 UtConvertByteToHex (
730     UINT8                   RawByte,
731     UINT8                   *Buffer);
732
733 void
734 UtConvertByteToAsmHex (
735     UINT8                   RawByte,
736     UINT8                   *Buffer);
737
738 char *
739 UtGetOpName (
740     UINT32                  ParseOpcode);
741
742 void
743 UtSetParseOpName (
744     ACPI_PARSE_OBJECT       *Op);
745
746 char *
747 UtGetStringBuffer (
748     UINT32                  Length);
749
750 ACPI_STATUS
751 UtInternalizeName (
752     char                    *ExternalName,
753     char                    **ConvertedName);
754
755 void
756 UtAttachNamepathToOwner (
757     ACPI_PARSE_OBJECT       *Op,
758     ACPI_PARSE_OBJECT       *NameNode);
759
760 ACPI_PARSE_OBJECT *
761 UtCheckIntegerRange (
762     ACPI_PARSE_OBJECT       *Op,
763     UINT32                  LowValue,
764     UINT32                  HighValue);
765
766 UINT64
767 UtDoConstant (
768     char                    *String);
769
770 ACPI_STATUS
771 UtStrtoul64 (
772     char                    *String,
773     UINT32                  Base,
774     UINT64                  *RetInteger);
775
776
777 /*
778  * asluuid - UUID support
779  */
780 ACPI_STATUS
781 AuValidateUuid (
782     char                    *InString);
783
784 ACPI_STATUS
785 AuConvertStringToUuid (
786     char                    *InString,
787     char                    *UuIdBuffer);
788
789 ACPI_STATUS
790 AuConvertUuidToString (
791     char                    *UuIdBuffer,
792     char                    *OutString);
793
794 /*
795  * aslresource - Resource template generation utilities
796  */
797 void
798 RsSmallAddressCheck (
799     UINT8                   Type,
800     UINT32                  Minimum,
801     UINT32                  Maximum,
802     UINT32                  Length,
803     UINT32                  Alignment,
804     ACPI_PARSE_OBJECT       *MinOp,
805     ACPI_PARSE_OBJECT       *MaxOp,
806     ACPI_PARSE_OBJECT       *LengthOp,
807     ACPI_PARSE_OBJECT       *AlignOp,
808     ACPI_PARSE_OBJECT       *Op);
809
810 void
811 RsLargeAddressCheck (
812     UINT64                  Minimum,
813     UINT64                  Maximum,
814     UINT64                  Length,
815     UINT64                  Granularity,
816     UINT8                   Flags,
817     ACPI_PARSE_OBJECT       *MinOp,
818     ACPI_PARSE_OBJECT       *MaxOp,
819     ACPI_PARSE_OBJECT       *LengthOp,
820     ACPI_PARSE_OBJECT       *GranOp,
821     ACPI_PARSE_OBJECT       *Op);
822
823 UINT16
824 RsGetStringDataLength (
825     ACPI_PARSE_OBJECT       *InitializerOp);
826
827 ASL_RESOURCE_NODE *
828 RsAllocateResourceNode (
829     UINT32                  Size);
830
831 void
832 RsCreateBitField (
833     ACPI_PARSE_OBJECT       *Op,
834     char                    *Name,
835     UINT32                  ByteOffset,
836     UINT32                  BitOffset);
837
838 void
839 RsCreateByteField (
840     ACPI_PARSE_OBJECT       *Op,
841     char                    *Name,
842     UINT32                  ByteOffset);
843
844 void
845 RsSetFlagBits (
846     UINT8                   *Flags,
847     ACPI_PARSE_OBJECT       *Op,
848     UINT8                   Position,
849     UINT8                   DefaultBit);
850
851 ACPI_PARSE_OBJECT *
852 RsCompleteNodeAndGetNext (
853     ACPI_PARSE_OBJECT       *Op);
854
855 void
856 RsCheckListForDuplicates (
857     ACPI_PARSE_OBJECT       *Op);
858
859 ASL_RESOURCE_NODE *
860 RsDoOneResourceDescriptor (
861     ACPI_PARSE_OBJECT       *DescriptorTypeOp,
862     UINT32                  CurrentByteOffset,
863     UINT8                   *State);
864
865 /* Values for State above */
866
867 #define ACPI_RSTATE_NORMAL              0
868 #define ACPI_RSTATE_START_DEPENDENT     1
869 #define ACPI_RSTATE_DEPENDENT_LIST      2
870
871 UINT32
872 RsLinkDescriptorChain (
873     ASL_RESOURCE_NODE       **PreviousRnode,
874     ASL_RESOURCE_NODE       *Rnode);
875
876 void
877 RsDoResourceTemplate (
878     ACPI_PARSE_OBJECT       *Op);
879
880
881 /*
882  * aslrestype1 - Miscellaneous Small descriptors
883  */
884 ASL_RESOURCE_NODE *
885 RsDoEndTagDescriptor (
886     ACPI_PARSE_OBJECT       *Op,
887     UINT32                  CurrentByteOffset);
888
889 ASL_RESOURCE_NODE *
890 RsDoEndDependentDescriptor (
891     ACPI_PARSE_OBJECT       *Op,
892     UINT32                  CurrentByteOffset);
893
894 ASL_RESOURCE_NODE *
895 RsDoMemory24Descriptor (
896     ACPI_PARSE_OBJECT       *Op,
897     UINT32                  CurrentByteOffset);
898
899 ASL_RESOURCE_NODE *
900 RsDoMemory32Descriptor (
901     ACPI_PARSE_OBJECT       *Op,
902     UINT32                  CurrentByteOffset);
903
904 ASL_RESOURCE_NODE *
905 RsDoMemory32FixedDescriptor (
906     ACPI_PARSE_OBJECT       *Op,
907     UINT32                  CurrentByteOffset);
908
909 ASL_RESOURCE_NODE *
910 RsDoStartDependentDescriptor (
911     ACPI_PARSE_OBJECT       *Op,
912     UINT32                  CurrentByteOffset);
913
914 ASL_RESOURCE_NODE *
915 RsDoStartDependentNoPriDescriptor (
916     ACPI_PARSE_OBJECT       *Op,
917     UINT32                  CurrentByteOffset);
918
919 ASL_RESOURCE_NODE *
920 RsDoVendorSmallDescriptor (
921     ACPI_PARSE_OBJECT       *Op,
922     UINT32                  CurrentByteOffset);
923
924
925 /*
926  * aslrestype1i - I/O-related Small descriptors
927  */
928 ASL_RESOURCE_NODE *
929 RsDoDmaDescriptor (
930     ACPI_PARSE_OBJECT       *Op,
931     UINT32                  CurrentByteOffset);
932
933 ASL_RESOURCE_NODE *
934 RsDoFixedIoDescriptor (
935     ACPI_PARSE_OBJECT       *Op,
936     UINT32                  CurrentByteOffset);
937
938 ASL_RESOURCE_NODE *
939 RsDoIoDescriptor (
940     ACPI_PARSE_OBJECT       *Op,
941     UINT32                  CurrentByteOffset);
942
943 ASL_RESOURCE_NODE *
944 RsDoIrqDescriptor (
945     ACPI_PARSE_OBJECT       *Op,
946     UINT32                  CurrentByteOffset);
947
948 ASL_RESOURCE_NODE *
949 RsDoIrqNoFlagsDescriptor (
950     ACPI_PARSE_OBJECT       *Op,
951     UINT32                  CurrentByteOffset);
952
953
954 /*
955  * aslrestype2 - Large resource descriptors
956  */
957 ASL_RESOURCE_NODE *
958 RsDoInterruptDescriptor (
959     ACPI_PARSE_OBJECT       *Op,
960     UINT32                  CurrentByteOffset);
961
962 ASL_RESOURCE_NODE *
963 RsDoVendorLargeDescriptor (
964     ACPI_PARSE_OBJECT       *Op,
965     UINT32                  CurrentByteOffset);
966
967 ASL_RESOURCE_NODE *
968 RsDoGeneralRegisterDescriptor (
969     ACPI_PARSE_OBJECT       *Op,
970     UINT32                  CurrentByteOffset);
971
972
973 /*
974  * aslrestype2d - DWord address descriptors
975  */
976 ASL_RESOURCE_NODE *
977 RsDoDwordIoDescriptor (
978     ACPI_PARSE_OBJECT       *Op,
979     UINT32                  CurrentByteOffset);
980
981 ASL_RESOURCE_NODE *
982 RsDoDwordMemoryDescriptor (
983     ACPI_PARSE_OBJECT       *Op,
984     UINT32                  CurrentByteOffset);
985
986 ASL_RESOURCE_NODE *
987 RsDoDwordSpaceDescriptor (
988     ACPI_PARSE_OBJECT       *Op,
989     UINT32                  CurrentByteOffset);
990
991
992 /*
993  * aslrestype2e - Extended address descriptors
994  */
995 ASL_RESOURCE_NODE *
996 RsDoExtendedIoDescriptor (
997     ACPI_PARSE_OBJECT       *Op,
998     UINT32                  CurrentByteOffset);
999
1000 ASL_RESOURCE_NODE *
1001 RsDoExtendedMemoryDescriptor (
1002     ACPI_PARSE_OBJECT       *Op,
1003     UINT32                  CurrentByteOffset);
1004
1005 ASL_RESOURCE_NODE *
1006 RsDoExtendedSpaceDescriptor (
1007     ACPI_PARSE_OBJECT       *Op,
1008     UINT32                  CurrentByteOffset);
1009
1010
1011 /*
1012  * aslrestype2q - QWord address descriptors
1013  */
1014 ASL_RESOURCE_NODE *
1015 RsDoQwordIoDescriptor (
1016     ACPI_PARSE_OBJECT       *Op,
1017     UINT32                  CurrentByteOffset);
1018
1019 ASL_RESOURCE_NODE *
1020 RsDoQwordMemoryDescriptor (
1021     ACPI_PARSE_OBJECT       *Op,
1022     UINT32                  CurrentByteOffset);
1023
1024 ASL_RESOURCE_NODE *
1025 RsDoQwordSpaceDescriptor (
1026     ACPI_PARSE_OBJECT       *Op,
1027     UINT32                  CurrentByteOffset);
1028
1029
1030 /*
1031  * aslrestype2w - Word address descriptors
1032  */
1033 ASL_RESOURCE_NODE *
1034 RsDoWordIoDescriptor (
1035     ACPI_PARSE_OBJECT       *Op,
1036     UINT32                  CurrentByteOffset);
1037
1038 ASL_RESOURCE_NODE *
1039 RsDoWordSpaceDescriptor (
1040     ACPI_PARSE_OBJECT       *Op,
1041     UINT32                  CurrentByteOffset);
1042
1043 ASL_RESOURCE_NODE *
1044 RsDoWordBusNumberDescriptor (
1045     ACPI_PARSE_OBJECT       *Op,
1046     UINT32                  CurrentByteOffset);
1047
1048 /*
1049  * Entry to data table compiler subsystem
1050  */
1051 ACPI_STATUS
1052 DtDoCompile(
1053     void);
1054
1055 ACPI_STATUS
1056 DtCreateTemplates (
1057     char                    *Signature);
1058
1059 #endif /*  __ASLCOMPILER_H */
1060