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