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