xref: /freebsd/sys/contrib/dev/acpica/compiler/aslcompiler.h (revision 4f29da19bd44f0e99f021510460a81bf754c21d2)
1 
2 /******************************************************************************
3  *
4  * Module Name: aslcompiler.h - common include file for iASL
5  *              $Revision: 1.142 $
6  *
7  *****************************************************************************/
8 
9 /******************************************************************************
10  *
11  * 1. Copyright Notice
12  *
13  * Some or all of this work - Copyright (c) 1999 - 2005, Intel Corp.
14  * All rights reserved.
15  *
16  * 2. License
17  *
18  * 2.1. This is your license from Intel Corp. under its intellectual property
19  * rights.  You may have additional license terms from the party that provided
20  * you this software, covering your right to use that party's intellectual
21  * property rights.
22  *
23  * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
24  * copy of the source code appearing in this file ("Covered Code") an
25  * irrevocable, perpetual, worldwide license under Intel's copyrights in the
26  * base code distributed originally by Intel ("Original Intel Code") to copy,
27  * make derivatives, distribute, use and display any portion of the Covered
28  * Code in any form, with the right to sublicense such rights; and
29  *
30  * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
31  * license (with the right to sublicense), under only those claims of Intel
32  * patents that are infringed by the Original Intel Code, to make, use, sell,
33  * offer to sell, and import the Covered Code and derivative works thereof
34  * solely to the minimum extent necessary to exercise the above copyright
35  * license, and in no event shall the patent license extend to any additions
36  * to or modifications of the Original Intel Code.  No other license or right
37  * is granted directly or by implication, estoppel or otherwise;
38  *
39  * The above copyright and patent license is granted only if the following
40  * conditions are met:
41  *
42  * 3. Conditions
43  *
44  * 3.1. Redistribution of Source with Rights to Further Distribute Source.
45  * Redistribution of source code of any substantial portion of the Covered
46  * Code or modification with rights to further distribute source must include
47  * the above Copyright Notice, the above License, this list of Conditions,
48  * and the following Disclaimer and Export Compliance provision.  In addition,
49  * Licensee must cause all Covered Code to which Licensee contributes to
50  * contain a file documenting the changes Licensee made to create that Covered
51  * Code and the date of any change.  Licensee must include in that file the
52  * documentation of any changes made by any predecessor Licensee.  Licensee
53  * must include a prominent statement that the modification is derived,
54  * directly or indirectly, from Original Intel Code.
55  *
56  * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
57  * Redistribution of source code of any substantial portion of the Covered
58  * Code or modification without rights to further distribute source must
59  * include the following Disclaimer and Export Compliance provision in the
60  * documentation and/or other materials provided with distribution.  In
61  * addition, Licensee may not authorize further sublicense of source of any
62  * portion of the Covered Code, and must include terms to the effect that the
63  * license from Licensee to its licensee is limited to the intellectual
64  * property embodied in the software Licensee provides to its licensee, and
65  * not to intellectual property embodied in modifications its licensee may
66  * make.
67  *
68  * 3.3. Redistribution of Executable. Redistribution in executable form of any
69  * substantial portion of the Covered Code or modification must reproduce the
70  * above Copyright Notice, and the following Disclaimer and Export Compliance
71  * provision in the documentation and/or other materials provided with the
72  * distribution.
73  *
74  * 3.4. Intel retains all right, title, and interest in and to the Original
75  * Intel Code.
76  *
77  * 3.5. Neither the name Intel nor any other trademark owned or controlled by
78  * Intel shall be used in advertising or otherwise to promote the sale, use or
79  * other dealings in products derived from or relating to the Covered Code
80  * without prior written authorization from Intel.
81  *
82  * 4. Disclaimer and Export Compliance
83  *
84  * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
85  * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
86  * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
87  * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
88  * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
89  * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
90  * PARTICULAR PURPOSE.
91  *
92  * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
93  * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
94  * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
95  * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
96  * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
97  * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
98  * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
99  * LIMITED REMEDY.
100  *
101  * 4.3. Licensee shall not export, either directly or indirectly, any of this
102  * software or system incorporating such software without first obtaining any
103  * required license or other approval from the U. S. Department of Commerce or
104  * any other agency or department of the United States Government.  In the
105  * event Licensee exports any such software from the United States or
106  * re-exports any such software from a foreign destination, Licensee shall
107  * ensure that the distribution and export/re-export of the software is in
108  * compliance with all laws, regulations, orders, or other restrictions of the
109  * U.S. Export Administration Regulations. Licensee agrees that neither it nor
110  * any of its subsidiaries will export/re-export any technical data, process,
111  * software, or service, directly or indirectly, to any country for which the
112  * United States government or any agency thereof requires an export license,
113  * other governmental approval, or letter of assurance, without first obtaining
114  * such license, approval or letter.
115  *
116  *****************************************************************************/
117 
118 
119 #ifndef __ASLCOMPILER_H
120 #define __ASLCOMPILER_H
121 
122 
123 /* Microsoft-specific */
124 
125 #if (defined WIN32 || defined WIN64)
126 
127 /* warn : used #pragma pack */
128 #pragma warning(disable:4103)
129 
130 /* warn : named type definition in parentheses */
131 #pragma warning(disable:4115)
132 #endif
133 
134 #include <stdio.h>
135 #include <stdlib.h>
136 #include <stdarg.h>
137 #include <string.h>
138 #include <errno.h>
139 #include <ctype.h>
140 
141 
142 #include <contrib/dev/acpica/acpi.h>
143 #include <contrib/dev/acpica/amlresrc.h>
144 #include <contrib/dev/acpica/acdebug.h>
145 
146 /* Compiler headers */
147 
148 #include <contrib/dev/acpica/compiler/asldefine.h>
149 #include <contrib/dev/acpica/compiler/asltypes.h>
150 #include <contrib/dev/acpica/compiler/aslglobal.h>
151 
152 
153 /*******************************************************************************
154  *
155  * Compiler prototypes
156  *
157  ******************************************************************************/
158 
159 /*
160  * parser - generated from flex/bison, lex/yacc, etc.
161  */
162 int
163 AslCompilerparse(
164     void);
165 
166 ACPI_PARSE_OBJECT *
167 AslDoError (
168     void);
169 
170 int
171 AslCompilerlex(
172     void);
173 
174 void
175 ResetCurrentLineBuffer (
176     void);
177 
178 void
179 InsertLineBuffer (
180     int                     SourceChar);
181 
182 int
183 AslPopInputFileStack (
184     void);
185 
186 void
187 AslPushInputFileStack (
188     FILE                    *InputFile,
189     char                    *Filename);
190 
191 
192 /*
193  * aslcompile - compile mainline
194  */
195 void
196 AslCompilerSignon (
197     UINT32                  FileId);
198 
199 void
200 AslCompilerFileHeader (
201     UINT32                  FileId);
202 
203 int
204 CmDoCompile (
205     void);
206 
207 void
208 CmDoOutputFiles (
209     void);
210 
211 void
212 CmCleanupAndExit (
213     void);
214 
215 
216 /*
217  * aslanalyze - semantic analysis
218  */
219 ACPI_STATUS
220 AnOtherSemanticAnalysisWalkBegin (
221     ACPI_PARSE_OBJECT       *Op,
222     UINT32                  Level,
223     void                    *Context);
224 
225 ACPI_STATUS
226 AnOtherSemanticAnalysisWalkEnd (
227     ACPI_PARSE_OBJECT       *Op,
228     UINT32                  Level,
229     void                    *Context);
230 
231 ACPI_STATUS
232 AnOperandTypecheckWalkBegin (
233     ACPI_PARSE_OBJECT       *Op,
234     UINT32                  Level,
235     void                    *Context);
236 
237 ACPI_STATUS
238 AnOperandTypecheckWalkEnd (
239     ACPI_PARSE_OBJECT       *Op,
240     UINT32                  Level,
241     void                    *Context);
242 
243 ACPI_STATUS
244 AnMethodAnalysisWalkBegin (
245     ACPI_PARSE_OBJECT       *Op,
246     UINT32                  Level,
247     void                    *Context);
248 
249 ACPI_STATUS
250 AnMethodAnalysisWalkEnd (
251     ACPI_PARSE_OBJECT       *Op,
252     UINT32                  Level,
253     void                    *Context);
254 
255 ACPI_STATUS
256 AnMethodTypingWalkBegin (
257     ACPI_PARSE_OBJECT       *Op,
258     UINT32                  Level,
259     void                    *Context);
260 
261 ACPI_STATUS
262 AnMethodTypingWalkEnd (
263     ACPI_PARSE_OBJECT       *Op,
264     UINT32                  Level,
265     void                    *Context);
266 
267 
268 /*
269  * aslerror - error handling/reporting
270  */
271 void
272 AslError (
273     UINT8                   Level,
274     UINT8                   MessageId,
275     ACPI_PARSE_OBJECT       *Op,
276     char                    *ExtraMessage);
277 
278 void
279 AslCoreSubsystemError (
280     ACPI_PARSE_OBJECT       *Op,
281     ACPI_STATUS             Status,
282     char                    *ExtraMessage,
283     BOOLEAN                 Abort);
284 
285 int
286 AslCompilererror(
287     char                    *s);
288 
289 void
290 AslCommonError (
291     UINT8                   Level,
292     UINT8                   MessageId,
293     UINT32                  CurrentLineNumber,
294     UINT32                  LogicalLineNumber,
295     UINT32                  LogicalByteOffset,
296     UINT32                  Column,
297     char                    *Filename,
298     char                    *ExtraMessage);
299 
300 void
301 AePrintException (
302     UINT32                  FileId,
303     ASL_ERROR_MSG           *Enode,
304     char                    *Header);
305 
306 void
307 AePrintErrorLog (
308     UINT32                  FileId);
309 
310 ACPI_STATUS
311 AeLocalGetRootPointer (
312     UINT32                  Flags,
313     ACPI_PHYSICAL_ADDRESS   *RsdpPhysicalAddress);
314 
315 
316 /*
317  * asllisting - generate all "listing" type files
318  */
319 void
320 LsDoListings (
321     void);
322 
323 void
324 LsWriteNodeToAsmListing (
325     ACPI_PARSE_OBJECT       *Op);
326 
327 void
328 LsWriteNode (
329     ACPI_PARSE_OBJECT       *Op,
330     UINT32                  FileId);
331 
332 void
333 LsDoHexOutput (
334     void);
335 
336 
337 /*
338  * aslfold - constant folding
339  */
340 ACPI_STATUS
341 OpcAmlConstantWalk (
342     ACPI_PARSE_OBJECT       *Op,
343     UINT32                  Level,
344     void                    *Context);
345 
346 
347 /*
348  * aslopcodes - generate AML opcodes
349  */
350 ACPI_STATUS
351 OpcAmlOpcodeWalk (
352     ACPI_PARSE_OBJECT       *Op,
353     UINT32                  Level,
354     void                    *Context);
355 
356 ACPI_STATUS
357 OpcAmlOpcodeUpdateWalk (
358     ACPI_PARSE_OBJECT       *Op,
359     UINT32                  Level,
360     void                    *Context);
361 
362 void
363 OpcGenerateAmlOpcode (
364     ACPI_PARSE_OBJECT       *Op);
365 
366 UINT32
367 OpcSetOptimalIntegerSize (
368     ACPI_PARSE_OBJECT       *Op);
369 
370 void
371 OpcGetIntegerWidth (
372     ACPI_PARSE_OBJECT       *Op);
373 
374 
375 /*
376  * asloperands - generate AML operands for the AML opcodes
377  */
378 ACPI_PARSE_OBJECT  *
379 UtGetArg (
380     ACPI_PARSE_OBJECT       *Op,
381     UINT32                  Argn);
382 
383 void
384 OpnGenerateAmlOperands (
385     ACPI_PARSE_OBJECT       *Op);
386 
387 void
388 OpnDoPackage (
389     ACPI_PARSE_OBJECT       *Op);
390 
391 
392 /*
393  * aslopt - optmization
394  */
395 void
396 OptOptimizeNamePath (
397     ACPI_PARSE_OBJECT       *Op,
398     UINT32                  Flags,
399     ACPI_WALK_STATE         *WalkState,
400     char                    *AmlNameString,
401     ACPI_NAMESPACE_NODE     *TargetNode);
402 
403 
404 /*
405  * aslcodegen - code generation
406  */
407 void
408 CgGenerateAmlOutput (
409     void);
410 
411 
412 /*
413  * asllength - calculate/adjust AML package lengths
414  */
415 ACPI_STATUS
416 LnPackageLengthWalk (
417     ACPI_PARSE_OBJECT       *Op,
418     UINT32                  Level,
419     void                    *Context);
420 
421 ACPI_STATUS
422 LnInitLengthsWalk (
423     ACPI_PARSE_OBJECT       *Op,
424     UINT32                  Level,
425     void                    *Context);
426 
427 void
428 CgGenerateAmlLengths (
429     ACPI_PARSE_OBJECT       *Op);
430 
431 
432 /*
433  * aslmap - opcode mappings and reserved method names
434  */
435 ACPI_OBJECT_TYPE
436 AslMapNamedOpcodeToDataType (
437     UINT16                  Opcode);
438 
439 void
440 MpDisplayReservedNames (
441     void);
442 
443 
444 /*
445  * asltransform - parse tree transformations
446  */
447 ACPI_STATUS
448 TrAmlTransformWalk (
449     ACPI_PARSE_OBJECT       *Op,
450     UINT32                  Level,
451     void                    *Context);
452 
453 
454 /*
455  * asltree - parse tree support
456  */
457 ACPI_STATUS
458 TrWalkParseTree (
459     ACPI_PARSE_OBJECT       *Op,
460     UINT32                  Visitation,
461     ASL_WALK_CALLBACK       DescendingCallback,
462     ASL_WALK_CALLBACK       AscendingCallback,
463     void                    *Context);
464 
465 /* Values for "Visitation" parameter above */
466 
467 #define ASL_WALK_VISIT_DOWNWARD     0x01
468 #define ASL_WALK_VISIT_UPWARD       0x02
469 #define ASL_WALK_VISIT_TWICE        (ASL_WALK_VISIT_DOWNWARD | ASL_WALK_VISIT_UPWARD)
470 
471 
472 ACPI_PARSE_OBJECT *
473 TrAllocateNode (
474     UINT32                  ParseOpcode);
475 
476 void
477 TrReleaseNode (
478     ACPI_PARSE_OBJECT       *Op);
479 
480 ACPI_PARSE_OBJECT *
481 TrUpdateNode (
482     UINT32                  ParseOpcode,
483     ACPI_PARSE_OBJECT       *Op);
484 
485 ACPI_PARSE_OBJECT *
486 TrCreateNode (
487     UINT32                  ParseOpcode,
488     UINT32                  NumChildren,
489     ...);
490 
491 ACPI_PARSE_OBJECT *
492 TrCreateLeafNode (
493     UINT32                  ParseOpcode);
494 
495 ACPI_PARSE_OBJECT *
496 TrCreateValuedLeafNode (
497     UINT32                  ParseOpcode,
498     ACPI_INTEGER            Value);
499 
500 ACPI_PARSE_OBJECT *
501 TrLinkChildren (
502     ACPI_PARSE_OBJECT       *Op,
503     UINT32                  NumChildren,
504     ...);
505 
506 void
507 TrSetEndLineNumber (
508     ACPI_PARSE_OBJECT       *Op);
509 
510 void
511 TrWalkTree (
512     void);
513 
514 ACPI_PARSE_OBJECT *
515 TrLinkPeerNode (
516     ACPI_PARSE_OBJECT       *Op1,
517     ACPI_PARSE_OBJECT       *Op2);
518 
519 ACPI_PARSE_OBJECT *
520 TrLinkChildNode (
521     ACPI_PARSE_OBJECT       *Op1,
522     ACPI_PARSE_OBJECT       *Op2);
523 
524 ACPI_PARSE_OBJECT *
525 TrSetNodeFlags (
526     ACPI_PARSE_OBJECT       *Op,
527     UINT32                  Flags);
528 
529 ACPI_PARSE_OBJECT *
530 TrLinkPeerNodes (
531     UINT32                  NumPeers,
532     ...);
533 
534 
535 /*
536  * aslfiles - File I/O support
537  */
538 void
539 AslAbort (
540     void);
541 
542 void
543 FlOpenIncludeFile (
544     ACPI_PARSE_OBJECT       *Op);
545 
546 void
547 FlFileError (
548     UINT32                  FileId,
549     UINT8                   ErrorId);
550 
551 ACPI_STATUS
552 FlReadFile (
553     UINT32                  FileId,
554     void                    *Buffer,
555     UINT32                  Length);
556 
557 void
558 FlWriteFile (
559     UINT32                  FileId,
560     void                    *Buffer,
561     UINT32                  Length);
562 
563 void
564 FlSeekFile (
565     UINT32                  FileId,
566     long                    Offset);
567 
568 void
569 FlCloseFile (
570     UINT32                  FileId);
571 
572 void
573 FlPrintFile (
574     UINT32                  FileId,
575     char                    *Format,
576     ...);
577 
578 void
579 FlSetLineNumber (
580     ACPI_PARSE_OBJECT       *Op);
581 
582 ACPI_STATUS
583 FlOpenInputFile (
584     char                    *InputFilename);
585 
586 ACPI_STATUS
587 FlOpenAmlOutputFile (
588     char                    *InputFilename);
589 
590 ACPI_STATUS
591 FlOpenMiscOutputFiles (
592     char                    *InputFilename);
593 
594 
595 /*
596  * asload - load namespace in prep for cross reference
597  */
598 ACPI_STATUS
599 LdLoadNamespace (
600     ACPI_PARSE_OBJECT       *RootOp);
601 
602 
603 /*
604  * asllookup - namespace cross reference
605  */
606 ACPI_STATUS
607 LkCrossReferenceNamespace (
608     void);
609 
610 ACPI_STATUS
611 LsDisplayNamespace (
612     void);
613 
614 
615 /*
616  * aslutils - common compiler utilites
617  */
618 void
619 DbgPrint (
620     UINT32                  Type,
621     char                    *Format,
622     ...);
623 
624 /* Type values for above */
625 
626 #define ASL_DEBUG_OUTPUT    0
627 #define ASL_PARSE_OUTPUT    1
628 #define ASL_TREE_OUTPUT     2
629 
630 void
631 UtDisplayConstantOpcodes (
632     void);
633 
634 UINT8
635 UtBeginEvent (
636     char                    *Name);
637 
638 void
639 UtEndEvent (
640     UINT8                   Event);
641 
642 void *
643 UtLocalCalloc (
644     UINT32                  Size);
645 
646 void
647 UtPrintFormattedName (
648     UINT16                  ParseOpcode,
649     UINT32                  Level);
650 
651 void
652 UtDisplaySummary (
653     UINT32                  FileId);
654 
655 UINT8
656 UtHexCharToValue (
657     int                     HexChar);
658 
659 void
660 UtConvertByteToHex (
661     UINT8                   RawByte,
662     UINT8                   *Buffer);
663 
664 void
665 UtConvertByteToAsmHex (
666     UINT8                   RawByte,
667     UINT8                   *Buffer);
668 
669 char *
670 UtGetOpName (
671     UINT32                  ParseOpcode);
672 
673 void
674 UtSetParseOpName (
675     ACPI_PARSE_OBJECT       *Op);
676 
677 char *
678 UtGetStringBuffer (
679     UINT32                  Length);
680 
681 ACPI_STATUS
682 UtInternalizeName (
683     char                    *ExternalName,
684     char                    **ConvertedName);
685 
686 void
687 UtAttachNamepathToOwner (
688     ACPI_PARSE_OBJECT       *Op,
689     ACPI_PARSE_OBJECT       *NameNode);
690 
691 ACPI_PARSE_OBJECT *
692 UtCheckIntegerRange (
693     ACPI_PARSE_OBJECT       *Op,
694     UINT32                  LowValue,
695     UINT32                  HighValue);
696 
697 ACPI_INTEGER
698 UtDoConstant (
699     char                    *String);
700 
701 
702 /*
703  * aslresource - Resource template generation utilities
704  */
705 ASL_RESOURCE_NODE *
706 RsAllocateResourceNode (
707     UINT32                  Size);
708 
709 void
710 RsCreateBitField (
711     ACPI_PARSE_OBJECT       *Op,
712     char                    *Name,
713     UINT32                  ByteOffset,
714     UINT32                  BitOffset);
715 
716 void
717 RsCreateByteField (
718     ACPI_PARSE_OBJECT       *Op,
719     char                    *Name,
720     UINT32                  ByteOffset);
721 
722 void
723 RsSetFlagBits (
724     UINT8                   *Flags,
725     ACPI_PARSE_OBJECT       *Op,
726     UINT8                   Position,
727     UINT8                   DefaultBit);
728 
729 ACPI_PARSE_OBJECT *
730 RsCompleteNodeAndGetNext (
731     ACPI_PARSE_OBJECT       *Op);
732 
733 void
734 RsCheckListForDuplicates (
735     ACPI_PARSE_OBJECT       *Op);
736 
737 ASL_RESOURCE_NODE *
738 RsDoOneResourceDescriptor (
739     ACPI_PARSE_OBJECT       *DescriptorTypeOp,
740     UINT32                  CurrentByteOffset,
741     UINT8                   *State);
742 
743 /* Values for State above */
744 
745 #define ACPI_RSTATE_NORMAL              0
746 #define ACPI_RSTATE_START_DEPENDENT     1
747 #define ACPI_RSTATE_DEPENDENT_LIST      2
748 
749 UINT32
750 RsLinkDescriptorChain (
751     ASL_RESOURCE_NODE       **PreviousRnode,
752     ASL_RESOURCE_NODE       *Rnode);
753 
754 void
755 RsDoResourceTemplate (
756     ACPI_PARSE_OBJECT       *Op);
757 
758 
759 /*
760  * aslrestype1 - generate Small descriptors
761  */
762 ASL_RESOURCE_NODE *
763 RsDoDmaDescriptor (
764     ACPI_PARSE_OBJECT       *Op,
765     UINT32                  CurrentByteOffset);
766 
767 ASL_RESOURCE_NODE *
768 RsDoEndDependentDescriptor (
769     ACPI_PARSE_OBJECT       *Op,
770     UINT32                  CurrentByteOffset);
771 
772 ASL_RESOURCE_NODE *
773 RsDoFixedIoDescriptor (
774     ACPI_PARSE_OBJECT       *Op,
775     UINT32                  CurrentByteOffset);
776 
777 ASL_RESOURCE_NODE *
778 RsDoIoDescriptor (
779     ACPI_PARSE_OBJECT       *Op,
780     UINT32                  CurrentByteOffset);
781 
782 ASL_RESOURCE_NODE *
783 RsDoIrqDescriptor (
784     ACPI_PARSE_OBJECT       *Op,
785     UINT32                  CurrentByteOffset);
786 
787 ASL_RESOURCE_NODE *
788 RsDoIrqNoFlagsDescriptor (
789     ACPI_PARSE_OBJECT       *Op,
790     UINT32                  CurrentByteOffset);
791 
792 ASL_RESOURCE_NODE *
793 RsDoMemory24Descriptor (
794     ACPI_PARSE_OBJECT       *Op,
795     UINT32                  CurrentByteOffset);
796 
797 ASL_RESOURCE_NODE *
798 RsDoMemory32Descriptor (
799     ACPI_PARSE_OBJECT       *Op,
800     UINT32                  CurrentByteOffset);
801 
802 ASL_RESOURCE_NODE *
803 RsDoMemory32FixedDescriptor (
804     ACPI_PARSE_OBJECT       *Op,
805     UINT32                  CurrentByteOffset);
806 
807 ASL_RESOURCE_NODE *
808 RsDoStartDependentDescriptor (
809     ACPI_PARSE_OBJECT       *Op,
810     UINT32                  CurrentByteOffset);
811 
812 ASL_RESOURCE_NODE *
813 RsDoStartDependentNoPriDescriptor (
814     ACPI_PARSE_OBJECT       *Op,
815     UINT32                  CurrentByteOffset);
816 
817 ASL_RESOURCE_NODE *
818 RsDoVendorSmallDescriptor (
819     ACPI_PARSE_OBJECT       *Op,
820     UINT32                  CurrentByteOffset);
821 
822 
823 /*
824  * aslrestype2 - generate Large descriptors
825  */
826 ASL_RESOURCE_NODE *
827 RsDoInterruptDescriptor (
828     ACPI_PARSE_OBJECT       *Op,
829     UINT32                  CurrentByteOffset);
830 
831 ASL_RESOURCE_NODE *
832 RsDoDwordIoDescriptor (
833     ACPI_PARSE_OBJECT       *Op,
834     UINT32                  CurrentByteOffset);
835 
836 ASL_RESOURCE_NODE *
837 RsDoDwordMemoryDescriptor (
838     ACPI_PARSE_OBJECT       *Op,
839     UINT32                  CurrentByteOffset);
840 
841 ASL_RESOURCE_NODE *
842 RsDoDwordSpaceDescriptor (
843     ACPI_PARSE_OBJECT       *Op,
844     UINT32                  CurrentByteOffset);
845 
846 ASL_RESOURCE_NODE *
847 RsDoExtendedIoDescriptor (
848     ACPI_PARSE_OBJECT       *Op,
849     UINT32                  CurrentByteOffset);
850 
851 ASL_RESOURCE_NODE *
852 RsDoExtendedMemoryDescriptor (
853     ACPI_PARSE_OBJECT       *Op,
854     UINT32                  CurrentByteOffset);
855 
856 ASL_RESOURCE_NODE *
857 RsDoExtendedSpaceDescriptor (
858     ACPI_PARSE_OBJECT       *Op,
859     UINT32                  CurrentByteOffset);
860 
861 ASL_RESOURCE_NODE *
862 RsDoQwordIoDescriptor (
863     ACPI_PARSE_OBJECT       *Op,
864     UINT32                  CurrentByteOffset);
865 
866 ASL_RESOURCE_NODE *
867 RsDoQwordMemoryDescriptor (
868     ACPI_PARSE_OBJECT       *Op,
869     UINT32                  CurrentByteOffset);
870 
871 ASL_RESOURCE_NODE *
872 RsDoQwordSpaceDescriptor (
873     ACPI_PARSE_OBJECT       *Op,
874     UINT32                  CurrentByteOffset);
875 
876 ASL_RESOURCE_NODE *
877 RsDoWordIoDescriptor (
878     ACPI_PARSE_OBJECT       *Op,
879     UINT32                  CurrentByteOffset);
880 
881 ASL_RESOURCE_NODE *
882 RsDoWordSpaceDescriptor (
883     ACPI_PARSE_OBJECT       *Op,
884     UINT32                  CurrentByteOffset);
885 
886 ASL_RESOURCE_NODE *
887 RsDoWordBusNumberDescriptor (
888     ACPI_PARSE_OBJECT       *Op,
889     UINT32                  CurrentByteOffset);
890 
891 ASL_RESOURCE_NODE *
892 RsDoVendorLargeDescriptor (
893     ACPI_PARSE_OBJECT       *Op,
894     UINT32                  CurrentByteOffset);
895 
896 ASL_RESOURCE_NODE *
897 RsDoGeneralRegisterDescriptor (
898     ACPI_PARSE_OBJECT       *Op,
899     UINT32                  CurrentByteOffset);
900 
901 #endif /*  __ASLCOMPILER_H */
902 
903