1118611Snjl/****************************************************************************** 2118611Snjl * 3151937Sjkim * Module Name: aslcompiler.h - common include file for iASL 4118611Snjl * 5118611Snjl *****************************************************************************/ 6118611Snjl 7217365Sjkim/* 8306536Sjkim * Copyright (C) 2000 - 2016, Intel Corp. 9118611Snjl * All rights reserved. 10118611Snjl * 11217365Sjkim * Redistribution and use in source and binary forms, with or without 12217365Sjkim * modification, are permitted provided that the following conditions 13217365Sjkim * are met: 14217365Sjkim * 1. Redistributions of source code must retain the above copyright 15217365Sjkim * notice, this list of conditions, and the following disclaimer, 16217365Sjkim * without modification. 17217365Sjkim * 2. Redistributions in binary form must reproduce at minimum a disclaimer 18217365Sjkim * substantially similar to the "NO WARRANTY" disclaimer below 19217365Sjkim * ("Disclaimer") and any redistribution must be conditioned upon 20217365Sjkim * including a substantially similar Disclaimer requirement for further 21217365Sjkim * binary redistribution. 22217365Sjkim * 3. Neither the names of the above-listed copyright holders nor the names 23217365Sjkim * of any contributors may be used to endorse or promote products derived 24217365Sjkim * from this software without specific prior written permission. 25118611Snjl * 26217365Sjkim * Alternatively, this software may be distributed under the terms of the 27217365Sjkim * GNU General Public License ("GPL") version 2 as published by the Free 28217365Sjkim * Software Foundation. 29118611Snjl * 30217365Sjkim * NO WARRANTY 31217365Sjkim * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 32217365Sjkim * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 33217365Sjkim * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR 34217365Sjkim * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 35217365Sjkim * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 36217365Sjkim * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 37217365Sjkim * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 38217365Sjkim * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 39217365Sjkim * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING 40217365Sjkim * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 41217365Sjkim * POSSIBILITY OF SUCH DAMAGES. 42217365Sjkim */ 43118611Snjl 44118611Snjl#ifndef __ASLCOMPILER_H 45118611Snjl#define __ASLCOMPILER_H 46118611Snjl 47217365Sjkim#include <contrib/dev/acpica/include/acpi.h> 48217365Sjkim#include <contrib/dev/acpica/include/accommon.h> 49217365Sjkim#include <contrib/dev/acpica/include/amlresrc.h> 50217365Sjkim#include <contrib/dev/acpica/include/acdebug.h> 51118611Snjl 52118611Snjl/* Microsoft-specific */ 53118611Snjl 54118611Snjl#if (defined WIN32 || defined WIN64) 55118611Snjl 56118611Snjl/* warn : used #pragma pack */ 57118611Snjl#pragma warning(disable:4103) 58118611Snjl 59118611Snjl/* warn : named type definition in parentheses */ 60118611Snjl#pragma warning(disable:4115) 61118611Snjl#endif 62118611Snjl 63118611Snjl#include <stdio.h> 64118611Snjl#include <stdlib.h> 65118611Snjl#include <stdarg.h> 66118611Snjl#include <string.h> 67118611Snjl#include <errno.h> 68118611Snjl#include <ctype.h> 69118611Snjl 70151937Sjkim/* Compiler headers */ 71118611Snjl 72151937Sjkim#include <contrib/dev/acpica/compiler/asldefine.h> 73151937Sjkim#include <contrib/dev/acpica/compiler/asltypes.h> 74213806Sjkim#include <contrib/dev/acpica/compiler/aslmessages.h> 75151937Sjkim#include <contrib/dev/acpica/compiler/aslglobal.h> 76233250Sjkim#include <contrib/dev/acpica/compiler/preprocess.h> 77118611Snjl 78118611Snjl 79118611Snjl/******************************************************************************* 80118611Snjl * 81118611Snjl * Compiler prototypes 82118611Snjl * 83118611Snjl ******************************************************************************/ 84118611Snjl 85151937Sjkim/* 86233250Sjkim * Main ASL parser - generated from flex/bison, lex/yacc, etc. 87151937Sjkim */ 88118611SnjlACPI_PARSE_OBJECT * 89118611SnjlAslDoError ( 90118611Snjl void); 91118611Snjl 92118611Snjlint 93118611SnjlAslCompilerlex( 94118611Snjl void); 95118611Snjl 96118611Snjlvoid 97234623SjkimAslResetCurrentLineBuffer ( 98118611Snjl void); 99118611Snjl 100118611Snjlvoid 101234623SjkimAslInsertLineBuffer ( 102118611Snjl int SourceChar); 103118611Snjl 104118611Snjlint 105118611SnjlAslPopInputFileStack ( 106118611Snjl void); 107118611Snjl 108118611Snjlvoid 109118611SnjlAslPushInputFileStack ( 110118611Snjl FILE *InputFile, 111118611Snjl char *Filename); 112118611Snjl 113281075Sdimvoid 114281075SdimAslParserCleanup ( 115281075Sdim void); 116281075Sdim 117281075Sdim 118193529Sjkim/* 119209746Sjkim * aslstartup - entered from main() 120193529Sjkim */ 121209746Sjkimvoid 122209746SjkimAslInitializeGlobals ( 123209746Sjkim void); 124209746Sjkim 125210976Sjkimtypedef 126210976SjkimACPI_STATUS (*ASL_PATHNAME_CALLBACK) ( 127210976Sjkim char *); 128210976Sjkim 129193529SjkimACPI_STATUS 130193529SjkimAslDoOneFile ( 131193529Sjkim char *Filename); 132193529Sjkim 133234623SjkimACPI_STATUS 134234623SjkimAslCheckForErrorExit ( 135234623Sjkim void); 136234623Sjkim 137234623Sjkim 138151937Sjkim/* 139151937Sjkim * aslcompile - compile mainline 140151937Sjkim */ 141118611Snjlvoid 142118611SnjlAslCompilerSignon ( 143118611Snjl UINT32 FileId); 144118611Snjl 145118611Snjlvoid 146118611SnjlAslCompilerFileHeader ( 147118611Snjl UINT32 FileId); 148118611Snjl 149151937Sjkimint 150151937SjkimCmDoCompile ( 151151937Sjkim void); 152151937Sjkim 153118611Snjlvoid 154151937SjkimCmDoOutputFiles ( 155151937Sjkim void); 156118611Snjl 157151937Sjkimvoid 158151937SjkimCmCleanupAndExit ( 159151937Sjkim void); 160118611Snjl 161281075Sdimvoid 162281075SdimCmDeleteCaches ( 163281075Sdim void); 164281075Sdim 165281075Sdim 166281075Sdim/* 167281075Sdim * aslascii - ascii support 168281075Sdim */ 169209746SjkimACPI_STATUS 170306536SjkimFlIsFileAsciiSource ( 171235945Sjkim char *Filename, 172235945Sjkim BOOLEAN DisplayErrors); 173118611Snjl 174209746Sjkim 175151937Sjkim/* 176218590Sjkim * aslwalks - semantic analysis and parse tree walks 177151937Sjkim */ 178151937SjkimACPI_STATUS 179151937SjkimAnOtherSemanticAnalysisWalkBegin ( 180151937Sjkim ACPI_PARSE_OBJECT *Op, 181151937Sjkim UINT32 Level, 182151937Sjkim void *Context); 183118611Snjl 184151937SjkimACPI_STATUS 185151937SjkimAnOtherSemanticAnalysisWalkEnd ( 186151937Sjkim ACPI_PARSE_OBJECT *Op, 187151937Sjkim UINT32 Level, 188151937Sjkim void *Context); 189118611Snjl 190151937SjkimACPI_STATUS 191151937SjkimAnOperandTypecheckWalkEnd ( 192151937Sjkim ACPI_PARSE_OBJECT *Op, 193151937Sjkim UINT32 Level, 194151937Sjkim void *Context); 195118611Snjl 196151937SjkimACPI_STATUS 197245582SjkimAnMethodTypingWalkEnd ( 198151937Sjkim ACPI_PARSE_OBJECT *Op, 199151937Sjkim UINT32 Level, 200151937Sjkim void *Context); 201118611Snjl 202245582Sjkim 203245582Sjkim/* 204245582Sjkim * aslmethod - Control method analysis walk 205245582Sjkim */ 206151937SjkimACPI_STATUS 207245582SjkimMtMethodAnalysisWalkBegin ( 208151937Sjkim ACPI_PARSE_OBJECT *Op, 209151937Sjkim UINT32 Level, 210151937Sjkim void *Context); 211118611Snjl 212151937SjkimACPI_STATUS 213245582SjkimMtMethodAnalysisWalkEnd ( 214151937Sjkim ACPI_PARSE_OBJECT *Op, 215151937Sjkim UINT32 Level, 216151937Sjkim void *Context); 217118611Snjl 218218590Sjkim 219218590Sjkim/* 220218590Sjkim * aslbtypes - bitfield data types 221218590Sjkim */ 222218590SjkimUINT32 223218590SjkimAnMapObjTypeToBtype ( 224218590Sjkim ACPI_PARSE_OBJECT *Op); 225218590Sjkim 226218590SjkimUINT32 227218590SjkimAnMapArgTypeToBtype ( 228218590Sjkim UINT32 ArgType); 229218590Sjkim 230218590SjkimUINT32 231218590SjkimAnGetBtype ( 232218590Sjkim ACPI_PARSE_OBJECT *Op); 233218590Sjkim 234218590Sjkimvoid 235218590SjkimAnFormatBtype ( 236218590Sjkim char *Buffer, 237218590Sjkim UINT32 Btype); 238218590Sjkim 239218590Sjkim 240218590Sjkim/* 241218590Sjkim * aslanalyze - Support functions for parse tree walks 242218590Sjkim */ 243218590Sjkimvoid 244218590SjkimAnCheckId ( 245151937Sjkim ACPI_PARSE_OBJECT *Op, 246218590Sjkim ACPI_NAME Type); 247118611Snjl 248218590Sjkim/* Values for Type argument above */ 249151937Sjkim 250218590Sjkim#define ASL_TYPE_HID 0 251218590Sjkim#define ASL_TYPE_CID 1 252218590Sjkim 253218590SjkimBOOLEAN 254218590SjkimAnIsInternalMethod ( 255218590Sjkim ACPI_PARSE_OBJECT *Op); 256218590Sjkim 257218590SjkimUINT32 258218590SjkimAnGetInternalMethodReturnType ( 259218590Sjkim ACPI_PARSE_OBJECT *Op); 260218590Sjkim 261218590SjkimBOOLEAN 262218590SjkimAnLastStatementIsReturn ( 263218590Sjkim ACPI_PARSE_OBJECT *Op); 264218590Sjkim 265218590Sjkimvoid 266218590SjkimAnCheckMethodReturnValue ( 267218590Sjkim ACPI_PARSE_OBJECT *Op, 268218590Sjkim const ACPI_OPCODE_INFO *OpInfo, 269218590Sjkim ACPI_PARSE_OBJECT *ArgOp, 270218590Sjkim UINT32 RequiredBtypes, 271218590Sjkim UINT32 ThisNodeBtype); 272218590Sjkim 273218590SjkimBOOLEAN 274218590SjkimAnIsResultUsed ( 275218590Sjkim ACPI_PARSE_OBJECT *Op); 276218590Sjkim 277218590Sjkimvoid 278218590SjkimApCheckForGpeNameConflict ( 279218590Sjkim ACPI_PARSE_OBJECT *Op); 280218590Sjkim 281220663Sjkimvoid 282220663SjkimApCheckRegMethod ( 283220663Sjkim ACPI_PARSE_OBJECT *Op); 284218590Sjkim 285281075SdimBOOLEAN 286281075SdimApFindNameInScope ( 287281075Sdim char *Name, 288281075Sdim ACPI_PARSE_OBJECT *Op); 289220663Sjkim 290306536SjkimBOOLEAN 291306536SjkimApFindNameInDeviceTree ( 292306536Sjkim char *Name, 293306536Sjkim ACPI_PARSE_OBJECT *Op); 294281075Sdim 295151937Sjkim/* 296151937Sjkim * aslerror - error handling/reporting 297151937Sjkim */ 298118611Snjlvoid 299281075SdimAslAbort ( 300281075Sdim void); 301281075Sdim 302281075Sdimvoid 303118611SnjlAslError ( 304118611Snjl UINT8 Level, 305281075Sdim UINT16 MessageId, 306118611Snjl ACPI_PARSE_OBJECT *Op, 307118611Snjl char *ExtraMessage); 308118611Snjl 309250838SjkimACPI_STATUS 310250838SjkimAslDisableException ( 311250838Sjkim char *MessageIdString); 312250838Sjkim 313250838SjkimBOOLEAN 314250838SjkimAslIsExceptionDisabled ( 315250838Sjkim UINT8 Level, 316281075Sdim UINT16 MessageId); 317250838Sjkim 318118611Snjlvoid 319118611SnjlAslCoreSubsystemError ( 320118611Snjl ACPI_PARSE_OBJECT *Op, 321118611Snjl ACPI_STATUS Status, 322118611Snjl char *ExtraMessage, 323118611Snjl BOOLEAN Abort); 324118611Snjl 325151937Sjkimint 326151937SjkimAslCompilererror( 327228110Sjkim const char *s); 328151937Sjkim 329118611Snjlvoid 330118611SnjlAslCommonError ( 331118611Snjl UINT8 Level, 332281075Sdim UINT16 MessageId, 333118611Snjl UINT32 CurrentLineNumber, 334118611Snjl UINT32 LogicalLineNumber, 335118611Snjl UINT32 LogicalByteOffset, 336118611Snjl UINT32 Column, 337118611Snjl char *Filename, 338118611Snjl char *ExtraMessage); 339118611Snjl 340118611Snjlvoid 341233250SjkimAslCommonError2 ( 342233250Sjkim UINT8 Level, 343281075Sdim UINT16 MessageId, 344233250Sjkim UINT32 LineNumber, 345233250Sjkim UINT32 Column, 346233250Sjkim char *SourceLine, 347233250Sjkim char *Filename, 348233250Sjkim char *ExtraMessage); 349233250Sjkim 350233250Sjkimvoid 351118611SnjlAePrintException ( 352118611Snjl UINT32 FileId, 353118611Snjl ASL_ERROR_MSG *Enode, 354118611Snjl char *Header); 355118611Snjl 356118611Snjlvoid 357118611SnjlAePrintErrorLog ( 358118611Snjl UINT32 FileId); 359118611Snjl 360193529Sjkimvoid 361193529SjkimAeClearErrorLog ( 362193529Sjkim void); 363193529Sjkim 364118611Snjl 365151937Sjkim/* 366151937Sjkim * asllisting - generate all "listing" type files 367151937Sjkim */ 368118611Snjlvoid 369151937SjkimLsDoListings ( 370151937Sjkim void); 371118611Snjl 372118611Snjlvoid 373249112SjkimLsWriteNodeToAsmListing ( 374249112Sjkim ACPI_PARSE_OBJECT *Op); 375249112Sjkim 376249112Sjkimvoid 377249112SjkimLsWriteNode ( 378249112Sjkim ACPI_PARSE_OBJECT *Op, 379249112Sjkim UINT32 FileId); 380249112Sjkim 381249112Sjkimvoid 382249112SjkimLsDumpParseTree ( 383249112Sjkim void); 384249112Sjkim 385249112Sjkim 386249112Sjkim/* 387249112Sjkim * asllistsup - Listing file support utilities 388249112Sjkim */ 389249112Sjkimvoid 390249112SjkimLsDumpAscii ( 391249112Sjkim UINT32 FileId, 392249112Sjkim UINT32 Count, 393249112Sjkim UINT8 *Buffer); 394249112Sjkim 395249112Sjkimvoid 396245582SjkimLsDumpAsciiInComment ( 397245582Sjkim UINT32 FileId, 398245582Sjkim UINT32 Count, 399245582Sjkim UINT8 *Buffer); 400245582Sjkim 401245582Sjkimvoid 402249112SjkimLsCheckException ( 403249112Sjkim UINT32 LineNumber, 404249112Sjkim UINT32 FileId); 405118611Snjl 406118611Snjlvoid 407249112SjkimLsFlushListingBuffer ( 408118611Snjl UINT32 FileId); 409118611Snjl 410118611Snjlvoid 411249112SjkimLsWriteListingHexBytes ( 412249112Sjkim UINT8 *Buffer, 413249112Sjkim UINT32 Length, 414249112Sjkim UINT32 FileId); 415249112Sjkim 416249112Sjkimvoid 417249112SjkimLsWriteSourceLines ( 418249112Sjkim UINT32 ToLineNumber, 419249112Sjkim UINT32 ToLogicalLineNumber, 420249112Sjkim UINT32 FileId); 421249112Sjkim 422249112SjkimUINT32 423249112SjkimLsWriteOneSourceLine ( 424249112Sjkim UINT32 FileId); 425249112Sjkim 426249112Sjkimvoid 427249112SjkimLsPushNode ( 428249112Sjkim char *Filename); 429249112Sjkim 430249112SjkimASL_LISTING_NODE * 431249112SjkimLsPopNode ( 432118611Snjl void); 433118611Snjl 434245582Sjkim 435245582Sjkim/* 436245582Sjkim * aslhex - generate all "hex" output files (C, ASM, ASL) 437245582Sjkim */ 438167802Sjkimvoid 439245582SjkimHxDoHexOutput ( 440167802Sjkim void); 441118611Snjl 442245582Sjkim 443151937Sjkim/* 444151937Sjkim * aslfold - constant folding 445151937Sjkim */ 446151937SjkimACPI_STATUS 447151937SjkimOpcAmlConstantWalk ( 448151937Sjkim ACPI_PARSE_OBJECT *Op, 449151937Sjkim UINT32 Level, 450151937Sjkim void *Context); 451118611Snjl 452118611Snjl 453118611Snjl/* 454281075Sdim * aslmessages - exception strings 455281075Sdim */ 456281075Sdimconst char * 457281075SdimAeDecodeMessageId ( 458281075Sdim UINT16 MessageId); 459281075Sdim 460281075Sdimconst char * 461281075SdimAeDecodeExceptionLevel ( 462281075Sdim UINT8 Level); 463281075Sdim 464281075SdimUINT16 465281075SdimAeBuildFullExceptionCode ( 466281075Sdim UINT8 Level, 467281075Sdim UINT16 MessageId); 468281075Sdim 469281075Sdim/* 470249112Sjkim * asloffset - generate C offset file for BIOS support 471249112Sjkim */ 472249112SjkimACPI_STATUS 473249112SjkimLsAmlOffsetWalk ( 474249112Sjkim ACPI_PARSE_OBJECT *Op, 475249112Sjkim UINT32 Level, 476249112Sjkim void *Context); 477249112Sjkim 478249112Sjkimvoid 479249112SjkimLsDoOffsetTableHeader ( 480249112Sjkim UINT32 FileId); 481249112Sjkim 482249112Sjkimvoid 483249112SjkimLsDoOffsetTableFooter ( 484249112Sjkim UINT32 FileId); 485249112Sjkim 486249112Sjkim 487249112Sjkim/* 488118611Snjl * aslopcodes - generate AML opcodes 489118611Snjl */ 490118611SnjlACPI_STATUS 491118611SnjlOpcAmlOpcodeWalk ( 492118611Snjl ACPI_PARSE_OBJECT *Op, 493118611Snjl UINT32 Level, 494118611Snjl void *Context); 495118611Snjl 496118611SnjlACPI_STATUS 497151937SjkimOpcAmlOpcodeUpdateWalk ( 498118611Snjl ACPI_PARSE_OBJECT *Op, 499118611Snjl UINT32 Level, 500118611Snjl void *Context); 501118611Snjl 502118611Snjlvoid 503118611SnjlOpcGenerateAmlOpcode ( 504118611Snjl ACPI_PARSE_OBJECT *Op); 505118611Snjl 506118611SnjlUINT32 507118611SnjlOpcSetOptimalIntegerSize ( 508118611Snjl ACPI_PARSE_OBJECT *Op); 509118611Snjl 510118611Snjlvoid 511118611SnjlOpcGetIntegerWidth ( 512118611Snjl ACPI_PARSE_OBJECT *Op); 513118611Snjl 514151937Sjkim 515118611Snjl/* 516118611Snjl * asloperands - generate AML operands for the AML opcodes 517118611Snjl */ 518151937SjkimACPI_PARSE_OBJECT * 519151937SjkimUtGetArg ( 520151937Sjkim ACPI_PARSE_OBJECT *Op, 521151937Sjkim UINT32 Argn); 522118611Snjl 523118611Snjlvoid 524118611SnjlOpnGenerateAmlOperands ( 525118611Snjl ACPI_PARSE_OBJECT *Op); 526118611Snjl 527118611Snjlvoid 528118611SnjlOpnDoPackage ( 529118611Snjl ACPI_PARSE_OBJECT *Op); 530118611Snjl 531118611Snjl 532118611Snjl/* 533118611Snjl * aslopt - optmization 534118611Snjl */ 535118611Snjlvoid 536118611SnjlOptOptimizeNamePath ( 537118611Snjl ACPI_PARSE_OBJECT *Op, 538118611Snjl UINT32 Flags, 539118611Snjl ACPI_WALK_STATE *WalkState, 540118611Snjl char *AmlNameString, 541118611Snjl ACPI_NAMESPACE_NODE *TargetNode); 542118611Snjl 543118611Snjl 544118611Snjl/* 545306536Sjkim * aslpld - ToPLD macro support 546306536Sjkim */ 547306536Sjkimvoid 548306536SjkimOpcDoPld ( 549306536Sjkim ACPI_PARSE_OBJECT *Op); 550306536Sjkim 551306536Sjkim 552306536Sjkim/* 553281075Sdim * aslprintf - Printf/Fprintf macros 554281075Sdim */ 555281075Sdimvoid 556281075SdimOpcDoPrintf ( 557281075Sdim ACPI_PARSE_OBJECT *Op); 558281075Sdim 559281075Sdimvoid 560281075SdimOpcDoFprintf ( 561281075Sdim ACPI_PARSE_OBJECT *Op); 562281075Sdim 563281075Sdim 564281075Sdim/* 565281075Sdim * aslprune - parse tree pruner 566281075Sdim */ 567281075Sdimvoid 568281075SdimAslPruneParseTree ( 569281075Sdim UINT32 PruneDepth, 570281075Sdim UINT32 Type); 571281075Sdim 572281075Sdim 573281075Sdim/* 574151937Sjkim * aslcodegen - code generation 575118611Snjl */ 576118611Snjlvoid 577151937SjkimCgGenerateAmlOutput ( 578151937Sjkim void); 579118611Snjl 580118611Snjl 581151937Sjkim/* 582209746Sjkim * aslfile 583209746Sjkim */ 584209746Sjkimvoid 585209746SjkimFlOpenFile ( 586209746Sjkim UINT32 FileId, 587209746Sjkim char *Filename, 588209746Sjkim char *Mode); 589209746Sjkim 590209746Sjkim 591209746Sjkim/* 592151937Sjkim * asllength - calculate/adjust AML package lengths 593151937Sjkim */ 594118611SnjlACPI_STATUS 595118611SnjlLnPackageLengthWalk ( 596118611Snjl ACPI_PARSE_OBJECT *Op, 597118611Snjl UINT32 Level, 598118611Snjl void *Context); 599118611Snjl 600118611SnjlACPI_STATUS 601118611SnjlLnInitLengthsWalk ( 602118611Snjl ACPI_PARSE_OBJECT *Op, 603118611Snjl UINT32 Level, 604118611Snjl void *Context); 605118611Snjl 606118611Snjlvoid 607151937SjkimCgGenerateAmlLengths ( 608151937Sjkim ACPI_PARSE_OBJECT *Op); 609118611Snjl 610118611Snjl 611118611Snjl/* 612151937Sjkim * aslmap - opcode mappings and reserved method names 613118611Snjl */ 614118611SnjlACPI_OBJECT_TYPE 615118611SnjlAslMapNamedOpcodeToDataType ( 616118611Snjl UINT16 Opcode); 617118611Snjl 618204773Sjkim 619204773Sjkim/* 620204773Sjkim * aslpredef - ACPI predefined names support 621204773Sjkim */ 622220663SjkimBOOLEAN 623204773SjkimApCheckForPredefinedMethod ( 624204773Sjkim ACPI_PARSE_OBJECT *Op, 625204773Sjkim ASL_METHOD_INFO *MethodInfo); 626204773Sjkim 627206117Sjkimvoid 628206117SjkimApCheckPredefinedReturnValue ( 629206117Sjkim ACPI_PARSE_OBJECT *Op, 630206117Sjkim ASL_METHOD_INFO *MethodInfo); 631206117Sjkim 632204773SjkimUINT32 633204773SjkimApCheckForPredefinedName ( 634204773Sjkim ACPI_PARSE_OBJECT *Op, 635204773Sjkim char *Name); 636204773Sjkim 637204773Sjkimvoid 638204773SjkimApCheckForPredefinedObject ( 639204773Sjkim ACPI_PARSE_OBJECT *Op, 640204773Sjkim char *Name); 641204773Sjkim 642246849SjkimACPI_STATUS 643246849SjkimApCheckObjectType ( 644246849Sjkim const char *PredefinedName, 645246849Sjkim ACPI_PARSE_OBJECT *Op, 646246849Sjkim UINT32 ExpectedBtypes, 647246849Sjkim UINT32 PackageIndex); 648246849Sjkim 649204773Sjkimvoid 650204773SjkimApDisplayReservedNames ( 651151937Sjkim void); 652151937Sjkim 653151937Sjkim 654118611Snjl/* 655246849Sjkim * aslprepkg - ACPI predefined names support for packages 656246849Sjkim */ 657246849Sjkimvoid 658246849SjkimApCheckPackage ( 659246849Sjkim ACPI_PARSE_OBJECT *ParentOp, 660246849Sjkim const ACPI_PREDEFINED_INFO *Predefined); 661246849Sjkim 662246849Sjkim 663246849Sjkim/* 664118611Snjl * asltransform - parse tree transformations 665118611Snjl */ 666118611SnjlACPI_STATUS 667306536SjkimTrAmlTransformWalkBegin ( 668118611Snjl ACPI_PARSE_OBJECT *Op, 669118611Snjl UINT32 Level, 670118611Snjl void *Context); 671118611Snjl 672306536SjkimACPI_STATUS 673306536SjkimTrAmlTransformWalkEnd ( 674306536Sjkim ACPI_PARSE_OBJECT *Op, 675306536Sjkim UINT32 Level, 676306536Sjkim void *Context); 677118611Snjl 678306536Sjkim 679118611Snjl/* 680118611Snjl * asltree - parse tree support 681118611Snjl */ 682118611SnjlACPI_STATUS 683118611SnjlTrWalkParseTree ( 684118611Snjl ACPI_PARSE_OBJECT *Op, 685118611Snjl UINT32 Visitation, 686118611Snjl ASL_WALK_CALLBACK DescendingCallback, 687118611Snjl ASL_WALK_CALLBACK AscendingCallback, 688118611Snjl void *Context); 689118611Snjl 690306536Sjkim/* 691306536Sjkim * aslexternal - External opcode support 692306536Sjkim */ 693306536SjkimACPI_STATUS 694306536SjkimExAmlExternalWalkBegin ( 695306536Sjkim ACPI_PARSE_OBJECT *Op, 696306536Sjkim UINT32 Level, 697306536Sjkim void *Context); 698306536Sjkim 699306536SjkimACPI_STATUS 700306536SjkimExAmlExternalWalkEnd ( 701306536Sjkim ACPI_PARSE_OBJECT *Op, 702306536Sjkim UINT32 Level, 703306536Sjkim void *Context); 704306536Sjkim 705306536Sjkimvoid 706306536SjkimExDoExternal ( 707306536Sjkim ACPI_PARSE_OBJECT *Op); 708306536Sjkim 709118611Snjl/* Values for "Visitation" parameter above */ 710118611Snjl 711118611Snjl#define ASL_WALK_VISIT_DOWNWARD 0x01 712118611Snjl#define ASL_WALK_VISIT_UPWARD 0x02 713118611Snjl#define ASL_WALK_VISIT_TWICE (ASL_WALK_VISIT_DOWNWARD | ASL_WALK_VISIT_UPWARD) 714118611Snjl 715118611Snjl 716306536Sjkimvoid 717306536SjkimTrSetParent ( 718306536Sjkim ACPI_PARSE_OBJECT *Op, 719306536Sjkim ACPI_PARSE_OBJECT *ParentOp); 720306536Sjkim 721151937SjkimACPI_PARSE_OBJECT * 722151937SjkimTrAllocateNode ( 723151937Sjkim UINT32 ParseOpcode); 724118611Snjl 725151937Sjkimvoid 726281687SjkimTrPrintNodeCompileFlags ( 727281687Sjkim UINT32 Flags); 728281687Sjkim 729281687Sjkimvoid 730151937SjkimTrReleaseNode ( 731151937Sjkim ACPI_PARSE_OBJECT *Op); 732151937Sjkim 733118611SnjlACPI_PARSE_OBJECT * 734118611SnjlTrUpdateNode ( 735118611Snjl UINT32 ParseOpcode, 736118611Snjl ACPI_PARSE_OBJECT *Op); 737118611Snjl 738118611SnjlACPI_PARSE_OBJECT * 739118611SnjlTrCreateNode ( 740118611Snjl UINT32 ParseOpcode, 741118611Snjl UINT32 NumChildren, 742118611Snjl ...); 743118611Snjl 744118611SnjlACPI_PARSE_OBJECT * 745118611SnjlTrCreateLeafNode ( 746118611Snjl UINT32 ParseOpcode); 747118611Snjl 748118611SnjlACPI_PARSE_OBJECT * 749281687SjkimTrCreateNullTarget ( 750281687Sjkim void); 751281687Sjkim 752281687SjkimACPI_PARSE_OBJECT * 753281075SdimTrCreateAssignmentNode ( 754281075Sdim ACPI_PARSE_OBJECT *Target, 755281075Sdim ACPI_PARSE_OBJECT *Source); 756281075Sdim 757281075SdimACPI_PARSE_OBJECT * 758281075SdimTrCreateTargetOperand ( 759281075Sdim ACPI_PARSE_OBJECT *OriginalOp, 760281075Sdim ACPI_PARSE_OBJECT *ParentOp); 761281075Sdim 762281075SdimACPI_PARSE_OBJECT * 763118611SnjlTrCreateValuedLeafNode ( 764118611Snjl UINT32 ParseOpcode, 765202771Sjkim UINT64 Value); 766118611Snjl 767118611SnjlACPI_PARSE_OBJECT * 768218590SjkimTrCreateConstantLeafNode ( 769218590Sjkim UINT32 ParseOpcode); 770218590Sjkim 771218590SjkimACPI_PARSE_OBJECT * 772118611SnjlTrLinkChildren ( 773118611Snjl ACPI_PARSE_OBJECT *Op, 774118611Snjl UINT32 NumChildren, 775118611Snjl ...); 776118611Snjl 777118611Snjlvoid 778118611SnjlTrSetEndLineNumber ( 779118611Snjl ACPI_PARSE_OBJECT *Op); 780118611Snjl 781118611Snjlvoid 782306536SjkimTrSetCurrentFilename ( 783306536Sjkim ACPI_PARSE_OBJECT *Op); 784306536Sjkim 785306536Sjkimvoid 786151937SjkimTrWalkTree ( 787151937Sjkim void); 788118611Snjl 789118611SnjlACPI_PARSE_OBJECT * 790118611SnjlTrLinkPeerNode ( 791118611Snjl ACPI_PARSE_OBJECT *Op1, 792118611Snjl ACPI_PARSE_OBJECT *Op2); 793118611Snjl 794118611SnjlACPI_PARSE_OBJECT * 795118611SnjlTrLinkChildNode ( 796118611Snjl ACPI_PARSE_OBJECT *Op1, 797118611Snjl ACPI_PARSE_OBJECT *Op2); 798118611Snjl 799118611SnjlACPI_PARSE_OBJECT * 800118611SnjlTrSetNodeFlags ( 801118611Snjl ACPI_PARSE_OBJECT *Op, 802118611Snjl UINT32 Flags); 803118611Snjl 804118611SnjlACPI_PARSE_OBJECT * 805239340SjkimTrSetNodeAmlLength ( 806239340Sjkim ACPI_PARSE_OBJECT *Op, 807239340Sjkim UINT32 Length); 808239340Sjkim 809239340SjkimACPI_PARSE_OBJECT * 810118611SnjlTrLinkPeerNodes ( 811118611Snjl UINT32 NumPeers, 812118611Snjl ...); 813118611Snjl 814118611Snjl 815118611Snjl/* 816118611Snjl * aslfiles - File I/O support 817118611Snjl */ 818118611Snjlvoid 819197104SjkimFlAddIncludeDirectory ( 820197104Sjkim char *Dir); 821197104Sjkim 822235945Sjkimchar * 823235945SjkimFlMergePathnames ( 824235945Sjkim char *PrefixDir, 825235945Sjkim char *FilePathname); 826235945Sjkim 827197104Sjkimvoid 828118611SnjlFlOpenIncludeFile ( 829118611Snjl ACPI_PARSE_OBJECT *Op); 830118611Snjl 831118611Snjlvoid 832118611SnjlFlFileError ( 833118611Snjl UINT32 FileId, 834118611Snjl UINT8 ErrorId); 835118611Snjl 836207344SjkimUINT32 837207344SjkimFlGetFileSize ( 838207344Sjkim UINT32 FileId); 839207344Sjkim 840118611SnjlACPI_STATUS 841118611SnjlFlReadFile ( 842118611Snjl UINT32 FileId, 843118611Snjl void *Buffer, 844118611Snjl UINT32 Length); 845118611Snjl 846118611Snjlvoid 847118611SnjlFlWriteFile ( 848118611Snjl UINT32 FileId, 849118611Snjl void *Buffer, 850118611Snjl UINT32 Length); 851118611Snjl 852118611Snjlvoid 853118611SnjlFlSeekFile ( 854118611Snjl UINT32 FileId, 855118611Snjl long Offset); 856118611Snjl 857118611Snjlvoid 858118611SnjlFlCloseFile ( 859118611Snjl UINT32 FileId); 860118611Snjl 861118611Snjlvoid 862118611SnjlFlPrintFile ( 863118611Snjl UINT32 FileId, 864118611Snjl char *Format, 865118611Snjl ...); 866118611Snjl 867118611Snjlvoid 868240716SjkimFlDeleteFile ( 869240716Sjkim UINT32 FileId); 870240716Sjkim 871240716Sjkimvoid 872118611SnjlFlSetLineNumber ( 873234623Sjkim UINT32 LineNumber); 874118611Snjl 875234623Sjkimvoid 876234623SjkimFlSetFilename ( 877234623Sjkim char *Filename); 878234623Sjkim 879118611SnjlACPI_STATUS 880118611SnjlFlOpenInputFile ( 881118611Snjl char *InputFilename); 882118611Snjl 883118611SnjlACPI_STATUS 884118611SnjlFlOpenAmlOutputFile ( 885118611Snjl char *InputFilename); 886118611Snjl 887118611SnjlACPI_STATUS 888118611SnjlFlOpenMiscOutputFiles ( 889118611Snjl char *InputFilename); 890118611Snjl 891281075Sdim/* 892281075Sdim * aslhwmap - hardware map summary 893281075Sdim */ 894281075Sdimvoid 895281075SdimMpEmitMappingInfo ( 896281075Sdim void); 897118611Snjl 898281075Sdim 899151937Sjkim/* 900151937Sjkim * asload - load namespace in prep for cross reference 901151937Sjkim */ 902118611SnjlACPI_STATUS 903118611SnjlLdLoadNamespace ( 904118611Snjl ACPI_PARSE_OBJECT *RootOp); 905118611Snjl 906118611Snjl 907151937Sjkim/* 908245582Sjkim * asllookup - namespace lookup functions 909151937Sjkim */ 910167802Sjkimvoid 911167802SjkimLkFindUnreferencedObjects ( 912167802Sjkim void); 913167802Sjkim 914250838Sjkim/* 915250838Sjkim * aslmain - startup 916250838Sjkim */ 917250838Sjkimvoid 918250838SjkimUsage ( 919250838Sjkim void); 920245582Sjkim 921250838Sjkimvoid 922250838SjkimAslFilenameHelp ( 923250838Sjkim void); 924250838Sjkim 925250838Sjkim 926245582Sjkim/* 927245582Sjkim * aslnamesp - namespace output file generation 928245582Sjkim */ 929118611SnjlACPI_STATUS 930245582SjkimNsDisplayNamespace ( 931118611Snjl void); 932118611Snjl 933212761Sjkimvoid 934245582SjkimNsSetupNamespaceListing ( 935212761Sjkim void *Handle); 936118611Snjl 937250838Sjkim/* 938250838Sjkim * asloptions - command line processing 939250838Sjkim */ 940250838Sjkimint 941250838SjkimAslCommandLine ( 942250838Sjkim int argc, 943250838Sjkim char **argv); 944212761Sjkim 945151937Sjkim/* 946245582Sjkim * aslxref - namespace cross reference 947245582Sjkim */ 948245582SjkimACPI_STATUS 949245582SjkimXfCrossReferenceNamespace ( 950245582Sjkim void); 951245582Sjkim 952245582Sjkim 953245582Sjkim/* 954306536Sjkim * aslxrefout 955306536Sjkim */ 956306536Sjkimvoid 957306536SjkimOtPrintHeaders ( 958306536Sjkim char *Message); 959306536Sjkim 960306536Sjkimvoid 961306536SjkimOtCreateXrefFile ( 962306536Sjkim void); 963306536Sjkim 964306536Sjkimvoid 965306536SjkimOtXrefWalkPart1 ( 966306536Sjkim ACPI_PARSE_OBJECT *Op, 967306536Sjkim UINT32 Level, 968306536Sjkim ASL_METHOD_INFO *MethodInfo); 969306536Sjkim 970306536Sjkim 971306536Sjkim/* 972151937Sjkim * aslutils - common compiler utilites 973151937Sjkim */ 974151937Sjkimvoid 975151937SjkimDbgPrint ( 976151937Sjkim UINT32 Type, 977151937Sjkim char *Format, 978151937Sjkim ...); 979118611Snjl 980151937Sjkim/* Type values for above */ 981118611Snjl 982151937Sjkim#define ASL_DEBUG_OUTPUT 0 983151937Sjkim#define ASL_PARSE_OUTPUT 1 984151937Sjkim#define ASL_TREE_OUTPUT 2 985151937Sjkim 986306536SjkimUINT8 987306536SjkimUtIsBigEndianMachine ( 988306536Sjkim void); 989306536Sjkim 990306536SjkimBOOLEAN 991306536SjkimUtQueryForOverwrite ( 992306536Sjkim char *Pathname); 993306536Sjkim 994118611Snjlvoid 995306536SjkimUtDumpStringOp ( 996306536Sjkim ACPI_PARSE_OBJECT *Op, 997306536Sjkim UINT32 Level); 998306536Sjkim 999306536Sjkimvoid 1000306536SjkimUtDumpIntegerOp ( 1001306536Sjkim ACPI_PARSE_OBJECT *Op, 1002306536Sjkim UINT32 Level, 1003306536Sjkim UINT32 IntegerLength); 1004306536Sjkim 1005306536Sjkimvoid 1006306536SjkimUtDumpBasicOp ( 1007306536Sjkim ACPI_PARSE_OBJECT *Op, 1008306536Sjkim UINT32 Level); 1009306536Sjkim 1010306536Sjkimvoid 1011209746SjkimUtDisplaySupportedTables ( 1012209746Sjkim void); 1013209746Sjkim 1014209746Sjkimvoid 1015118611SnjlUtDisplayConstantOpcodes ( 1016118611Snjl void); 1017118611Snjl 1018151937SjkimUINT8 1019118611SnjlUtBeginEvent ( 1020118611Snjl char *Name); 1021118611Snjl 1022118611Snjlvoid 1023118611SnjlUtEndEvent ( 1024151937Sjkim UINT8 Event); 1025118611Snjl 1026118611Snjlvoid * 1027118611SnjlUtLocalCalloc ( 1028118611Snjl UINT32 Size); 1029118611Snjl 1030118611Snjlvoid 1031118611SnjlUtDisplaySummary ( 1032118611Snjl UINT32 FileId); 1033118611Snjl 1034118611Snjlvoid 1035118611SnjlUtConvertByteToHex ( 1036118611Snjl UINT8 RawByte, 1037118611Snjl UINT8 *Buffer); 1038118611Snjl 1039118611Snjlvoid 1040118611SnjlUtConvertByteToAsmHex ( 1041118611Snjl UINT8 RawByte, 1042118611Snjl UINT8 *Buffer); 1043118611Snjl 1044118611Snjlchar * 1045118611SnjlUtGetOpName ( 1046118611Snjl UINT32 ParseOpcode); 1047118611Snjl 1048118611Snjlvoid 1049118611SnjlUtSetParseOpName ( 1050118611Snjl ACPI_PARSE_OBJECT *Op); 1051118611Snjl 1052118611Snjlchar * 1053281075SdimUtStringCacheCalloc ( 1054118611Snjl UINT32 Length); 1055118611Snjl 1056240716Sjkimvoid 1057240716SjkimUtExpandLineBuffers ( 1058240716Sjkim void); 1059240716Sjkim 1060281075Sdimvoid 1061281075SdimUtFreeLineBuffers ( 1062281075Sdim void); 1063281075Sdim 1064118611SnjlACPI_STATUS 1065118611SnjlUtInternalizeName ( 1066118611Snjl char *ExternalName, 1067118611Snjl char **ConvertedName); 1068118611Snjl 1069118611Snjlvoid 1070118611SnjlUtAttachNamepathToOwner ( 1071118611Snjl ACPI_PARSE_OBJECT *Op, 1072118611Snjl ACPI_PARSE_OBJECT *NameNode); 1073118611Snjl 1074118611SnjlACPI_PARSE_OBJECT * 1075118611SnjlUtCheckIntegerRange ( 1076118611Snjl ACPI_PARSE_OBJECT *Op, 1077118611Snjl UINT32 LowValue, 1078118611Snjl UINT32 HighValue); 1079118611Snjl 1080202771SjkimUINT64 1081118611SnjlUtDoConstant ( 1082118611Snjl char *String); 1083118611Snjl 1084220663Sjkim 1085217365Sjkim/* 1086217365Sjkim * asluuid - UUID support 1087217365Sjkim */ 1088217365SjkimACPI_STATUS 1089217365SjkimAuValidateUuid ( 1090217365Sjkim char *InString); 1091118611Snjl 1092217365SjkimACPI_STATUS 1093217365SjkimAuConvertUuidToString ( 1094217365Sjkim char *UuIdBuffer, 1095217365Sjkim char *OutString); 1096217365Sjkim 1097118611Snjl/* 1098151937Sjkim * aslresource - Resource template generation utilities 1099118611Snjl */ 1100207344Sjkimvoid 1101207344SjkimRsSmallAddressCheck ( 1102207344Sjkim UINT8 Type, 1103207344Sjkim UINT32 Minimum, 1104207344Sjkim UINT32 Maximum, 1105207344Sjkim UINT32 Length, 1106207344Sjkim UINT32 Alignment, 1107207344Sjkim ACPI_PARSE_OBJECT *MinOp, 1108207344Sjkim ACPI_PARSE_OBJECT *MaxOp, 1109207344Sjkim ACPI_PARSE_OBJECT *LengthOp, 1110213806Sjkim ACPI_PARSE_OBJECT *AlignOp, 1111213806Sjkim ACPI_PARSE_OBJECT *Op); 1112207344Sjkim 1113207344Sjkimvoid 1114207344SjkimRsLargeAddressCheck ( 1115207344Sjkim UINT64 Minimum, 1116207344Sjkim UINT64 Maximum, 1117207344Sjkim UINT64 Length, 1118207344Sjkim UINT64 Granularity, 1119207344Sjkim UINT8 Flags, 1120207344Sjkim ACPI_PARSE_OBJECT *MinOp, 1121207344Sjkim ACPI_PARSE_OBJECT *MaxOp, 1122207344Sjkim ACPI_PARSE_OBJECT *LengthOp, 1123213806Sjkim ACPI_PARSE_OBJECT *GranOp, 1124213806Sjkim ACPI_PARSE_OBJECT *Op); 1125207344Sjkim 1126207344SjkimUINT16 1127207344SjkimRsGetStringDataLength ( 1128207344Sjkim ACPI_PARSE_OBJECT *InitializerOp); 1129207344Sjkim 1130118611SnjlASL_RESOURCE_NODE * 1131118611SnjlRsAllocateResourceNode ( 1132118611Snjl UINT32 Size); 1133118611Snjl 1134151937Sjkimvoid 1135228110SjkimRsCreateResourceField ( 1136118611Snjl ACPI_PARSE_OBJECT *Op, 1137118611Snjl char *Name, 1138118611Snjl UINT32 ByteOffset, 1139228110Sjkim UINT32 BitOffset, 1140228110Sjkim UINT32 BitLength); 1141118611Snjl 1142118611Snjlvoid 1143228110SjkimRsSetFlagBits ( 1144228110Sjkim UINT8 *Flags, 1145118611Snjl ACPI_PARSE_OBJECT *Op, 1146228110Sjkim UINT8 Position, 1147228110Sjkim UINT8 DefaultBit); 1148118611Snjl 1149118611Snjlvoid 1150228110SjkimRsSetFlagBits16 ( 1151228110Sjkim UINT16 *Flags, 1152118611Snjl ACPI_PARSE_OBJECT *Op, 1153118611Snjl UINT8 Position, 1154118611Snjl UINT8 DefaultBit); 1155118611Snjl 1156118611SnjlACPI_PARSE_OBJECT * 1157118611SnjlRsCompleteNodeAndGetNext ( 1158118611Snjl ACPI_PARSE_OBJECT *Op); 1159118611Snjl 1160151937Sjkimvoid 1161151937SjkimRsCheckListForDuplicates ( 1162151937Sjkim ACPI_PARSE_OBJECT *Op); 1163151937Sjkim 1164118611SnjlASL_RESOURCE_NODE * 1165118611SnjlRsDoOneResourceDescriptor ( 1166281075Sdim ASL_RESOURCE_INFO *Info, 1167118611Snjl UINT8 *State); 1168118611Snjl 1169151937Sjkim/* Values for State above */ 1170151937Sjkim 1171118611Snjl#define ACPI_RSTATE_NORMAL 0 1172118611Snjl#define ACPI_RSTATE_START_DEPENDENT 1 1173118611Snjl#define ACPI_RSTATE_DEPENDENT_LIST 2 1174118611Snjl 1175118611SnjlUINT32 1176118611SnjlRsLinkDescriptorChain ( 1177118611Snjl ASL_RESOURCE_NODE **PreviousRnode, 1178118611Snjl ASL_RESOURCE_NODE *Rnode); 1179118611Snjl 1180151937Sjkimvoid 1181151937SjkimRsDoResourceTemplate ( 1182151937Sjkim ACPI_PARSE_OBJECT *Op); 1183118611Snjl 1184151937Sjkim 1185118611Snjl/* 1186207344Sjkim * aslrestype1 - Miscellaneous Small descriptors 1187118611Snjl */ 1188118611SnjlASL_RESOURCE_NODE * 1189167802SjkimRsDoEndTagDescriptor ( 1190281075Sdim ASL_RESOURCE_INFO *Info); 1191167802Sjkim 1192167802SjkimASL_RESOURCE_NODE * 1193207344SjkimRsDoEndDependentDescriptor ( 1194281075Sdim ASL_RESOURCE_INFO *Info); 1195118611Snjl 1196118611SnjlASL_RESOURCE_NODE * 1197207344SjkimRsDoMemory24Descriptor ( 1198281075Sdim ASL_RESOURCE_INFO *Info); 1199118611Snjl 1200118611SnjlASL_RESOURCE_NODE * 1201207344SjkimRsDoMemory32Descriptor ( 1202281075Sdim ASL_RESOURCE_INFO *Info); 1203118611Snjl 1204118611SnjlASL_RESOURCE_NODE * 1205207344SjkimRsDoMemory32FixedDescriptor ( 1206281075Sdim ASL_RESOURCE_INFO *Info); 1207118611Snjl 1208118611SnjlASL_RESOURCE_NODE * 1209207344SjkimRsDoStartDependentDescriptor ( 1210281075Sdim ASL_RESOURCE_INFO *Info); 1211118611Snjl 1212118611SnjlASL_RESOURCE_NODE * 1213207344SjkimRsDoStartDependentNoPriDescriptor ( 1214281075Sdim ASL_RESOURCE_INFO *Info); 1215118611Snjl 1216118611SnjlASL_RESOURCE_NODE * 1217207344SjkimRsDoVendorSmallDescriptor ( 1218281075Sdim ASL_RESOURCE_INFO *Info); 1219118611Snjl 1220207344Sjkim 1221207344Sjkim/* 1222207344Sjkim * aslrestype1i - I/O-related Small descriptors 1223207344Sjkim */ 1224118611SnjlASL_RESOURCE_NODE * 1225207344SjkimRsDoDmaDescriptor ( 1226281075Sdim ASL_RESOURCE_INFO *Info); 1227118611Snjl 1228118611SnjlASL_RESOURCE_NODE * 1229228110SjkimRsDoFixedDmaDescriptor ( 1230281075Sdim ASL_RESOURCE_INFO *Info); 1231228110Sjkim 1232228110SjkimASL_RESOURCE_NODE * 1233207344SjkimRsDoFixedIoDescriptor ( 1234281075Sdim ASL_RESOURCE_INFO *Info); 1235118611Snjl 1236118611SnjlASL_RESOURCE_NODE * 1237207344SjkimRsDoIoDescriptor ( 1238281075Sdim ASL_RESOURCE_INFO *Info); 1239118611Snjl 1240118611SnjlASL_RESOURCE_NODE * 1241207344SjkimRsDoIrqDescriptor ( 1242281075Sdim ASL_RESOURCE_INFO *Info); 1243118611Snjl 1244118611SnjlASL_RESOURCE_NODE * 1245207344SjkimRsDoIrqNoFlagsDescriptor ( 1246281075Sdim ASL_RESOURCE_INFO *Info); 1247118611Snjl 1248118611Snjl 1249118611Snjl/* 1250207344Sjkim * aslrestype2 - Large resource descriptors 1251118611Snjl */ 1252151937SjkimASL_RESOURCE_NODE * 1253151937SjkimRsDoInterruptDescriptor ( 1254281075Sdim ASL_RESOURCE_INFO *Info); 1255118611Snjl 1256118611SnjlASL_RESOURCE_NODE * 1257207344SjkimRsDoVendorLargeDescriptor ( 1258281075Sdim ASL_RESOURCE_INFO *Info); 1259207344Sjkim 1260207344SjkimASL_RESOURCE_NODE * 1261207344SjkimRsDoGeneralRegisterDescriptor ( 1262281075Sdim ASL_RESOURCE_INFO *Info); 1263207344Sjkim 1264228110SjkimASL_RESOURCE_NODE * 1265228110SjkimRsDoGpioIntDescriptor ( 1266281075Sdim ASL_RESOURCE_INFO *Info); 1267207344Sjkim 1268228110SjkimASL_RESOURCE_NODE * 1269228110SjkimRsDoGpioIoDescriptor ( 1270281075Sdim ASL_RESOURCE_INFO *Info); 1271228110Sjkim 1272228110SjkimASL_RESOURCE_NODE * 1273228110SjkimRsDoI2cSerialBusDescriptor ( 1274281075Sdim ASL_RESOURCE_INFO *Info); 1275228110Sjkim 1276228110SjkimASL_RESOURCE_NODE * 1277228110SjkimRsDoSpiSerialBusDescriptor ( 1278281075Sdim ASL_RESOURCE_INFO *Info); 1279228110Sjkim 1280228110SjkimASL_RESOURCE_NODE * 1281228110SjkimRsDoUartSerialBusDescriptor ( 1282281075Sdim ASL_RESOURCE_INFO *Info); 1283228110Sjkim 1284207344Sjkim/* 1285207344Sjkim * aslrestype2d - DWord address descriptors 1286207344Sjkim */ 1287207344SjkimASL_RESOURCE_NODE * 1288118611SnjlRsDoDwordIoDescriptor ( 1289281075Sdim ASL_RESOURCE_INFO *Info); 1290118611Snjl 1291118611SnjlASL_RESOURCE_NODE * 1292118611SnjlRsDoDwordMemoryDescriptor ( 1293281075Sdim ASL_RESOURCE_INFO *Info); 1294118611Snjl 1295118611SnjlASL_RESOURCE_NODE * 1296151937SjkimRsDoDwordSpaceDescriptor ( 1297281075Sdim ASL_RESOURCE_INFO *Info); 1298151937Sjkim 1299207344Sjkim 1300207344Sjkim/* 1301207344Sjkim * aslrestype2e - Extended address descriptors 1302207344Sjkim */ 1303151937SjkimASL_RESOURCE_NODE * 1304151937SjkimRsDoExtendedIoDescriptor ( 1305281075Sdim ASL_RESOURCE_INFO *Info); 1306151937Sjkim 1307151937SjkimASL_RESOURCE_NODE * 1308151937SjkimRsDoExtendedMemoryDescriptor ( 1309281075Sdim ASL_RESOURCE_INFO *Info); 1310151937Sjkim 1311151937SjkimASL_RESOURCE_NODE * 1312151937SjkimRsDoExtendedSpaceDescriptor ( 1313281075Sdim ASL_RESOURCE_INFO *Info); 1314151937Sjkim 1315207344Sjkim 1316207344Sjkim/* 1317207344Sjkim * aslrestype2q - QWord address descriptors 1318207344Sjkim */ 1319151937SjkimASL_RESOURCE_NODE * 1320118611SnjlRsDoQwordIoDescriptor ( 1321281075Sdim ASL_RESOURCE_INFO *Info); 1322118611Snjl 1323118611SnjlASL_RESOURCE_NODE * 1324118611SnjlRsDoQwordMemoryDescriptor ( 1325281075Sdim ASL_RESOURCE_INFO *Info); 1326118611Snjl 1327118611SnjlASL_RESOURCE_NODE * 1328151937SjkimRsDoQwordSpaceDescriptor ( 1329281075Sdim ASL_RESOURCE_INFO *Info); 1330151937Sjkim 1331207344Sjkim 1332207344Sjkim/* 1333207344Sjkim * aslrestype2w - Word address descriptors 1334207344Sjkim */ 1335151937SjkimASL_RESOURCE_NODE * 1336118611SnjlRsDoWordIoDescriptor ( 1337281075Sdim ASL_RESOURCE_INFO *Info); 1338118611Snjl 1339118611SnjlASL_RESOURCE_NODE * 1340151937SjkimRsDoWordSpaceDescriptor ( 1341281075Sdim ASL_RESOURCE_INFO *Info); 1342151937Sjkim 1343151937SjkimASL_RESOURCE_NODE * 1344118611SnjlRsDoWordBusNumberDescriptor ( 1345281075Sdim ASL_RESOURCE_INFO *Info); 1346118611Snjl 1347281075Sdim 1348209746Sjkim/* 1349209746Sjkim * Entry to data table compiler subsystem 1350209746Sjkim */ 1351209746SjkimACPI_STATUS 1352209746SjkimDtDoCompile( 1353209746Sjkim void); 1354209746Sjkim 1355209746SjkimACPI_STATUS 1356209746SjkimDtCreateTemplates ( 1357306536Sjkim char **argv); 1358209746Sjkim 1359118611Snjl#endif /* __ASLCOMPILER_H */ 1360