Deleted Added
full compact
1
2/******************************************************************************
3 *
4 * Module Name: aslcompiler.h - common include file for iASL
5 *
6 *****************************************************************************/
7
8/*
9 * Copyright (C) 2000 - 2012, 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#include <contrib/dev/acpica/compiler/preprocess.h>
79
80
81/*******************************************************************************
82 *
83 * Compiler prototypes
84 *
85 ******************************************************************************/
86
87/*
88 * Main ASL parser - generated from flex/bison, lex/yacc, etc.
89 */
90int
91AslCompilerparse(
92 void);
93
94ACPI_PARSE_OBJECT *
95AslDoError (
96 void);
97
98int
99AslCompilerlex(
100 void);
101
102void
103AslResetCurrentLineBuffer (
104 void);
105
106void
107AslInsertLineBuffer (
108 int SourceChar);
109
110int
111AslPopInputFileStack (
112 void);
113
114void
115AslPushInputFileStack (
116 FILE *InputFile,
117 char *Filename);
118
119/*
120 * aslstartup - entered from main()
121 */
122void
123AslInitializeGlobals (
124 void);
125
126typedef
127ACPI_STATUS (*ASL_PATHNAME_CALLBACK) (
128 char *);
129
130ACPI_STATUS
131AslDoOnePathname (
132 char *Pathname,
133 ASL_PATHNAME_CALLBACK Callback);
134
135ACPI_STATUS
136AslDoOneFile (
137 char *Filename);
138
139ACPI_STATUS
140AslCheckForErrorExit (
141 void);
142
143
144/*
145 * aslcompile - compile mainline
146 */
147void
148AslCompilerSignon (
149 UINT32 FileId);
150
151void
152AslCompilerFileHeader (
153 UINT32 FileId);
154
155int
156CmDoCompile (
157 void);
158
159void
160CmDoOutputFiles (
161 void);
162
163void
164CmCleanupAndExit (
165 void);
166
167ACPI_STATUS
168FlCheckForAscii (
169 FILE *Handle,
170 char *Filename,
171 BOOLEAN DisplayErrors);
172
173
174/*
175 * aslwalks - semantic analysis and parse tree walks
176 */
177ACPI_STATUS
178AnOtherSemanticAnalysisWalkBegin (
179 ACPI_PARSE_OBJECT *Op,
180 UINT32 Level,
181 void *Context);
182
183ACPI_STATUS
184AnOtherSemanticAnalysisWalkEnd (
185 ACPI_PARSE_OBJECT *Op,
186 UINT32 Level,
187 void *Context);
188
189ACPI_STATUS
190AnOperandTypecheckWalkEnd (
191 ACPI_PARSE_OBJECT *Op,
192 UINT32 Level,
193 void *Context);
194
195ACPI_STATUS
196AnMethodAnalysisWalkBegin (
197 ACPI_PARSE_OBJECT *Op,
198 UINT32 Level,
199 void *Context);
200
201ACPI_STATUS
202AnMethodAnalysisWalkEnd (
203 ACPI_PARSE_OBJECT *Op,
204 UINT32 Level,
205 void *Context);
206
207ACPI_STATUS
208AnMethodTypingWalkEnd (
209 ACPI_PARSE_OBJECT *Op,
210 UINT32 Level,
211 void *Context);
212
213
214/*
215 * aslbtypes - bitfield data types
216 */
217UINT32
218AnMapObjTypeToBtype (
219 ACPI_PARSE_OBJECT *Op);
220
221UINT32
222AnMapArgTypeToBtype (
223 UINT32 ArgType);
224
225UINT32
226AnGetBtype (
227 ACPI_PARSE_OBJECT *Op);
228
229void
230AnFormatBtype (
231 char *Buffer,
232 UINT32 Btype);
233
234
235/*
236 * aslanalyze - Support functions for parse tree walks
237 */
238void
239AnCheckId (
240 ACPI_PARSE_OBJECT *Op,
241 ACPI_NAME Type);
242
243/* Values for Type argument above */
244
245#define ASL_TYPE_HID 0
246#define ASL_TYPE_CID 1
247
248BOOLEAN
249AnIsInternalMethod (
250 ACPI_PARSE_OBJECT *Op);
251
252UINT32
253AnGetInternalMethodReturnType (
254 ACPI_PARSE_OBJECT *Op);
255
256BOOLEAN
257AnLastStatementIsReturn (
258 ACPI_PARSE_OBJECT *Op);
259
260void
261AnCheckMethodReturnValue (
262 ACPI_PARSE_OBJECT *Op,
263 const ACPI_OPCODE_INFO *OpInfo,
264 ACPI_PARSE_OBJECT *ArgOp,
265 UINT32 RequiredBtypes,
266 UINT32 ThisNodeBtype);
267
268BOOLEAN
269AnIsResultUsed (
270 ACPI_PARSE_OBJECT *Op);
271
272void
273ApCheckForGpeNameConflict (
274 ACPI_PARSE_OBJECT *Op);
275
276void
277ApCheckRegMethod (
278 ACPI_PARSE_OBJECT *Op);
279
280
281/*
282 * aslerror - error handling/reporting
283 */
284void
285AslError (
286 UINT8 Level,
287 UINT8 MessageId,
288 ACPI_PARSE_OBJECT *Op,
289 char *ExtraMessage);
290
291void
292AslCoreSubsystemError (
293 ACPI_PARSE_OBJECT *Op,
294 ACPI_STATUS Status,
295 char *ExtraMessage,
296 BOOLEAN Abort);
297
298int
299AslCompilererror(
300 const char *s);
301
302void
303AslCommonError (
304 UINT8 Level,
305 UINT8 MessageId,
306 UINT32 CurrentLineNumber,
307 UINT32 LogicalLineNumber,
308 UINT32 LogicalByteOffset,
309 UINT32 Column,
310 char *Filename,
311 char *ExtraMessage);
312
313void
314AslCommonError2 (
315 UINT8 Level,
316 UINT8 MessageId,
317 UINT32 LineNumber,
318 UINT32 Column,
319 char *SourceLine,
320 char *Filename,
321 char *ExtraMessage);
322
323void
324AePrintException (
325 UINT32 FileId,
326 ASL_ERROR_MSG *Enode,
327 char *Header);
328
329void
330AePrintErrorLog (
331 UINT32 FileId);
332
333void
334AeClearErrorLog (
335 void);
336
337ACPI_PHYSICAL_ADDRESS
338AeLocalGetRootPointer (
339 void);
340
341
342/*
343 * asllisting - generate all "listing" type files
344 */
345void
346LsDoListings (
347 void);
348
349void
350LsWriteNodeToAsmListing (
351 ACPI_PARSE_OBJECT *Op);
352
353void
354LsWriteNode (
355 ACPI_PARSE_OBJECT *Op,
356 UINT32 FileId);
357
358void
359LsDoHexOutput (
360 void);
361
362void
363LsDumpParseTree (
364 void);
365
366/*
367 * aslfold - constant folding
368 */
369ACPI_STATUS
370OpcAmlConstantWalk (
371 ACPI_PARSE_OBJECT *Op,
372 UINT32 Level,
373 void *Context);
374
375
376/*
377 * aslopcodes - generate AML opcodes
378 */
379ACPI_STATUS
380OpcAmlOpcodeWalk (
381 ACPI_PARSE_OBJECT *Op,
382 UINT32 Level,
383 void *Context);
384
385ACPI_STATUS
386OpcAmlOpcodeUpdateWalk (
387 ACPI_PARSE_OBJECT *Op,
388 UINT32 Level,
389 void *Context);
390
391void
392OpcGenerateAmlOpcode (
393 ACPI_PARSE_OBJECT *Op);
394
395UINT32
396OpcSetOptimalIntegerSize (
397 ACPI_PARSE_OBJECT *Op);
398
399void
400OpcGetIntegerWidth (
401 ACPI_PARSE_OBJECT *Op);
402
403
404/*
405 * asloperands - generate AML operands for the AML opcodes
406 */
407ACPI_PARSE_OBJECT *
408UtGetArg (
409 ACPI_PARSE_OBJECT *Op,
410 UINT32 Argn);
411
412void
413OpnGenerateAmlOperands (
414 ACPI_PARSE_OBJECT *Op);
415
416void
417OpnDoPackage (
418 ACPI_PARSE_OBJECT *Op);
419
420
421/*
422 * aslopt - optmization
423 */
424void
425OptOptimizeNamePath (
426 ACPI_PARSE_OBJECT *Op,
427 UINT32 Flags,
428 ACPI_WALK_STATE *WalkState,
429 char *AmlNameString,
430 ACPI_NAMESPACE_NODE *TargetNode);
431
432
433/*
434 * aslcodegen - code generation
435 */
436void
437CgGenerateAmlOutput (
438 void);
439
440
441/*
442 * aslfile
443 */
444void
445FlOpenFile (
446 UINT32 FileId,
447 char *Filename,
448 char *Mode);
449
450
451/*
452 * asllength - calculate/adjust AML package lengths
453 */
454ACPI_STATUS
455LnPackageLengthWalk (
456 ACPI_PARSE_OBJECT *Op,
457 UINT32 Level,
458 void *Context);
459
460ACPI_STATUS
461LnInitLengthsWalk (
462 ACPI_PARSE_OBJECT *Op,
463 UINT32 Level,
464 void *Context);
465
466void
467CgGenerateAmlLengths (
468 ACPI_PARSE_OBJECT *Op);
469
470
471/*
472 * aslmap - opcode mappings and reserved method names
473 */
474ACPI_OBJECT_TYPE
475AslMapNamedOpcodeToDataType (
476 UINT16 Opcode);
477
478
479/*
480 * aslpredef - ACPI predefined names support
481 */
482BOOLEAN
483ApCheckForPredefinedMethod (
484 ACPI_PARSE_OBJECT *Op,
485 ASL_METHOD_INFO *MethodInfo);
486
487void
488ApCheckPredefinedReturnValue (
489 ACPI_PARSE_OBJECT *Op,
490 ASL_METHOD_INFO *MethodInfo);
491
492UINT32
493ApCheckForPredefinedName (
494 ACPI_PARSE_OBJECT *Op,
495 char *Name);
496
497void
498ApCheckForPredefinedObject (
499 ACPI_PARSE_OBJECT *Op,
500 char *Name);
501
502void
503ApDisplayReservedNames (
504 void);
505
506
507/*
508 * asltransform - parse tree transformations
509 */
510ACPI_STATUS
511TrAmlTransformWalk (
512 ACPI_PARSE_OBJECT *Op,
513 UINT32 Level,
514 void *Context);
515
516
517/*
518 * asltree - parse tree support
519 */
520ACPI_STATUS
521TrWalkParseTree (
522 ACPI_PARSE_OBJECT *Op,
523 UINT32 Visitation,
524 ASL_WALK_CALLBACK DescendingCallback,
525 ASL_WALK_CALLBACK AscendingCallback,
526 void *Context);
527
528/* Values for "Visitation" parameter above */
529
530#define ASL_WALK_VISIT_DOWNWARD 0x01
531#define ASL_WALK_VISIT_UPWARD 0x02
532#define ASL_WALK_VISIT_TWICE (ASL_WALK_VISIT_DOWNWARD | ASL_WALK_VISIT_UPWARD)
533
534
535ACPI_PARSE_OBJECT *
536TrAllocateNode (
537 UINT32 ParseOpcode);
538
539void
540TrReleaseNode (
541 ACPI_PARSE_OBJECT *Op);
542
543ACPI_PARSE_OBJECT *
544TrUpdateNode (
545 UINT32 ParseOpcode,
546 ACPI_PARSE_OBJECT *Op);
547
548ACPI_PARSE_OBJECT *
549TrCreateNode (
550 UINT32 ParseOpcode,
551 UINT32 NumChildren,
552 ...);
553
554ACPI_PARSE_OBJECT *
555TrCreateLeafNode (
556 UINT32 ParseOpcode);
557
558ACPI_PARSE_OBJECT *
559TrCreateValuedLeafNode (
560 UINT32 ParseOpcode,
561 UINT64 Value);
562
563ACPI_PARSE_OBJECT *
564TrCreateConstantLeafNode (
565 UINT32 ParseOpcode);
566
567ACPI_PARSE_OBJECT *
568TrLinkChildren (
569 ACPI_PARSE_OBJECT *Op,
570 UINT32 NumChildren,
571 ...);
572
573void
574TrSetEndLineNumber (
575 ACPI_PARSE_OBJECT *Op);
576
577void
578TrWalkTree (
579 void);
580
581ACPI_PARSE_OBJECT *
582TrLinkPeerNode (
583 ACPI_PARSE_OBJECT *Op1,
584 ACPI_PARSE_OBJECT *Op2);
585
586ACPI_PARSE_OBJECT *
587TrLinkChildNode (
588 ACPI_PARSE_OBJECT *Op1,
589 ACPI_PARSE_OBJECT *Op2);
590
591ACPI_PARSE_OBJECT *
592TrSetNodeFlags (
593 ACPI_PARSE_OBJECT *Op,
594 UINT32 Flags);
595
596ACPI_PARSE_OBJECT *
597TrSetNodeAmlLength (
598 ACPI_PARSE_OBJECT *Op,
599 UINT32 Length);
600
601ACPI_PARSE_OBJECT *
602TrLinkPeerNodes (
603 UINT32 NumPeers,
604 ...);
605
606
607/*
608 * aslfiles - File I/O support
609 */
610void
611AslAbort (
612 void);
613
614void
615FlAddIncludeDirectory (
616 char *Dir);
617
618char *
619FlMergePathnames (
620 char *PrefixDir,
621 char *FilePathname);
622
623void
624FlOpenIncludeFile (
625 ACPI_PARSE_OBJECT *Op);
626
627void
628FlFileError (
629 UINT32 FileId,
630 UINT8 ErrorId);
631
632UINT32
633FlGetFileSize (
634 UINT32 FileId);
635
636ACPI_STATUS
637FlReadFile (
638 UINT32 FileId,
639 void *Buffer,
640 UINT32 Length);
641
642void
643FlWriteFile (
644 UINT32 FileId,
645 void *Buffer,
646 UINT32 Length);
647
648void
649FlSeekFile (
650 UINT32 FileId,
651 long Offset);
652
653void
654FlCloseFile (
655 UINT32 FileId);
656
657void
658FlPrintFile (
659 UINT32 FileId,
660 char *Format,
661 ...);
662
663void
664FlSetLineNumber (
665 UINT32 LineNumber);
666
667void
668FlSetFilename (
669 char *Filename);
670
671ACPI_STATUS
672FlOpenInputFile (
673 char *InputFilename);
674
675ACPI_STATUS
676FlOpenAmlOutputFile (
677 char *InputFilename);
678
679ACPI_STATUS
680FlOpenMiscOutputFiles (
681 char *InputFilename);
682
683
684/*
685 * asload - load namespace in prep for cross reference
686 */
687ACPI_STATUS
688LdLoadNamespace (
689 ACPI_PARSE_OBJECT *RootOp);
690
691
692/*
693 * asllookup - namespace cross reference
694 */
695ACPI_STATUS
696LkCrossReferenceNamespace (
697 void);
698
699void
700LkFindUnreferencedObjects (
701 void);
702
703ACPI_STATUS
704LsDisplayNamespace (
705 void);
706
707void
708LsSetupNsList (
709 void *Handle);
710
711
712/*
713 * aslutils - common compiler utilites
714 */
715void
716DbgPrint (
717 UINT32 Type,
718 char *Format,
719 ...);
720
721/* Type values for above */
722
723#define ASL_DEBUG_OUTPUT 0
724#define ASL_PARSE_OUTPUT 1
725#define ASL_TREE_OUTPUT 2
726
727void
728UtDisplaySupportedTables (
729 void);
730
731void
732UtDisplayConstantOpcodes (
733 void);
734
735UINT8
736UtBeginEvent (
737 char *Name);
738
739void
740UtEndEvent (
741 UINT8 Event);
742
743void *
744UtLocalCalloc (
745 UINT32 Size);
746
747void
748UtPrintFormattedName (
749 UINT16 ParseOpcode,
750 UINT32 Level);
751
752void
753UtDisplaySummary (
754 UINT32 FileId);
755
756UINT8
757UtHexCharToValue (
758 int HexChar);
759
760void
761UtConvertByteToHex (
762 UINT8 RawByte,
763 UINT8 *Buffer);
764
765void
766UtConvertByteToAsmHex (
767 UINT8 RawByte,
768 UINT8 *Buffer);
769
770char *
771UtGetOpName (
772 UINT32 ParseOpcode);
773
774void
775UtSetParseOpName (
776 ACPI_PARSE_OBJECT *Op);
777
778char *
779UtGetStringBuffer (
780 UINT32 Length);
781
782ACPI_STATUS
783UtInternalizeName (
784 char *ExternalName,
785 char **ConvertedName);
786
787void
788UtAttachNamepathToOwner (
789 ACPI_PARSE_OBJECT *Op,
790 ACPI_PARSE_OBJECT *NameNode);
791
792ACPI_PARSE_OBJECT *
793UtCheckIntegerRange (
794 ACPI_PARSE_OBJECT *Op,
795 UINT32 LowValue,
796 UINT32 HighValue);
797
798UINT64
799UtDoConstant (
800 char *String);
801
802ACPI_STATUS
803UtStrtoul64 (
804 char *String,
805 UINT32 Base,
806 UINT64 *RetInteger);
807
808
809/*
810 * asluuid - UUID support
811 */
812ACPI_STATUS
813AuValidateUuid (
814 char *InString);
815
816ACPI_STATUS
817AuConvertStringToUuid (
818 char *InString,
819 char *UuIdBuffer);
820
821ACPI_STATUS
822AuConvertUuidToString (
823 char *UuIdBuffer,
824 char *OutString);
825
826/*
827 * aslresource - Resource template generation utilities
828 */
829void
830RsSmallAddressCheck (
831 UINT8 Type,
832 UINT32 Minimum,
833 UINT32 Maximum,
834 UINT32 Length,
835 UINT32 Alignment,
836 ACPI_PARSE_OBJECT *MinOp,
837 ACPI_PARSE_OBJECT *MaxOp,
838 ACPI_PARSE_OBJECT *LengthOp,
839 ACPI_PARSE_OBJECT *AlignOp,
840 ACPI_PARSE_OBJECT *Op);
841
842void
843RsLargeAddressCheck (
844 UINT64 Minimum,
845 UINT64 Maximum,
846 UINT64 Length,
847 UINT64 Granularity,
848 UINT8 Flags,
849 ACPI_PARSE_OBJECT *MinOp,
850 ACPI_PARSE_OBJECT *MaxOp,
851 ACPI_PARSE_OBJECT *LengthOp,
852 ACPI_PARSE_OBJECT *GranOp,
853 ACPI_PARSE_OBJECT *Op);
854
855UINT16
856RsGetStringDataLength (
857 ACPI_PARSE_OBJECT *InitializerOp);
858
859ASL_RESOURCE_NODE *
860RsAllocateResourceNode (
861 UINT32 Size);
862
863void
864RsCreateResourceField (
865 ACPI_PARSE_OBJECT *Op,
866 char *Name,
867 UINT32 ByteOffset,
868 UINT32 BitOffset,
869 UINT32 BitLength);
870
871void
872RsSetFlagBits (
873 UINT8 *Flags,
874 ACPI_PARSE_OBJECT *Op,
875 UINT8 Position,
876 UINT8 DefaultBit);
877
878void
879RsSetFlagBits16 (
880 UINT16 *Flags,
881 ACPI_PARSE_OBJECT *Op,
882 UINT8 Position,
883 UINT8 DefaultBit);
884
885ACPI_PARSE_OBJECT *
886RsCompleteNodeAndGetNext (
887 ACPI_PARSE_OBJECT *Op);
888
889void
890RsCheckListForDuplicates (
891 ACPI_PARSE_OBJECT *Op);
892
893ASL_RESOURCE_NODE *
894RsDoOneResourceDescriptor (
895 ACPI_PARSE_OBJECT *DescriptorTypeOp,
896 UINT32 CurrentByteOffset,
897 UINT8 *State);
898
899/* Values for State above */
900
901#define ACPI_RSTATE_NORMAL 0
902#define ACPI_RSTATE_START_DEPENDENT 1
903#define ACPI_RSTATE_DEPENDENT_LIST 2
904
905UINT32
906RsLinkDescriptorChain (
907 ASL_RESOURCE_NODE **PreviousRnode,
908 ASL_RESOURCE_NODE *Rnode);
909
910void
911RsDoResourceTemplate (
912 ACPI_PARSE_OBJECT *Op);
913
914
915/*
916 * aslrestype1 - Miscellaneous Small descriptors
917 */
918ASL_RESOURCE_NODE *
919RsDoEndTagDescriptor (
920 ACPI_PARSE_OBJECT *Op,
921 UINT32 CurrentByteOffset);
922
923ASL_RESOURCE_NODE *
924RsDoEndDependentDescriptor (
925 ACPI_PARSE_OBJECT *Op,
926 UINT32 CurrentByteOffset);
927
928ASL_RESOURCE_NODE *
929RsDoMemory24Descriptor (
930 ACPI_PARSE_OBJECT *Op,
931 UINT32 CurrentByteOffset);
932
933ASL_RESOURCE_NODE *
934RsDoMemory32Descriptor (
935 ACPI_PARSE_OBJECT *Op,
936 UINT32 CurrentByteOffset);
937
938ASL_RESOURCE_NODE *
939RsDoMemory32FixedDescriptor (
940 ACPI_PARSE_OBJECT *Op,
941 UINT32 CurrentByteOffset);
942
943ASL_RESOURCE_NODE *
944RsDoStartDependentDescriptor (
945 ACPI_PARSE_OBJECT *Op,
946 UINT32 CurrentByteOffset);
947
948ASL_RESOURCE_NODE *
949RsDoStartDependentNoPriDescriptor (
950 ACPI_PARSE_OBJECT *Op,
951 UINT32 CurrentByteOffset);
952
953ASL_RESOURCE_NODE *
954RsDoVendorSmallDescriptor (
955 ACPI_PARSE_OBJECT *Op,
956 UINT32 CurrentByteOffset);
957
958
959/*
960 * aslrestype1i - I/O-related Small descriptors
961 */
962ASL_RESOURCE_NODE *
963RsDoDmaDescriptor (
964 ACPI_PARSE_OBJECT *Op,
965 UINT32 CurrentByteOffset);
966
967ASL_RESOURCE_NODE *
968RsDoFixedDmaDescriptor (
969 ACPI_PARSE_OBJECT *Op,
970 UINT32 CurrentByteOffset);
971
972ASL_RESOURCE_NODE *
973RsDoFixedIoDescriptor (
974 ACPI_PARSE_OBJECT *Op,
975 UINT32 CurrentByteOffset);
976
977ASL_RESOURCE_NODE *
978RsDoIoDescriptor (
979 ACPI_PARSE_OBJECT *Op,
980 UINT32 CurrentByteOffset);
981
982ASL_RESOURCE_NODE *
983RsDoIrqDescriptor (
984 ACPI_PARSE_OBJECT *Op,
985 UINT32 CurrentByteOffset);
986
987ASL_RESOURCE_NODE *
988RsDoIrqNoFlagsDescriptor (
989 ACPI_PARSE_OBJECT *Op,
990 UINT32 CurrentByteOffset);
991
992
993/*
994 * aslrestype2 - Large resource descriptors
995 */
996ASL_RESOURCE_NODE *
997RsDoInterruptDescriptor (
998 ACPI_PARSE_OBJECT *Op,
999 UINT32 CurrentByteOffset);
1000
1001ASL_RESOURCE_NODE *
1002RsDoVendorLargeDescriptor (
1003 ACPI_PARSE_OBJECT *Op,
1004 UINT32 CurrentByteOffset);
1005
1006ASL_RESOURCE_NODE *
1007RsDoGeneralRegisterDescriptor (
1008 ACPI_PARSE_OBJECT *Op,
1009 UINT32 CurrentByteOffset);
1010
1011ASL_RESOURCE_NODE *
1012RsDoGpioIntDescriptor (
1013 ACPI_PARSE_OBJECT *Op,
1014 UINT32 CurrentByteOffset);
1015
1016ASL_RESOURCE_NODE *
1017RsDoGpioIoDescriptor (
1018 ACPI_PARSE_OBJECT *Op,
1019 UINT32 CurrentByteOffset);
1020
1021ASL_RESOURCE_NODE *
1022RsDoI2cSerialBusDescriptor (
1023 ACPI_PARSE_OBJECT *Op,
1024 UINT32 CurrentByteOffset);
1025
1026ASL_RESOURCE_NODE *
1027RsDoSpiSerialBusDescriptor (
1028 ACPI_PARSE_OBJECT *Op,
1029 UINT32 CurrentByteOffset);
1030
1031ASL_RESOURCE_NODE *
1032RsDoUartSerialBusDescriptor (
1033 ACPI_PARSE_OBJECT *Op,
1034 UINT32 CurrentByteOffset);
1035
1036/*
1037 * aslrestype2d - DWord address descriptors
1038 */
1039ASL_RESOURCE_NODE *
1040RsDoDwordIoDescriptor (
1041 ACPI_PARSE_OBJECT *Op,
1042 UINT32 CurrentByteOffset);
1043
1044ASL_RESOURCE_NODE *
1045RsDoDwordMemoryDescriptor (
1046 ACPI_PARSE_OBJECT *Op,
1047 UINT32 CurrentByteOffset);
1048
1049ASL_RESOURCE_NODE *
1050RsDoDwordSpaceDescriptor (
1051 ACPI_PARSE_OBJECT *Op,
1052 UINT32 CurrentByteOffset);
1053
1054
1055/*
1056 * aslrestype2e - Extended address descriptors
1057 */
1058ASL_RESOURCE_NODE *
1059RsDoExtendedIoDescriptor (
1060 ACPI_PARSE_OBJECT *Op,
1061 UINT32 CurrentByteOffset);
1062
1063ASL_RESOURCE_NODE *
1064RsDoExtendedMemoryDescriptor (
1065 ACPI_PARSE_OBJECT *Op,
1066 UINT32 CurrentByteOffset);
1067
1068ASL_RESOURCE_NODE *
1069RsDoExtendedSpaceDescriptor (
1070 ACPI_PARSE_OBJECT *Op,
1071 UINT32 CurrentByteOffset);
1072
1073
1074/*
1075 * aslrestype2q - QWord address descriptors
1076 */
1077ASL_RESOURCE_NODE *
1078RsDoQwordIoDescriptor (
1079 ACPI_PARSE_OBJECT *Op,
1080 UINT32 CurrentByteOffset);
1081
1082ASL_RESOURCE_NODE *
1083RsDoQwordMemoryDescriptor (
1084 ACPI_PARSE_OBJECT *Op,
1085 UINT32 CurrentByteOffset);
1086
1087ASL_RESOURCE_NODE *
1088RsDoQwordSpaceDescriptor (
1089 ACPI_PARSE_OBJECT *Op,
1090 UINT32 CurrentByteOffset);
1091
1092
1093/*
1094 * aslrestype2w - Word address descriptors
1095 */
1096ASL_RESOURCE_NODE *
1097RsDoWordIoDescriptor (
1098 ACPI_PARSE_OBJECT *Op,
1099 UINT32 CurrentByteOffset);
1100
1101ASL_RESOURCE_NODE *
1102RsDoWordSpaceDescriptor (
1103 ACPI_PARSE_OBJECT *Op,
1104 UINT32 CurrentByteOffset);
1105
1106ASL_RESOURCE_NODE *
1107RsDoWordBusNumberDescriptor (
1108 ACPI_PARSE_OBJECT *Op,
1109 UINT32 CurrentByteOffset);
1110
1111/*
1112 * Entry to data table compiler subsystem
1113 */
1114ACPI_STATUS
1115DtDoCompile(
1116 void);
1117
1118ACPI_STATUS
1119DtCreateTemplates (
1120 char *Signature);
1121
1122#endif /* __ASLCOMPILER_H */
1123