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