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