1118611Snjl/****************************************************************************** 2118611Snjl * 3151937Sjkim * Module Name: aslcompiler.h - common include file for iASL 4118611Snjl * 5118611Snjl *****************************************************************************/ 6118611Snjl 7217365Sjkim/* 8281075Sdim * Copyright (C) 2000 - 2015, 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 170246849SjkimFlCheckForAcpiTable ( 171246849Sjkim FILE *Handle); 172246849Sjkim 173246849SjkimACPI_STATUS 174209746SjkimFlCheckForAscii ( 175235945Sjkim char *Filename, 176235945Sjkim BOOLEAN DisplayErrors); 177118611Snjl 178209746Sjkim 179151937Sjkim/* 180218590Sjkim * aslwalks - semantic analysis and parse tree walks 181151937Sjkim */ 182151937SjkimACPI_STATUS 183151937SjkimAnOtherSemanticAnalysisWalkBegin ( 184151937Sjkim ACPI_PARSE_OBJECT *Op, 185151937Sjkim UINT32 Level, 186151937Sjkim void *Context); 187118611Snjl 188151937SjkimACPI_STATUS 189151937SjkimAnOtherSemanticAnalysisWalkEnd ( 190151937Sjkim ACPI_PARSE_OBJECT *Op, 191151937Sjkim UINT32 Level, 192151937Sjkim void *Context); 193118611Snjl 194151937SjkimACPI_STATUS 195151937SjkimAnOperandTypecheckWalkEnd ( 196151937Sjkim ACPI_PARSE_OBJECT *Op, 197151937Sjkim UINT32 Level, 198151937Sjkim void *Context); 199118611Snjl 200151937SjkimACPI_STATUS 201245582SjkimAnMethodTypingWalkEnd ( 202151937Sjkim ACPI_PARSE_OBJECT *Op, 203151937Sjkim UINT32 Level, 204151937Sjkim void *Context); 205118611Snjl 206245582Sjkim 207245582Sjkim/* 208245582Sjkim * aslmethod - Control method analysis walk 209245582Sjkim */ 210151937SjkimACPI_STATUS 211245582SjkimMtMethodAnalysisWalkBegin ( 212151937Sjkim ACPI_PARSE_OBJECT *Op, 213151937Sjkim UINT32 Level, 214151937Sjkim void *Context); 215118611Snjl 216151937SjkimACPI_STATUS 217245582SjkimMtMethodAnalysisWalkEnd ( 218151937Sjkim ACPI_PARSE_OBJECT *Op, 219151937Sjkim UINT32 Level, 220151937Sjkim void *Context); 221118611Snjl 222218590Sjkim 223218590Sjkim/* 224218590Sjkim * aslbtypes - bitfield data types 225218590Sjkim */ 226218590SjkimUINT32 227218590SjkimAnMapObjTypeToBtype ( 228218590Sjkim ACPI_PARSE_OBJECT *Op); 229218590Sjkim 230218590SjkimUINT32 231218590SjkimAnMapArgTypeToBtype ( 232218590Sjkim UINT32 ArgType); 233218590Sjkim 234218590SjkimUINT32 235218590SjkimAnGetBtype ( 236218590Sjkim ACPI_PARSE_OBJECT *Op); 237218590Sjkim 238218590Sjkimvoid 239218590SjkimAnFormatBtype ( 240218590Sjkim char *Buffer, 241218590Sjkim UINT32 Btype); 242218590Sjkim 243218590Sjkim 244218590Sjkim/* 245218590Sjkim * aslanalyze - Support functions for parse tree walks 246218590Sjkim */ 247218590Sjkimvoid 248218590SjkimAnCheckId ( 249151937Sjkim ACPI_PARSE_OBJECT *Op, 250218590Sjkim ACPI_NAME Type); 251118611Snjl 252218590Sjkim/* Values for Type argument above */ 253151937Sjkim 254218590Sjkim#define ASL_TYPE_HID 0 255218590Sjkim#define ASL_TYPE_CID 1 256218590Sjkim 257218590SjkimBOOLEAN 258218590SjkimAnIsInternalMethod ( 259218590Sjkim ACPI_PARSE_OBJECT *Op); 260218590Sjkim 261218590SjkimUINT32 262218590SjkimAnGetInternalMethodReturnType ( 263218590Sjkim ACPI_PARSE_OBJECT *Op); 264218590Sjkim 265218590SjkimBOOLEAN 266218590SjkimAnLastStatementIsReturn ( 267218590Sjkim ACPI_PARSE_OBJECT *Op); 268218590Sjkim 269218590Sjkimvoid 270218590SjkimAnCheckMethodReturnValue ( 271218590Sjkim ACPI_PARSE_OBJECT *Op, 272218590Sjkim const ACPI_OPCODE_INFO *OpInfo, 273218590Sjkim ACPI_PARSE_OBJECT *ArgOp, 274218590Sjkim UINT32 RequiredBtypes, 275218590Sjkim UINT32 ThisNodeBtype); 276218590Sjkim 277218590SjkimBOOLEAN 278218590SjkimAnIsResultUsed ( 279218590Sjkim ACPI_PARSE_OBJECT *Op); 280218590Sjkim 281218590Sjkimvoid 282218590SjkimApCheckForGpeNameConflict ( 283218590Sjkim ACPI_PARSE_OBJECT *Op); 284218590Sjkim 285220663Sjkimvoid 286220663SjkimApCheckRegMethod ( 287220663Sjkim ACPI_PARSE_OBJECT *Op); 288218590Sjkim 289281075SdimBOOLEAN 290281075SdimApFindNameInScope ( 291281075Sdim char *Name, 292281075Sdim ACPI_PARSE_OBJECT *Op); 293220663Sjkim 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/* 545281075Sdim * aslprintf - Printf/Fprintf macros 546281075Sdim */ 547281075Sdimvoid 548281075SdimOpcDoPrintf ( 549281075Sdim ACPI_PARSE_OBJECT *Op); 550281075Sdim 551281075Sdimvoid 552281075SdimOpcDoFprintf ( 553281075Sdim ACPI_PARSE_OBJECT *Op); 554281075Sdim 555281075Sdim 556281075Sdim/* 557281075Sdim * aslprune - parse tree pruner 558281075Sdim */ 559281075Sdimvoid 560281075SdimAslPruneParseTree ( 561281075Sdim UINT32 PruneDepth, 562281075Sdim UINT32 Type); 563281075Sdim 564281075Sdim 565281075Sdim/* 566151937Sjkim * aslcodegen - code generation 567118611Snjl */ 568118611Snjlvoid 569151937SjkimCgGenerateAmlOutput ( 570151937Sjkim void); 571118611Snjl 572118611Snjl 573151937Sjkim/* 574209746Sjkim * aslfile 575209746Sjkim */ 576209746Sjkimvoid 577209746SjkimFlOpenFile ( 578209746Sjkim UINT32 FileId, 579209746Sjkim char *Filename, 580209746Sjkim char *Mode); 581209746Sjkim 582209746Sjkim 583209746Sjkim/* 584151937Sjkim * asllength - calculate/adjust AML package lengths 585151937Sjkim */ 586118611SnjlACPI_STATUS 587118611SnjlLnPackageLengthWalk ( 588118611Snjl ACPI_PARSE_OBJECT *Op, 589118611Snjl UINT32 Level, 590118611Snjl void *Context); 591118611Snjl 592118611SnjlACPI_STATUS 593118611SnjlLnInitLengthsWalk ( 594118611Snjl ACPI_PARSE_OBJECT *Op, 595118611Snjl UINT32 Level, 596118611Snjl void *Context); 597118611Snjl 598118611Snjlvoid 599151937SjkimCgGenerateAmlLengths ( 600151937Sjkim ACPI_PARSE_OBJECT *Op); 601118611Snjl 602118611Snjl 603118611Snjl/* 604151937Sjkim * aslmap - opcode mappings and reserved method names 605118611Snjl */ 606118611SnjlACPI_OBJECT_TYPE 607118611SnjlAslMapNamedOpcodeToDataType ( 608118611Snjl UINT16 Opcode); 609118611Snjl 610204773Sjkim 611204773Sjkim/* 612204773Sjkim * aslpredef - ACPI predefined names support 613204773Sjkim */ 614220663SjkimBOOLEAN 615204773SjkimApCheckForPredefinedMethod ( 616204773Sjkim ACPI_PARSE_OBJECT *Op, 617204773Sjkim ASL_METHOD_INFO *MethodInfo); 618204773Sjkim 619206117Sjkimvoid 620206117SjkimApCheckPredefinedReturnValue ( 621206117Sjkim ACPI_PARSE_OBJECT *Op, 622206117Sjkim ASL_METHOD_INFO *MethodInfo); 623206117Sjkim 624204773SjkimUINT32 625204773SjkimApCheckForPredefinedName ( 626204773Sjkim ACPI_PARSE_OBJECT *Op, 627204773Sjkim char *Name); 628204773Sjkim 629204773Sjkimvoid 630204773SjkimApCheckForPredefinedObject ( 631204773Sjkim ACPI_PARSE_OBJECT *Op, 632204773Sjkim char *Name); 633204773Sjkim 634246849SjkimACPI_STATUS 635246849SjkimApCheckObjectType ( 636246849Sjkim const char *PredefinedName, 637246849Sjkim ACPI_PARSE_OBJECT *Op, 638246849Sjkim UINT32 ExpectedBtypes, 639246849Sjkim UINT32 PackageIndex); 640246849Sjkim 641204773Sjkimvoid 642204773SjkimApDisplayReservedNames ( 643151937Sjkim void); 644151937Sjkim 645151937Sjkim 646118611Snjl/* 647246849Sjkim * aslprepkg - ACPI predefined names support for packages 648246849Sjkim */ 649246849Sjkimvoid 650246849SjkimApCheckPackage ( 651246849Sjkim ACPI_PARSE_OBJECT *ParentOp, 652246849Sjkim const ACPI_PREDEFINED_INFO *Predefined); 653246849Sjkim 654246849Sjkim 655246849Sjkim/* 656118611Snjl * asltransform - parse tree transformations 657118611Snjl */ 658118611SnjlACPI_STATUS 659118611SnjlTrAmlTransformWalk ( 660118611Snjl ACPI_PARSE_OBJECT *Op, 661118611Snjl UINT32 Level, 662118611Snjl void *Context); 663118611Snjl 664118611Snjl 665118611Snjl/* 666118611Snjl * asltree - parse tree support 667118611Snjl */ 668118611SnjlACPI_STATUS 669118611SnjlTrWalkParseTree ( 670118611Snjl ACPI_PARSE_OBJECT *Op, 671118611Snjl UINT32 Visitation, 672118611Snjl ASL_WALK_CALLBACK DescendingCallback, 673118611Snjl ASL_WALK_CALLBACK AscendingCallback, 674118611Snjl void *Context); 675118611Snjl 676118611Snjl/* Values for "Visitation" parameter above */ 677118611Snjl 678118611Snjl#define ASL_WALK_VISIT_DOWNWARD 0x01 679118611Snjl#define ASL_WALK_VISIT_UPWARD 0x02 680118611Snjl#define ASL_WALK_VISIT_TWICE (ASL_WALK_VISIT_DOWNWARD | ASL_WALK_VISIT_UPWARD) 681118611Snjl 682118611Snjl 683151937SjkimACPI_PARSE_OBJECT * 684151937SjkimTrAllocateNode ( 685151937Sjkim UINT32 ParseOpcode); 686118611Snjl 687151937Sjkimvoid 688281687SjkimTrPrintNodeCompileFlags ( 689281687Sjkim UINT32 Flags); 690281687Sjkim 691281687Sjkimvoid 692151937SjkimTrReleaseNode ( 693151937Sjkim ACPI_PARSE_OBJECT *Op); 694151937Sjkim 695118611SnjlACPI_PARSE_OBJECT * 696118611SnjlTrUpdateNode ( 697118611Snjl UINT32 ParseOpcode, 698118611Snjl ACPI_PARSE_OBJECT *Op); 699118611Snjl 700118611SnjlACPI_PARSE_OBJECT * 701118611SnjlTrCreateNode ( 702118611Snjl UINT32 ParseOpcode, 703118611Snjl UINT32 NumChildren, 704118611Snjl ...); 705118611Snjl 706118611SnjlACPI_PARSE_OBJECT * 707118611SnjlTrCreateLeafNode ( 708118611Snjl UINT32 ParseOpcode); 709118611Snjl 710118611SnjlACPI_PARSE_OBJECT * 711281687SjkimTrCreateNullTarget ( 712281687Sjkim void); 713281687Sjkim 714281687SjkimACPI_PARSE_OBJECT * 715281075SdimTrCreateAssignmentNode ( 716281075Sdim ACPI_PARSE_OBJECT *Target, 717281075Sdim ACPI_PARSE_OBJECT *Source); 718281075Sdim 719281075SdimACPI_PARSE_OBJECT * 720281075SdimTrCreateTargetOperand ( 721281075Sdim ACPI_PARSE_OBJECT *OriginalOp, 722281075Sdim ACPI_PARSE_OBJECT *ParentOp); 723281075Sdim 724281075SdimACPI_PARSE_OBJECT * 725118611SnjlTrCreateValuedLeafNode ( 726118611Snjl UINT32 ParseOpcode, 727202771Sjkim UINT64 Value); 728118611Snjl 729118611SnjlACPI_PARSE_OBJECT * 730218590SjkimTrCreateConstantLeafNode ( 731218590Sjkim UINT32 ParseOpcode); 732218590Sjkim 733218590SjkimACPI_PARSE_OBJECT * 734118611SnjlTrLinkChildren ( 735118611Snjl ACPI_PARSE_OBJECT *Op, 736118611Snjl UINT32 NumChildren, 737118611Snjl ...); 738118611Snjl 739118611Snjlvoid 740118611SnjlTrSetEndLineNumber ( 741118611Snjl ACPI_PARSE_OBJECT *Op); 742118611Snjl 743118611Snjlvoid 744151937SjkimTrWalkTree ( 745151937Sjkim void); 746118611Snjl 747118611SnjlACPI_PARSE_OBJECT * 748118611SnjlTrLinkPeerNode ( 749118611Snjl ACPI_PARSE_OBJECT *Op1, 750118611Snjl ACPI_PARSE_OBJECT *Op2); 751118611Snjl 752118611SnjlACPI_PARSE_OBJECT * 753118611SnjlTrLinkChildNode ( 754118611Snjl ACPI_PARSE_OBJECT *Op1, 755118611Snjl ACPI_PARSE_OBJECT *Op2); 756118611Snjl 757118611SnjlACPI_PARSE_OBJECT * 758118611SnjlTrSetNodeFlags ( 759118611Snjl ACPI_PARSE_OBJECT *Op, 760118611Snjl UINT32 Flags); 761118611Snjl 762118611SnjlACPI_PARSE_OBJECT * 763239340SjkimTrSetNodeAmlLength ( 764239340Sjkim ACPI_PARSE_OBJECT *Op, 765239340Sjkim UINT32 Length); 766239340Sjkim 767239340SjkimACPI_PARSE_OBJECT * 768118611SnjlTrLinkPeerNodes ( 769118611Snjl UINT32 NumPeers, 770118611Snjl ...); 771118611Snjl 772118611Snjl 773118611Snjl/* 774118611Snjl * aslfiles - File I/O support 775118611Snjl */ 776118611Snjlvoid 777197104SjkimFlAddIncludeDirectory ( 778197104Sjkim char *Dir); 779197104Sjkim 780235945Sjkimchar * 781235945SjkimFlMergePathnames ( 782235945Sjkim char *PrefixDir, 783235945Sjkim char *FilePathname); 784235945Sjkim 785197104Sjkimvoid 786118611SnjlFlOpenIncludeFile ( 787118611Snjl ACPI_PARSE_OBJECT *Op); 788118611Snjl 789118611Snjlvoid 790118611SnjlFlFileError ( 791118611Snjl UINT32 FileId, 792118611Snjl UINT8 ErrorId); 793118611Snjl 794207344SjkimUINT32 795207344SjkimFlGetFileSize ( 796207344Sjkim UINT32 FileId); 797207344Sjkim 798118611SnjlACPI_STATUS 799118611SnjlFlReadFile ( 800118611Snjl UINT32 FileId, 801118611Snjl void *Buffer, 802118611Snjl UINT32 Length); 803118611Snjl 804118611Snjlvoid 805118611SnjlFlWriteFile ( 806118611Snjl UINT32 FileId, 807118611Snjl void *Buffer, 808118611Snjl UINT32 Length); 809118611Snjl 810118611Snjlvoid 811118611SnjlFlSeekFile ( 812118611Snjl UINT32 FileId, 813118611Snjl long Offset); 814118611Snjl 815118611Snjlvoid 816118611SnjlFlCloseFile ( 817118611Snjl UINT32 FileId); 818118611Snjl 819118611Snjlvoid 820118611SnjlFlPrintFile ( 821118611Snjl UINT32 FileId, 822118611Snjl char *Format, 823118611Snjl ...); 824118611Snjl 825118611Snjlvoid 826240716SjkimFlDeleteFile ( 827240716Sjkim UINT32 FileId); 828240716Sjkim 829240716Sjkimvoid 830118611SnjlFlSetLineNumber ( 831234623Sjkim UINT32 LineNumber); 832118611Snjl 833234623Sjkimvoid 834234623SjkimFlSetFilename ( 835234623Sjkim char *Filename); 836234623Sjkim 837118611SnjlACPI_STATUS 838118611SnjlFlOpenInputFile ( 839118611Snjl char *InputFilename); 840118611Snjl 841118611SnjlACPI_STATUS 842118611SnjlFlOpenAmlOutputFile ( 843118611Snjl char *InputFilename); 844118611Snjl 845118611SnjlACPI_STATUS 846118611SnjlFlOpenMiscOutputFiles ( 847118611Snjl char *InputFilename); 848118611Snjl 849281075Sdim/* 850281075Sdim * aslhwmap - hardware map summary 851281075Sdim */ 852281075Sdimvoid 853281075SdimMpEmitMappingInfo ( 854281075Sdim void); 855118611Snjl 856281075Sdim 857151937Sjkim/* 858151937Sjkim * asload - load namespace in prep for cross reference 859151937Sjkim */ 860118611SnjlACPI_STATUS 861118611SnjlLdLoadNamespace ( 862118611Snjl ACPI_PARSE_OBJECT *RootOp); 863118611Snjl 864118611Snjl 865151937Sjkim/* 866245582Sjkim * asllookup - namespace lookup functions 867151937Sjkim */ 868167802Sjkimvoid 869167802SjkimLkFindUnreferencedObjects ( 870167802Sjkim void); 871167802Sjkim 872250838Sjkim/* 873250838Sjkim * aslmain - startup 874250838Sjkim */ 875250838Sjkimvoid 876250838SjkimUsage ( 877250838Sjkim void); 878245582Sjkim 879250838Sjkimvoid 880250838SjkimAslFilenameHelp ( 881250838Sjkim void); 882250838Sjkim 883250838Sjkim 884245582Sjkim/* 885245582Sjkim * aslnamesp - namespace output file generation 886245582Sjkim */ 887118611SnjlACPI_STATUS 888245582SjkimNsDisplayNamespace ( 889118611Snjl void); 890118611Snjl 891212761Sjkimvoid 892245582SjkimNsSetupNamespaceListing ( 893212761Sjkim void *Handle); 894118611Snjl 895250838Sjkim/* 896250838Sjkim * asloptions - command line processing 897250838Sjkim */ 898250838Sjkimint 899250838SjkimAslCommandLine ( 900250838Sjkim int argc, 901250838Sjkim char **argv); 902212761Sjkim 903151937Sjkim/* 904245582Sjkim * aslxref - namespace cross reference 905245582Sjkim */ 906245582SjkimACPI_STATUS 907245582SjkimXfCrossReferenceNamespace ( 908245582Sjkim void); 909245582Sjkim 910245582Sjkim 911245582Sjkim/* 912151937Sjkim * aslutils - common compiler utilites 913151937Sjkim */ 914151937Sjkimvoid 915151937SjkimDbgPrint ( 916151937Sjkim UINT32 Type, 917151937Sjkim char *Format, 918151937Sjkim ...); 919118611Snjl 920151937Sjkim/* Type values for above */ 921118611Snjl 922151937Sjkim#define ASL_DEBUG_OUTPUT 0 923151937Sjkim#define ASL_PARSE_OUTPUT 1 924151937Sjkim#define ASL_TREE_OUTPUT 2 925151937Sjkim 926118611Snjlvoid 927209746SjkimUtDisplaySupportedTables ( 928209746Sjkim void); 929209746Sjkim 930209746Sjkimvoid 931118611SnjlUtDisplayConstantOpcodes ( 932118611Snjl void); 933118611Snjl 934151937SjkimUINT8 935118611SnjlUtBeginEvent ( 936118611Snjl char *Name); 937118611Snjl 938118611Snjlvoid 939118611SnjlUtEndEvent ( 940151937Sjkim UINT8 Event); 941118611Snjl 942118611Snjlvoid * 943118611SnjlUtLocalCalloc ( 944118611Snjl UINT32 Size); 945118611Snjl 946118611Snjlvoid 947118611SnjlUtPrintFormattedName ( 948118611Snjl UINT16 ParseOpcode, 949118611Snjl UINT32 Level); 950118611Snjl 951118611Snjlvoid 952118611SnjlUtDisplaySummary ( 953118611Snjl UINT32 FileId); 954118611Snjl 955118611Snjlvoid 956118611SnjlUtConvertByteToHex ( 957118611Snjl UINT8 RawByte, 958118611Snjl UINT8 *Buffer); 959118611Snjl 960118611Snjlvoid 961118611SnjlUtConvertByteToAsmHex ( 962118611Snjl UINT8 RawByte, 963118611Snjl UINT8 *Buffer); 964118611Snjl 965118611Snjlchar * 966118611SnjlUtGetOpName ( 967118611Snjl UINT32 ParseOpcode); 968118611Snjl 969118611Snjlvoid 970118611SnjlUtSetParseOpName ( 971118611Snjl ACPI_PARSE_OBJECT *Op); 972118611Snjl 973118611Snjlchar * 974281075SdimUtStringCacheCalloc ( 975118611Snjl UINT32 Length); 976118611Snjl 977240716Sjkimvoid 978240716SjkimUtExpandLineBuffers ( 979240716Sjkim void); 980240716Sjkim 981281075Sdimvoid 982281075SdimUtFreeLineBuffers ( 983281075Sdim void); 984281075Sdim 985118611SnjlACPI_STATUS 986118611SnjlUtInternalizeName ( 987118611Snjl char *ExternalName, 988118611Snjl char **ConvertedName); 989118611Snjl 990118611Snjlvoid 991118611SnjlUtAttachNamepathToOwner ( 992118611Snjl ACPI_PARSE_OBJECT *Op, 993118611Snjl ACPI_PARSE_OBJECT *NameNode); 994118611Snjl 995118611SnjlACPI_PARSE_OBJECT * 996118611SnjlUtCheckIntegerRange ( 997118611Snjl ACPI_PARSE_OBJECT *Op, 998118611Snjl UINT32 LowValue, 999118611Snjl UINT32 HighValue); 1000118611Snjl 1001202771SjkimUINT64 1002118611SnjlUtDoConstant ( 1003118611Snjl char *String); 1004118611Snjl 1005220663SjkimACPI_STATUS 1006220663SjkimUtStrtoul64 ( 1007220663Sjkim char *String, 1008220663Sjkim UINT32 Base, 1009220663Sjkim UINT64 *RetInteger); 1010220663Sjkim 1011220663Sjkim 1012217365Sjkim/* 1013217365Sjkim * asluuid - UUID support 1014217365Sjkim */ 1015217365SjkimACPI_STATUS 1016217365SjkimAuValidateUuid ( 1017217365Sjkim char *InString); 1018118611Snjl 1019217365SjkimACPI_STATUS 1020217365SjkimAuConvertUuidToString ( 1021217365Sjkim char *UuIdBuffer, 1022217365Sjkim char *OutString); 1023217365Sjkim 1024118611Snjl/* 1025151937Sjkim * aslresource - Resource template generation utilities 1026118611Snjl */ 1027207344Sjkimvoid 1028207344SjkimRsSmallAddressCheck ( 1029207344Sjkim UINT8 Type, 1030207344Sjkim UINT32 Minimum, 1031207344Sjkim UINT32 Maximum, 1032207344Sjkim UINT32 Length, 1033207344Sjkim UINT32 Alignment, 1034207344Sjkim ACPI_PARSE_OBJECT *MinOp, 1035207344Sjkim ACPI_PARSE_OBJECT *MaxOp, 1036207344Sjkim ACPI_PARSE_OBJECT *LengthOp, 1037213806Sjkim ACPI_PARSE_OBJECT *AlignOp, 1038213806Sjkim ACPI_PARSE_OBJECT *Op); 1039207344Sjkim 1040207344Sjkimvoid 1041207344SjkimRsLargeAddressCheck ( 1042207344Sjkim UINT64 Minimum, 1043207344Sjkim UINT64 Maximum, 1044207344Sjkim UINT64 Length, 1045207344Sjkim UINT64 Granularity, 1046207344Sjkim UINT8 Flags, 1047207344Sjkim ACPI_PARSE_OBJECT *MinOp, 1048207344Sjkim ACPI_PARSE_OBJECT *MaxOp, 1049207344Sjkim ACPI_PARSE_OBJECT *LengthOp, 1050213806Sjkim ACPI_PARSE_OBJECT *GranOp, 1051213806Sjkim ACPI_PARSE_OBJECT *Op); 1052207344Sjkim 1053207344SjkimUINT16 1054207344SjkimRsGetStringDataLength ( 1055207344Sjkim ACPI_PARSE_OBJECT *InitializerOp); 1056207344Sjkim 1057118611SnjlASL_RESOURCE_NODE * 1058118611SnjlRsAllocateResourceNode ( 1059118611Snjl UINT32 Size); 1060118611Snjl 1061151937Sjkimvoid 1062228110SjkimRsCreateResourceField ( 1063118611Snjl ACPI_PARSE_OBJECT *Op, 1064118611Snjl char *Name, 1065118611Snjl UINT32 ByteOffset, 1066228110Sjkim UINT32 BitOffset, 1067228110Sjkim UINT32 BitLength); 1068118611Snjl 1069118611Snjlvoid 1070228110SjkimRsSetFlagBits ( 1071228110Sjkim UINT8 *Flags, 1072118611Snjl ACPI_PARSE_OBJECT *Op, 1073228110Sjkim UINT8 Position, 1074228110Sjkim UINT8 DefaultBit); 1075118611Snjl 1076118611Snjlvoid 1077228110SjkimRsSetFlagBits16 ( 1078228110Sjkim UINT16 *Flags, 1079118611Snjl ACPI_PARSE_OBJECT *Op, 1080118611Snjl UINT8 Position, 1081118611Snjl UINT8 DefaultBit); 1082118611Snjl 1083118611SnjlACPI_PARSE_OBJECT * 1084118611SnjlRsCompleteNodeAndGetNext ( 1085118611Snjl ACPI_PARSE_OBJECT *Op); 1086118611Snjl 1087151937Sjkimvoid 1088151937SjkimRsCheckListForDuplicates ( 1089151937Sjkim ACPI_PARSE_OBJECT *Op); 1090151937Sjkim 1091118611SnjlASL_RESOURCE_NODE * 1092118611SnjlRsDoOneResourceDescriptor ( 1093281075Sdim ASL_RESOURCE_INFO *Info, 1094118611Snjl UINT8 *State); 1095118611Snjl 1096151937Sjkim/* Values for State above */ 1097151937Sjkim 1098118611Snjl#define ACPI_RSTATE_NORMAL 0 1099118611Snjl#define ACPI_RSTATE_START_DEPENDENT 1 1100118611Snjl#define ACPI_RSTATE_DEPENDENT_LIST 2 1101118611Snjl 1102118611SnjlUINT32 1103118611SnjlRsLinkDescriptorChain ( 1104118611Snjl ASL_RESOURCE_NODE **PreviousRnode, 1105118611Snjl ASL_RESOURCE_NODE *Rnode); 1106118611Snjl 1107151937Sjkimvoid 1108151937SjkimRsDoResourceTemplate ( 1109151937Sjkim ACPI_PARSE_OBJECT *Op); 1110118611Snjl 1111151937Sjkim 1112118611Snjl/* 1113207344Sjkim * aslrestype1 - Miscellaneous Small descriptors 1114118611Snjl */ 1115118611SnjlASL_RESOURCE_NODE * 1116167802SjkimRsDoEndTagDescriptor ( 1117281075Sdim ASL_RESOURCE_INFO *Info); 1118167802Sjkim 1119167802SjkimASL_RESOURCE_NODE * 1120207344SjkimRsDoEndDependentDescriptor ( 1121281075Sdim ASL_RESOURCE_INFO *Info); 1122118611Snjl 1123118611SnjlASL_RESOURCE_NODE * 1124207344SjkimRsDoMemory24Descriptor ( 1125281075Sdim ASL_RESOURCE_INFO *Info); 1126118611Snjl 1127118611SnjlASL_RESOURCE_NODE * 1128207344SjkimRsDoMemory32Descriptor ( 1129281075Sdim ASL_RESOURCE_INFO *Info); 1130118611Snjl 1131118611SnjlASL_RESOURCE_NODE * 1132207344SjkimRsDoMemory32FixedDescriptor ( 1133281075Sdim ASL_RESOURCE_INFO *Info); 1134118611Snjl 1135118611SnjlASL_RESOURCE_NODE * 1136207344SjkimRsDoStartDependentDescriptor ( 1137281075Sdim ASL_RESOURCE_INFO *Info); 1138118611Snjl 1139118611SnjlASL_RESOURCE_NODE * 1140207344SjkimRsDoStartDependentNoPriDescriptor ( 1141281075Sdim ASL_RESOURCE_INFO *Info); 1142118611Snjl 1143118611SnjlASL_RESOURCE_NODE * 1144207344SjkimRsDoVendorSmallDescriptor ( 1145281075Sdim ASL_RESOURCE_INFO *Info); 1146118611Snjl 1147207344Sjkim 1148207344Sjkim/* 1149207344Sjkim * aslrestype1i - I/O-related Small descriptors 1150207344Sjkim */ 1151118611SnjlASL_RESOURCE_NODE * 1152207344SjkimRsDoDmaDescriptor ( 1153281075Sdim ASL_RESOURCE_INFO *Info); 1154118611Snjl 1155118611SnjlASL_RESOURCE_NODE * 1156228110SjkimRsDoFixedDmaDescriptor ( 1157281075Sdim ASL_RESOURCE_INFO *Info); 1158228110Sjkim 1159228110SjkimASL_RESOURCE_NODE * 1160207344SjkimRsDoFixedIoDescriptor ( 1161281075Sdim ASL_RESOURCE_INFO *Info); 1162118611Snjl 1163118611SnjlASL_RESOURCE_NODE * 1164207344SjkimRsDoIoDescriptor ( 1165281075Sdim ASL_RESOURCE_INFO *Info); 1166118611Snjl 1167118611SnjlASL_RESOURCE_NODE * 1168207344SjkimRsDoIrqDescriptor ( 1169281075Sdim ASL_RESOURCE_INFO *Info); 1170118611Snjl 1171118611SnjlASL_RESOURCE_NODE * 1172207344SjkimRsDoIrqNoFlagsDescriptor ( 1173281075Sdim ASL_RESOURCE_INFO *Info); 1174118611Snjl 1175118611Snjl 1176118611Snjl/* 1177207344Sjkim * aslrestype2 - Large resource descriptors 1178118611Snjl */ 1179151937SjkimASL_RESOURCE_NODE * 1180151937SjkimRsDoInterruptDescriptor ( 1181281075Sdim ASL_RESOURCE_INFO *Info); 1182118611Snjl 1183118611SnjlASL_RESOURCE_NODE * 1184207344SjkimRsDoVendorLargeDescriptor ( 1185281075Sdim ASL_RESOURCE_INFO *Info); 1186207344Sjkim 1187207344SjkimASL_RESOURCE_NODE * 1188207344SjkimRsDoGeneralRegisterDescriptor ( 1189281075Sdim ASL_RESOURCE_INFO *Info); 1190207344Sjkim 1191228110SjkimASL_RESOURCE_NODE * 1192228110SjkimRsDoGpioIntDescriptor ( 1193281075Sdim ASL_RESOURCE_INFO *Info); 1194207344Sjkim 1195228110SjkimASL_RESOURCE_NODE * 1196228110SjkimRsDoGpioIoDescriptor ( 1197281075Sdim ASL_RESOURCE_INFO *Info); 1198228110Sjkim 1199228110SjkimASL_RESOURCE_NODE * 1200228110SjkimRsDoI2cSerialBusDescriptor ( 1201281075Sdim ASL_RESOURCE_INFO *Info); 1202228110Sjkim 1203228110SjkimASL_RESOURCE_NODE * 1204228110SjkimRsDoSpiSerialBusDescriptor ( 1205281075Sdim ASL_RESOURCE_INFO *Info); 1206228110Sjkim 1207228110SjkimASL_RESOURCE_NODE * 1208228110SjkimRsDoUartSerialBusDescriptor ( 1209281075Sdim ASL_RESOURCE_INFO *Info); 1210228110Sjkim 1211207344Sjkim/* 1212207344Sjkim * aslrestype2d - DWord address descriptors 1213207344Sjkim */ 1214207344SjkimASL_RESOURCE_NODE * 1215118611SnjlRsDoDwordIoDescriptor ( 1216281075Sdim ASL_RESOURCE_INFO *Info); 1217118611Snjl 1218118611SnjlASL_RESOURCE_NODE * 1219118611SnjlRsDoDwordMemoryDescriptor ( 1220281075Sdim ASL_RESOURCE_INFO *Info); 1221118611Snjl 1222118611SnjlASL_RESOURCE_NODE * 1223151937SjkimRsDoDwordSpaceDescriptor ( 1224281075Sdim ASL_RESOURCE_INFO *Info); 1225151937Sjkim 1226207344Sjkim 1227207344Sjkim/* 1228207344Sjkim * aslrestype2e - Extended address descriptors 1229207344Sjkim */ 1230151937SjkimASL_RESOURCE_NODE * 1231151937SjkimRsDoExtendedIoDescriptor ( 1232281075Sdim ASL_RESOURCE_INFO *Info); 1233151937Sjkim 1234151937SjkimASL_RESOURCE_NODE * 1235151937SjkimRsDoExtendedMemoryDescriptor ( 1236281075Sdim ASL_RESOURCE_INFO *Info); 1237151937Sjkim 1238151937SjkimASL_RESOURCE_NODE * 1239151937SjkimRsDoExtendedSpaceDescriptor ( 1240281075Sdim ASL_RESOURCE_INFO *Info); 1241151937Sjkim 1242207344Sjkim 1243207344Sjkim/* 1244207344Sjkim * aslrestype2q - QWord address descriptors 1245207344Sjkim */ 1246151937SjkimASL_RESOURCE_NODE * 1247118611SnjlRsDoQwordIoDescriptor ( 1248281075Sdim ASL_RESOURCE_INFO *Info); 1249118611Snjl 1250118611SnjlASL_RESOURCE_NODE * 1251118611SnjlRsDoQwordMemoryDescriptor ( 1252281075Sdim ASL_RESOURCE_INFO *Info); 1253118611Snjl 1254118611SnjlASL_RESOURCE_NODE * 1255151937SjkimRsDoQwordSpaceDescriptor ( 1256281075Sdim ASL_RESOURCE_INFO *Info); 1257151937Sjkim 1258207344Sjkim 1259207344Sjkim/* 1260207344Sjkim * aslrestype2w - Word address descriptors 1261207344Sjkim */ 1262151937SjkimASL_RESOURCE_NODE * 1263118611SnjlRsDoWordIoDescriptor ( 1264281075Sdim ASL_RESOURCE_INFO *Info); 1265118611Snjl 1266118611SnjlASL_RESOURCE_NODE * 1267151937SjkimRsDoWordSpaceDescriptor ( 1268281075Sdim ASL_RESOURCE_INFO *Info); 1269151937Sjkim 1270151937SjkimASL_RESOURCE_NODE * 1271118611SnjlRsDoWordBusNumberDescriptor ( 1272281075Sdim ASL_RESOURCE_INFO *Info); 1273118611Snjl 1274281075Sdim 1275209746Sjkim/* 1276209746Sjkim * Entry to data table compiler subsystem 1277209746Sjkim */ 1278209746SjkimACPI_STATUS 1279209746SjkimDtDoCompile( 1280209746Sjkim void); 1281209746Sjkim 1282209746SjkimACPI_STATUS 1283209746SjkimDtCreateTemplates ( 1284209746Sjkim char *Signature); 1285209746Sjkim 1286118611Snjl#endif /* __ASLCOMPILER_H */ 1287