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 "acpi.h" 50 #include "accommon.h" 51 #include "amlresrc.h" 52 #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 "asldefine.h" 75 #include "asltypes.h" 76 #include "aslmessages.h" 77 #include "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 269 /* 270 * aslerror - error handling/reporting 271 */ 272 void 273 AslError ( 274 UINT8 Level, 275 UINT8 MessageId, 276 ACPI_PARSE_OBJECT *Op, 277 char *ExtraMessage); 278 279 void 280 AslCoreSubsystemError ( 281 ACPI_PARSE_OBJECT *Op, 282 ACPI_STATUS Status, 283 char *ExtraMessage, 284 BOOLEAN Abort); 285 286 int 287 AslCompilererror( 288 char *s); 289 290 void 291 AslCommonError ( 292 UINT8 Level, 293 UINT8 MessageId, 294 UINT32 CurrentLineNumber, 295 UINT32 LogicalLineNumber, 296 UINT32 LogicalByteOffset, 297 UINT32 Column, 298 char *Filename, 299 char *ExtraMessage); 300 301 void 302 AePrintException ( 303 UINT32 FileId, 304 ASL_ERROR_MSG *Enode, 305 char *Header); 306 307 void 308 AePrintErrorLog ( 309 UINT32 FileId); 310 311 void 312 AeClearErrorLog ( 313 void); 314 315 ACPI_PHYSICAL_ADDRESS 316 AeLocalGetRootPointer ( 317 void); 318 319 320 /* 321 * asllisting - generate all "listing" type files 322 */ 323 void 324 LsDoListings ( 325 void); 326 327 void 328 LsWriteNodeToAsmListing ( 329 ACPI_PARSE_OBJECT *Op); 330 331 void 332 LsWriteNode ( 333 ACPI_PARSE_OBJECT *Op, 334 UINT32 FileId); 335 336 void 337 LsDoHexOutput ( 338 void); 339 340 void 341 LsDumpParseTree ( 342 void); 343 344 /* 345 * aslfold - constant folding 346 */ 347 ACPI_STATUS 348 OpcAmlConstantWalk ( 349 ACPI_PARSE_OBJECT *Op, 350 UINT32 Level, 351 void *Context); 352 353 354 /* 355 * aslopcodes - generate AML opcodes 356 */ 357 ACPI_STATUS 358 OpcAmlOpcodeWalk ( 359 ACPI_PARSE_OBJECT *Op, 360 UINT32 Level, 361 void *Context); 362 363 ACPI_STATUS 364 OpcAmlOpcodeUpdateWalk ( 365 ACPI_PARSE_OBJECT *Op, 366 UINT32 Level, 367 void *Context); 368 369 void 370 OpcGenerateAmlOpcode ( 371 ACPI_PARSE_OBJECT *Op); 372 373 UINT32 374 OpcSetOptimalIntegerSize ( 375 ACPI_PARSE_OBJECT *Op); 376 377 void 378 OpcGetIntegerWidth ( 379 ACPI_PARSE_OBJECT *Op); 380 381 382 /* 383 * asloperands - generate AML operands for the AML opcodes 384 */ 385 ACPI_PARSE_OBJECT * 386 UtGetArg ( 387 ACPI_PARSE_OBJECT *Op, 388 UINT32 Argn); 389 390 void 391 OpnGenerateAmlOperands ( 392 ACPI_PARSE_OBJECT *Op); 393 394 void 395 OpnDoPackage ( 396 ACPI_PARSE_OBJECT *Op); 397 398 399 /* 400 * aslopt - optmization 401 */ 402 void 403 OptOptimizeNamePath ( 404 ACPI_PARSE_OBJECT *Op, 405 UINT32 Flags, 406 ACPI_WALK_STATE *WalkState, 407 char *AmlNameString, 408 ACPI_NAMESPACE_NODE *TargetNode); 409 410 411 /* 412 * aslcodegen - code generation 413 */ 414 void 415 CgGenerateAmlOutput ( 416 void); 417 418 419 /* 420 * aslfile 421 */ 422 void 423 FlOpenFile ( 424 UINT32 FileId, 425 char *Filename, 426 char *Mode); 427 428 429 /* 430 * asllength - calculate/adjust AML package lengths 431 */ 432 ACPI_STATUS 433 LnPackageLengthWalk ( 434 ACPI_PARSE_OBJECT *Op, 435 UINT32 Level, 436 void *Context); 437 438 ACPI_STATUS 439 LnInitLengthsWalk ( 440 ACPI_PARSE_OBJECT *Op, 441 UINT32 Level, 442 void *Context); 443 444 void 445 CgGenerateAmlLengths ( 446 ACPI_PARSE_OBJECT *Op); 447 448 449 /* 450 * aslmap - opcode mappings and reserved method names 451 */ 452 ACPI_OBJECT_TYPE 453 AslMapNamedOpcodeToDataType ( 454 UINT16 Opcode); 455 456 457 /* 458 * aslpredef - ACPI predefined names support 459 */ 460 void 461 ApCheckForPredefinedMethod ( 462 ACPI_PARSE_OBJECT *Op, 463 ASL_METHOD_INFO *MethodInfo); 464 465 void 466 ApCheckPredefinedReturnValue ( 467 ACPI_PARSE_OBJECT *Op, 468 ASL_METHOD_INFO *MethodInfo); 469 470 UINT32 471 ApCheckForPredefinedName ( 472 ACPI_PARSE_OBJECT *Op, 473 char *Name); 474 475 void 476 ApCheckForPredefinedObject ( 477 ACPI_PARSE_OBJECT *Op, 478 char *Name); 479 480 void 481 ApDisplayReservedNames ( 482 void); 483 484 485 /* 486 * asltransform - parse tree transformations 487 */ 488 ACPI_STATUS 489 TrAmlTransformWalk ( 490 ACPI_PARSE_OBJECT *Op, 491 UINT32 Level, 492 void *Context); 493 494 495 /* 496 * asltree - parse tree support 497 */ 498 ACPI_STATUS 499 TrWalkParseTree ( 500 ACPI_PARSE_OBJECT *Op, 501 UINT32 Visitation, 502 ASL_WALK_CALLBACK DescendingCallback, 503 ASL_WALK_CALLBACK AscendingCallback, 504 void *Context); 505 506 /* Values for "Visitation" parameter above */ 507 508 #define ASL_WALK_VISIT_DOWNWARD 0x01 509 #define ASL_WALK_VISIT_UPWARD 0x02 510 #define ASL_WALK_VISIT_TWICE (ASL_WALK_VISIT_DOWNWARD | ASL_WALK_VISIT_UPWARD) 511 512 513 ACPI_PARSE_OBJECT * 514 TrAllocateNode ( 515 UINT32 ParseOpcode); 516 517 void 518 TrReleaseNode ( 519 ACPI_PARSE_OBJECT *Op); 520 521 ACPI_PARSE_OBJECT * 522 TrUpdateNode ( 523 UINT32 ParseOpcode, 524 ACPI_PARSE_OBJECT *Op); 525 526 ACPI_PARSE_OBJECT * 527 TrCreateNode ( 528 UINT32 ParseOpcode, 529 UINT32 NumChildren, 530 ...); 531 532 ACPI_PARSE_OBJECT * 533 TrCreateLeafNode ( 534 UINT32 ParseOpcode); 535 536 ACPI_PARSE_OBJECT * 537 TrCreateValuedLeafNode ( 538 UINT32 ParseOpcode, 539 UINT64 Value); 540 541 ACPI_PARSE_OBJECT * 542 TrCreateConstantLeafNode ( 543 UINT32 ParseOpcode); 544 545 ACPI_PARSE_OBJECT * 546 TrLinkChildren ( 547 ACPI_PARSE_OBJECT *Op, 548 UINT32 NumChildren, 549 ...); 550 551 void 552 TrSetEndLineNumber ( 553 ACPI_PARSE_OBJECT *Op); 554 555 void 556 TrWalkTree ( 557 void); 558 559 ACPI_PARSE_OBJECT * 560 TrLinkPeerNode ( 561 ACPI_PARSE_OBJECT *Op1, 562 ACPI_PARSE_OBJECT *Op2); 563 564 ACPI_PARSE_OBJECT * 565 TrLinkChildNode ( 566 ACPI_PARSE_OBJECT *Op1, 567 ACPI_PARSE_OBJECT *Op2); 568 569 ACPI_PARSE_OBJECT * 570 TrSetNodeFlags ( 571 ACPI_PARSE_OBJECT *Op, 572 UINT32 Flags); 573 574 ACPI_PARSE_OBJECT * 575 TrLinkPeerNodes ( 576 UINT32 NumPeers, 577 ...); 578 579 580 /* 581 * aslfiles - File I/O support 582 */ 583 void 584 AslAbort ( 585 void); 586 587 void 588 FlAddIncludeDirectory ( 589 char *Dir); 590 591 void 592 FlOpenIncludeFile ( 593 ACPI_PARSE_OBJECT *Op); 594 595 void 596 FlFileError ( 597 UINT32 FileId, 598 UINT8 ErrorId); 599 600 UINT32 601 FlGetFileSize ( 602 UINT32 FileId); 603 604 ACPI_STATUS 605 FlReadFile ( 606 UINT32 FileId, 607 void *Buffer, 608 UINT32 Length); 609 610 void 611 FlWriteFile ( 612 UINT32 FileId, 613 void *Buffer, 614 UINT32 Length); 615 616 void 617 FlSeekFile ( 618 UINT32 FileId, 619 long Offset); 620 621 void 622 FlCloseFile ( 623 UINT32 FileId); 624 625 void 626 FlPrintFile ( 627 UINT32 FileId, 628 char *Format, 629 ...); 630 631 void 632 FlSetLineNumber ( 633 ACPI_PARSE_OBJECT *Op); 634 635 ACPI_STATUS 636 FlOpenInputFile ( 637 char *InputFilename); 638 639 ACPI_STATUS 640 FlOpenAmlOutputFile ( 641 char *InputFilename); 642 643 ACPI_STATUS 644 FlOpenMiscOutputFiles ( 645 char *InputFilename); 646 647 648 /* 649 * asload - load namespace in prep for cross reference 650 */ 651 ACPI_STATUS 652 LdLoadNamespace ( 653 ACPI_PARSE_OBJECT *RootOp); 654 655 656 /* 657 * asllookup - namespace cross reference 658 */ 659 ACPI_STATUS 660 LkCrossReferenceNamespace ( 661 void); 662 663 void 664 LkFindUnreferencedObjects ( 665 void); 666 667 ACPI_STATUS 668 LsDisplayNamespace ( 669 void); 670 671 void 672 LsSetupNsList ( 673 void *Handle); 674 675 676 /* 677 * aslutils - common compiler utilites 678 */ 679 void 680 DbgPrint ( 681 UINT32 Type, 682 char *Format, 683 ...); 684 685 /* Type values for above */ 686 687 #define ASL_DEBUG_OUTPUT 0 688 #define ASL_PARSE_OUTPUT 1 689 #define ASL_TREE_OUTPUT 2 690 691 void 692 UtDisplaySupportedTables ( 693 void); 694 695 void 696 UtDisplayConstantOpcodes ( 697 void); 698 699 UINT8 700 UtBeginEvent ( 701 char *Name); 702 703 void 704 UtEndEvent ( 705 UINT8 Event); 706 707 void * 708 UtLocalCalloc ( 709 UINT32 Size); 710 711 void 712 UtPrintFormattedName ( 713 UINT16 ParseOpcode, 714 UINT32 Level); 715 716 void 717 UtDisplaySummary ( 718 UINT32 FileId); 719 720 UINT8 721 UtHexCharToValue ( 722 int HexChar); 723 724 void 725 UtConvertByteToHex ( 726 UINT8 RawByte, 727 UINT8 *Buffer); 728 729 void 730 UtConvertByteToAsmHex ( 731 UINT8 RawByte, 732 UINT8 *Buffer); 733 734 char * 735 UtGetOpName ( 736 UINT32 ParseOpcode); 737 738 void 739 UtSetParseOpName ( 740 ACPI_PARSE_OBJECT *Op); 741 742 char * 743 UtGetStringBuffer ( 744 UINT32 Length); 745 746 ACPI_STATUS 747 UtInternalizeName ( 748 char *ExternalName, 749 char **ConvertedName); 750 751 void 752 UtAttachNamepathToOwner ( 753 ACPI_PARSE_OBJECT *Op, 754 ACPI_PARSE_OBJECT *NameNode); 755 756 ACPI_PARSE_OBJECT * 757 UtCheckIntegerRange ( 758 ACPI_PARSE_OBJECT *Op, 759 UINT32 LowValue, 760 UINT32 HighValue); 761 762 UINT64 763 UtDoConstant ( 764 char *String); 765 766 /* 767 * asluuid - UUID support 768 */ 769 ACPI_STATUS 770 AuValidateUuid ( 771 char *InString); 772 773 ACPI_STATUS 774 AuConvertStringToUuid ( 775 char *InString, 776 char *UuIdBuffer); 777 778 ACPI_STATUS 779 AuConvertUuidToString ( 780 char *UuIdBuffer, 781 char *OutString); 782 783 /* 784 * aslresource - Resource template generation utilities 785 */ 786 void 787 RsSmallAddressCheck ( 788 UINT8 Type, 789 UINT32 Minimum, 790 UINT32 Maximum, 791 UINT32 Length, 792 UINT32 Alignment, 793 ACPI_PARSE_OBJECT *MinOp, 794 ACPI_PARSE_OBJECT *MaxOp, 795 ACPI_PARSE_OBJECT *LengthOp, 796 ACPI_PARSE_OBJECT *AlignOp, 797 ACPI_PARSE_OBJECT *Op); 798 799 void 800 RsLargeAddressCheck ( 801 UINT64 Minimum, 802 UINT64 Maximum, 803 UINT64 Length, 804 UINT64 Granularity, 805 UINT8 Flags, 806 ACPI_PARSE_OBJECT *MinOp, 807 ACPI_PARSE_OBJECT *MaxOp, 808 ACPI_PARSE_OBJECT *LengthOp, 809 ACPI_PARSE_OBJECT *GranOp, 810 ACPI_PARSE_OBJECT *Op); 811 812 UINT16 813 RsGetStringDataLength ( 814 ACPI_PARSE_OBJECT *InitializerOp); 815 816 ASL_RESOURCE_NODE * 817 RsAllocateResourceNode ( 818 UINT32 Size); 819 820 void 821 RsCreateBitField ( 822 ACPI_PARSE_OBJECT *Op, 823 char *Name, 824 UINT32 ByteOffset, 825 UINT32 BitOffset); 826 827 void 828 RsCreateByteField ( 829 ACPI_PARSE_OBJECT *Op, 830 char *Name, 831 UINT32 ByteOffset); 832 833 void 834 RsSetFlagBits ( 835 UINT8 *Flags, 836 ACPI_PARSE_OBJECT *Op, 837 UINT8 Position, 838 UINT8 DefaultBit); 839 840 ACPI_PARSE_OBJECT * 841 RsCompleteNodeAndGetNext ( 842 ACPI_PARSE_OBJECT *Op); 843 844 void 845 RsCheckListForDuplicates ( 846 ACPI_PARSE_OBJECT *Op); 847 848 ASL_RESOURCE_NODE * 849 RsDoOneResourceDescriptor ( 850 ACPI_PARSE_OBJECT *DescriptorTypeOp, 851 UINT32 CurrentByteOffset, 852 UINT8 *State); 853 854 /* Values for State above */ 855 856 #define ACPI_RSTATE_NORMAL 0 857 #define ACPI_RSTATE_START_DEPENDENT 1 858 #define ACPI_RSTATE_DEPENDENT_LIST 2 859 860 UINT32 861 RsLinkDescriptorChain ( 862 ASL_RESOURCE_NODE **PreviousRnode, 863 ASL_RESOURCE_NODE *Rnode); 864 865 void 866 RsDoResourceTemplate ( 867 ACPI_PARSE_OBJECT *Op); 868 869 870 /* 871 * aslrestype1 - Miscellaneous Small descriptors 872 */ 873 ASL_RESOURCE_NODE * 874 RsDoEndTagDescriptor ( 875 ACPI_PARSE_OBJECT *Op, 876 UINT32 CurrentByteOffset); 877 878 ASL_RESOURCE_NODE * 879 RsDoEndDependentDescriptor ( 880 ACPI_PARSE_OBJECT *Op, 881 UINT32 CurrentByteOffset); 882 883 ASL_RESOURCE_NODE * 884 RsDoMemory24Descriptor ( 885 ACPI_PARSE_OBJECT *Op, 886 UINT32 CurrentByteOffset); 887 888 ASL_RESOURCE_NODE * 889 RsDoMemory32Descriptor ( 890 ACPI_PARSE_OBJECT *Op, 891 UINT32 CurrentByteOffset); 892 893 ASL_RESOURCE_NODE * 894 RsDoMemory32FixedDescriptor ( 895 ACPI_PARSE_OBJECT *Op, 896 UINT32 CurrentByteOffset); 897 898 ASL_RESOURCE_NODE * 899 RsDoStartDependentDescriptor ( 900 ACPI_PARSE_OBJECT *Op, 901 UINT32 CurrentByteOffset); 902 903 ASL_RESOURCE_NODE * 904 RsDoStartDependentNoPriDescriptor ( 905 ACPI_PARSE_OBJECT *Op, 906 UINT32 CurrentByteOffset); 907 908 ASL_RESOURCE_NODE * 909 RsDoVendorSmallDescriptor ( 910 ACPI_PARSE_OBJECT *Op, 911 UINT32 CurrentByteOffset); 912 913 914 /* 915 * aslrestype1i - I/O-related Small descriptors 916 */ 917 ASL_RESOURCE_NODE * 918 RsDoDmaDescriptor ( 919 ACPI_PARSE_OBJECT *Op, 920 UINT32 CurrentByteOffset); 921 922 ASL_RESOURCE_NODE * 923 RsDoFixedIoDescriptor ( 924 ACPI_PARSE_OBJECT *Op, 925 UINT32 CurrentByteOffset); 926 927 ASL_RESOURCE_NODE * 928 RsDoIoDescriptor ( 929 ACPI_PARSE_OBJECT *Op, 930 UINT32 CurrentByteOffset); 931 932 ASL_RESOURCE_NODE * 933 RsDoIrqDescriptor ( 934 ACPI_PARSE_OBJECT *Op, 935 UINT32 CurrentByteOffset); 936 937 ASL_RESOURCE_NODE * 938 RsDoIrqNoFlagsDescriptor ( 939 ACPI_PARSE_OBJECT *Op, 940 UINT32 CurrentByteOffset); 941 942 943 /* 944 * aslrestype2 - Large resource descriptors 945 */ 946 ASL_RESOURCE_NODE * 947 RsDoInterruptDescriptor ( 948 ACPI_PARSE_OBJECT *Op, 949 UINT32 CurrentByteOffset); 950 951 ASL_RESOURCE_NODE * 952 RsDoVendorLargeDescriptor ( 953 ACPI_PARSE_OBJECT *Op, 954 UINT32 CurrentByteOffset); 955 956 ASL_RESOURCE_NODE * 957 RsDoGeneralRegisterDescriptor ( 958 ACPI_PARSE_OBJECT *Op, 959 UINT32 CurrentByteOffset); 960 961 962 /* 963 * aslrestype2d - DWord address descriptors 964 */ 965 ASL_RESOURCE_NODE * 966 RsDoDwordIoDescriptor ( 967 ACPI_PARSE_OBJECT *Op, 968 UINT32 CurrentByteOffset); 969 970 ASL_RESOURCE_NODE * 971 RsDoDwordMemoryDescriptor ( 972 ACPI_PARSE_OBJECT *Op, 973 UINT32 CurrentByteOffset); 974 975 ASL_RESOURCE_NODE * 976 RsDoDwordSpaceDescriptor ( 977 ACPI_PARSE_OBJECT *Op, 978 UINT32 CurrentByteOffset); 979 980 981 /* 982 * aslrestype2e - Extended address descriptors 983 */ 984 ASL_RESOURCE_NODE * 985 RsDoExtendedIoDescriptor ( 986 ACPI_PARSE_OBJECT *Op, 987 UINT32 CurrentByteOffset); 988 989 ASL_RESOURCE_NODE * 990 RsDoExtendedMemoryDescriptor ( 991 ACPI_PARSE_OBJECT *Op, 992 UINT32 CurrentByteOffset); 993 994 ASL_RESOURCE_NODE * 995 RsDoExtendedSpaceDescriptor ( 996 ACPI_PARSE_OBJECT *Op, 997 UINT32 CurrentByteOffset); 998 999 1000 /* 1001 * aslrestype2q - QWord address descriptors 1002 */ 1003 ASL_RESOURCE_NODE * 1004 RsDoQwordIoDescriptor ( 1005 ACPI_PARSE_OBJECT *Op, 1006 UINT32 CurrentByteOffset); 1007 1008 ASL_RESOURCE_NODE * 1009 RsDoQwordMemoryDescriptor ( 1010 ACPI_PARSE_OBJECT *Op, 1011 UINT32 CurrentByteOffset); 1012 1013 ASL_RESOURCE_NODE * 1014 RsDoQwordSpaceDescriptor ( 1015 ACPI_PARSE_OBJECT *Op, 1016 UINT32 CurrentByteOffset); 1017 1018 1019 /* 1020 * aslrestype2w - Word address descriptors 1021 */ 1022 ASL_RESOURCE_NODE * 1023 RsDoWordIoDescriptor ( 1024 ACPI_PARSE_OBJECT *Op, 1025 UINT32 CurrentByteOffset); 1026 1027 ASL_RESOURCE_NODE * 1028 RsDoWordSpaceDescriptor ( 1029 ACPI_PARSE_OBJECT *Op, 1030 UINT32 CurrentByteOffset); 1031 1032 ASL_RESOURCE_NODE * 1033 RsDoWordBusNumberDescriptor ( 1034 ACPI_PARSE_OBJECT *Op, 1035 UINT32 CurrentByteOffset); 1036 1037 /* 1038 * Entry to data table compiler subsystem 1039 */ 1040 ACPI_STATUS 1041 DtDoCompile( 1042 void); 1043 1044 ACPI_STATUS 1045 DtCreateTemplates ( 1046 char *Signature); 1047 1048 #endif /* __ASLCOMPILER_H */ 1049 1050