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