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 */ 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 832RsCreateBitField ( 833 ACPI_PARSE_OBJECT *Op, 834 char *Name, 835 UINT32 ByteOffset, 836 UINT32 BitOffset); 837 838void 839RsCreateByteField ( 840 ACPI_PARSE_OBJECT *Op, 841 char *Name, 842 UINT32 ByteOffset); 843 844void 845RsSetFlagBits ( 846 UINT8 *Flags, 847 ACPI_PARSE_OBJECT *Op, 848 UINT8 Position, 849 UINT8 DefaultBit); 850 851ACPI_PARSE_OBJECT * 852RsCompleteNodeAndGetNext ( 853 ACPI_PARSE_OBJECT *Op); 854 855void 856RsCheckListForDuplicates ( 857 ACPI_PARSE_OBJECT *Op); 858 859ASL_RESOURCE_NODE * 860RsDoOneResourceDescriptor ( 861 ACPI_PARSE_OBJECT *DescriptorTypeOp, 862 UINT32 CurrentByteOffset, 863 UINT8 *State); 864 865/* Values for State above */ 866 867#define ACPI_RSTATE_NORMAL 0 868#define ACPI_RSTATE_START_DEPENDENT 1 869#define ACPI_RSTATE_DEPENDENT_LIST 2 870 871UINT32 872RsLinkDescriptorChain ( 873 ASL_RESOURCE_NODE **PreviousRnode, 874 ASL_RESOURCE_NODE *Rnode); 875 876void 877RsDoResourceTemplate ( 878 ACPI_PARSE_OBJECT *Op); 879 880 881/* 882 * aslrestype1 - Miscellaneous Small descriptors 883 */ 884ASL_RESOURCE_NODE * 885RsDoEndTagDescriptor ( 886 ACPI_PARSE_OBJECT *Op, 887 UINT32 CurrentByteOffset); 888 889ASL_RESOURCE_NODE * 890RsDoEndDependentDescriptor ( 891 ACPI_PARSE_OBJECT *Op, 892 UINT32 CurrentByteOffset); 893 894ASL_RESOURCE_NODE * 895RsDoMemory24Descriptor ( 896 ACPI_PARSE_OBJECT *Op, 897 UINT32 CurrentByteOffset); 898 899ASL_RESOURCE_NODE * 900RsDoMemory32Descriptor ( 901 ACPI_PARSE_OBJECT *Op, 902 UINT32 CurrentByteOffset); 903 904ASL_RESOURCE_NODE * 905RsDoMemory32FixedDescriptor ( 906 ACPI_PARSE_OBJECT *Op, 907 UINT32 CurrentByteOffset); 908 909ASL_RESOURCE_NODE * 910RsDoStartDependentDescriptor ( 911 ACPI_PARSE_OBJECT *Op, 912 UINT32 CurrentByteOffset); 913 914ASL_RESOURCE_NODE * 915RsDoStartDependentNoPriDescriptor ( 916 ACPI_PARSE_OBJECT *Op, 917 UINT32 CurrentByteOffset); 918 919ASL_RESOURCE_NODE * 920RsDoVendorSmallDescriptor ( 921 ACPI_PARSE_OBJECT *Op, 922 UINT32 CurrentByteOffset); 923 924 925/* 926 * aslrestype1i - I/O-related Small descriptors 927 */ 928ASL_RESOURCE_NODE * 929RsDoDmaDescriptor ( 930 ACPI_PARSE_OBJECT *Op, 931 UINT32 CurrentByteOffset); 932 933ASL_RESOURCE_NODE * 934RsDoFixedIoDescriptor ( 935 ACPI_PARSE_OBJECT *Op, 936 UINT32 CurrentByteOffset); 937 938ASL_RESOURCE_NODE * 939RsDoIoDescriptor ( 940 ACPI_PARSE_OBJECT *Op, 941 UINT32 CurrentByteOffset); 942 943ASL_RESOURCE_NODE * 944RsDoIrqDescriptor ( 945 ACPI_PARSE_OBJECT *Op, 946 UINT32 CurrentByteOffset); 947 948ASL_RESOURCE_NODE * 949RsDoIrqNoFlagsDescriptor ( 950 ACPI_PARSE_OBJECT *Op, 951 UINT32 CurrentByteOffset); 952 953 954/* 955 * aslrestype2 - Large resource descriptors 956 */ 957ASL_RESOURCE_NODE * 958RsDoInterruptDescriptor ( 959 ACPI_PARSE_OBJECT *Op, 960 UINT32 CurrentByteOffset); 961 962ASL_RESOURCE_NODE * 963RsDoVendorLargeDescriptor ( 964 ACPI_PARSE_OBJECT *Op, 965 UINT32 CurrentByteOffset); 966 967ASL_RESOURCE_NODE * 968RsDoGeneralRegisterDescriptor ( 969 ACPI_PARSE_OBJECT *Op, 970 UINT32 CurrentByteOffset); 971 972 973/* 974 * aslrestype2d - DWord address descriptors 975 */ 976ASL_RESOURCE_NODE * 977RsDoDwordIoDescriptor ( 978 ACPI_PARSE_OBJECT *Op, 979 UINT32 CurrentByteOffset); 980 981ASL_RESOURCE_NODE * 982RsDoDwordMemoryDescriptor ( 983 ACPI_PARSE_OBJECT *Op, 984 UINT32 CurrentByteOffset); 985 986ASL_RESOURCE_NODE * 987RsDoDwordSpaceDescriptor ( 988 ACPI_PARSE_OBJECT *Op, 989 UINT32 CurrentByteOffset); 990 991 992/* 993 * aslrestype2e - Extended address descriptors 994 */ 995ASL_RESOURCE_NODE * 996RsDoExtendedIoDescriptor ( 997 ACPI_PARSE_OBJECT *Op, 998 UINT32 CurrentByteOffset); 999 1000ASL_RESOURCE_NODE * 1001RsDoExtendedMemoryDescriptor ( 1002 ACPI_PARSE_OBJECT *Op, 1003 UINT32 CurrentByteOffset); 1004 1005ASL_RESOURCE_NODE * 1006RsDoExtendedSpaceDescriptor ( 1007 ACPI_PARSE_OBJECT *Op, 1008 UINT32 CurrentByteOffset); 1009 1010 1011/* 1012 * aslrestype2q - QWord address descriptors 1013 */ 1014ASL_RESOURCE_NODE * 1015RsDoQwordIoDescriptor ( 1016 ACPI_PARSE_OBJECT *Op, 1017 UINT32 CurrentByteOffset); 1018 1019ASL_RESOURCE_NODE * 1020RsDoQwordMemoryDescriptor ( 1021 ACPI_PARSE_OBJECT *Op, 1022 UINT32 CurrentByteOffset); 1023 1024ASL_RESOURCE_NODE * 1025RsDoQwordSpaceDescriptor ( 1026 ACPI_PARSE_OBJECT *Op, 1027 UINT32 CurrentByteOffset); 1028 1029 1030/* 1031 * aslrestype2w - Word address descriptors 1032 */ 1033ASL_RESOURCE_NODE * 1034RsDoWordIoDescriptor ( 1035 ACPI_PARSE_OBJECT *Op, 1036 UINT32 CurrentByteOffset); 1037 1038ASL_RESOURCE_NODE * 1039RsDoWordSpaceDescriptor ( 1040 ACPI_PARSE_OBJECT *Op, 1041 UINT32 CurrentByteOffset); 1042 1043ASL_RESOURCE_NODE * 1044RsDoWordBusNumberDescriptor ( 1045 ACPI_PARSE_OBJECT *Op, 1046 UINT32 CurrentByteOffset); 1047 1048/* 1049 * Entry to data table compiler subsystem 1050 */ 1051ACPI_STATUS 1052DtDoCompile( 1053 void); 1054 1055ACPI_STATUS 1056DtCreateTemplates ( 1057 char *Signature); 1058 1059#endif /* __ASLCOMPILER_H */ 1060 1061