1118611Snjl/****************************************************************************** 2118611Snjl * 3151937Sjkim * Module Name: aslcompiler.h - common include file for iASL 4118611Snjl * 5118611Snjl *****************************************************************************/ 6118611Snjl 7217365Sjkim/* 8245582Sjkim * Copyright (C) 2000 - 2013, 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 45118611Snjl#ifndef __ASLCOMPILER_H 46118611Snjl#define __ASLCOMPILER_H 47118611Snjl 48217365Sjkim#include <contrib/dev/acpica/include/acpi.h> 49217365Sjkim#include <contrib/dev/acpica/include/accommon.h> 50217365Sjkim#include <contrib/dev/acpica/include/amlresrc.h> 51217365Sjkim#include <contrib/dev/acpica/include/acdebug.h> 52118611Snjl 53118611Snjl/* Microsoft-specific */ 54118611Snjl 55118611Snjl#if (defined WIN32 || defined WIN64) 56118611Snjl 57118611Snjl/* warn : used #pragma pack */ 58118611Snjl#pragma warning(disable:4103) 59118611Snjl 60118611Snjl/* warn : named type definition in parentheses */ 61118611Snjl#pragma warning(disable:4115) 62118611Snjl#endif 63118611Snjl 64118611Snjl#include <stdio.h> 65118611Snjl#include <stdlib.h> 66118611Snjl#include <stdarg.h> 67118611Snjl#include <string.h> 68118611Snjl#include <errno.h> 69118611Snjl#include <ctype.h> 70118611Snjl 71151937Sjkim/* Compiler headers */ 72118611Snjl 73151937Sjkim#include <contrib/dev/acpica/compiler/asldefine.h> 74151937Sjkim#include <contrib/dev/acpica/compiler/asltypes.h> 75213806Sjkim#include <contrib/dev/acpica/compiler/aslmessages.h> 76151937Sjkim#include <contrib/dev/acpica/compiler/aslglobal.h> 77233250Sjkim#include <contrib/dev/acpica/compiler/preprocess.h> 78118611Snjl 79118611Snjl 80118611Snjl/******************************************************************************* 81118611Snjl * 82118611Snjl * Compiler prototypes 83118611Snjl * 84118611Snjl ******************************************************************************/ 85118611Snjl 86151937Sjkim/* 87233250Sjkim * Main ASL parser - generated from flex/bison, lex/yacc, etc. 88151937Sjkim */ 89118611SnjlACPI_PARSE_OBJECT * 90118611SnjlAslDoError ( 91118611Snjl void); 92118611Snjl 93118611Snjlint 94118611SnjlAslCompilerlex( 95118611Snjl void); 96118611Snjl 97118611Snjlvoid 98234623SjkimAslResetCurrentLineBuffer ( 99118611Snjl void); 100118611Snjl 101118611Snjlvoid 102234623SjkimAslInsertLineBuffer ( 103118611Snjl int SourceChar); 104118611Snjl 105118611Snjlint 106118611SnjlAslPopInputFileStack ( 107118611Snjl void); 108118611Snjl 109118611Snjlvoid 110118611SnjlAslPushInputFileStack ( 111118611Snjl FILE *InputFile, 112118611Snjl char *Filename); 113118611Snjl 114193529Sjkim/* 115209746Sjkim * aslstartup - entered from main() 116193529Sjkim */ 117209746Sjkimvoid 118209746SjkimAslInitializeGlobals ( 119209746Sjkim void); 120209746Sjkim 121210976Sjkimtypedef 122210976SjkimACPI_STATUS (*ASL_PATHNAME_CALLBACK) ( 123210976Sjkim char *); 124210976Sjkim 125193529SjkimACPI_STATUS 126193529SjkimAslDoOnePathname ( 127210976Sjkim char *Pathname, 128210976Sjkim ASL_PATHNAME_CALLBACK Callback); 129118611Snjl 130193529SjkimACPI_STATUS 131193529SjkimAslDoOneFile ( 132193529Sjkim char *Filename); 133193529Sjkim 134234623SjkimACPI_STATUS 135234623SjkimAslCheckForErrorExit ( 136234623Sjkim void); 137234623Sjkim 138234623Sjkim 139151937Sjkim/* 140151937Sjkim * aslcompile - compile mainline 141151937Sjkim */ 142118611Snjlvoid 143118611SnjlAslCompilerSignon ( 144118611Snjl UINT32 FileId); 145118611Snjl 146118611Snjlvoid 147118611SnjlAslCompilerFileHeader ( 148118611Snjl UINT32 FileId); 149118611Snjl 150151937Sjkimint 151151937SjkimCmDoCompile ( 152151937Sjkim void); 153151937Sjkim 154118611Snjlvoid 155151937SjkimCmDoOutputFiles ( 156151937Sjkim void); 157118611Snjl 158151937Sjkimvoid 159151937SjkimCmCleanupAndExit ( 160151937Sjkim void); 161118611Snjl 162209746SjkimACPI_STATUS 163246849SjkimFlCheckForAcpiTable ( 164246849Sjkim FILE *Handle); 165246849Sjkim 166246849SjkimACPI_STATUS 167209746SjkimFlCheckForAscii ( 168235945Sjkim FILE *Handle, 169235945Sjkim char *Filename, 170235945Sjkim BOOLEAN DisplayErrors); 171118611Snjl 172209746Sjkim 173151937Sjkim/* 174218590Sjkim * aslwalks - semantic analysis and parse tree walks 175151937Sjkim */ 176151937SjkimACPI_STATUS 177151937SjkimAnOtherSemanticAnalysisWalkBegin ( 178151937Sjkim ACPI_PARSE_OBJECT *Op, 179151937Sjkim UINT32 Level, 180151937Sjkim void *Context); 181118611Snjl 182151937SjkimACPI_STATUS 183151937SjkimAnOtherSemanticAnalysisWalkEnd ( 184151937Sjkim ACPI_PARSE_OBJECT *Op, 185151937Sjkim UINT32 Level, 186151937Sjkim void *Context); 187118611Snjl 188151937SjkimACPI_STATUS 189151937SjkimAnOperandTypecheckWalkEnd ( 190151937Sjkim ACPI_PARSE_OBJECT *Op, 191151937Sjkim UINT32 Level, 192151937Sjkim void *Context); 193118611Snjl 194151937SjkimACPI_STATUS 195245582SjkimAnMethodTypingWalkEnd ( 196151937Sjkim ACPI_PARSE_OBJECT *Op, 197151937Sjkim UINT32 Level, 198151937Sjkim void *Context); 199118611Snjl 200245582Sjkim 201245582Sjkim/* 202245582Sjkim * aslmethod - Control method analysis walk 203245582Sjkim */ 204151937SjkimACPI_STATUS 205245582SjkimMtMethodAnalysisWalkBegin ( 206151937Sjkim ACPI_PARSE_OBJECT *Op, 207151937Sjkim UINT32 Level, 208151937Sjkim void *Context); 209118611Snjl 210151937SjkimACPI_STATUS 211245582SjkimMtMethodAnalysisWalkEnd ( 212151937Sjkim ACPI_PARSE_OBJECT *Op, 213151937Sjkim UINT32 Level, 214151937Sjkim void *Context); 215118611Snjl 216218590Sjkim 217218590Sjkim/* 218218590Sjkim * aslbtypes - bitfield data types 219218590Sjkim */ 220218590SjkimUINT32 221218590SjkimAnMapObjTypeToBtype ( 222218590Sjkim ACPI_PARSE_OBJECT *Op); 223218590Sjkim 224218590SjkimUINT32 225218590SjkimAnMapArgTypeToBtype ( 226218590Sjkim UINT32 ArgType); 227218590Sjkim 228218590SjkimUINT32 229218590SjkimAnGetBtype ( 230218590Sjkim ACPI_PARSE_OBJECT *Op); 231218590Sjkim 232218590Sjkimvoid 233218590SjkimAnFormatBtype ( 234218590Sjkim char *Buffer, 235218590Sjkim UINT32 Btype); 236218590Sjkim 237218590Sjkim 238218590Sjkim/* 239218590Sjkim * aslanalyze - Support functions for parse tree walks 240218590Sjkim */ 241218590Sjkimvoid 242218590SjkimAnCheckId ( 243151937Sjkim ACPI_PARSE_OBJECT *Op, 244218590Sjkim ACPI_NAME Type); 245118611Snjl 246218590Sjkim/* Values for Type argument above */ 247151937Sjkim 248218590Sjkim#define ASL_TYPE_HID 0 249218590Sjkim#define ASL_TYPE_CID 1 250218590Sjkim 251218590SjkimBOOLEAN 252218590SjkimAnIsInternalMethod ( 253218590Sjkim ACPI_PARSE_OBJECT *Op); 254218590Sjkim 255218590SjkimUINT32 256218590SjkimAnGetInternalMethodReturnType ( 257218590Sjkim ACPI_PARSE_OBJECT *Op); 258218590Sjkim 259218590SjkimBOOLEAN 260218590SjkimAnLastStatementIsReturn ( 261218590Sjkim ACPI_PARSE_OBJECT *Op); 262218590Sjkim 263218590Sjkimvoid 264218590SjkimAnCheckMethodReturnValue ( 265218590Sjkim ACPI_PARSE_OBJECT *Op, 266218590Sjkim const ACPI_OPCODE_INFO *OpInfo, 267218590Sjkim ACPI_PARSE_OBJECT *ArgOp, 268218590Sjkim UINT32 RequiredBtypes, 269218590Sjkim UINT32 ThisNodeBtype); 270218590Sjkim 271218590SjkimBOOLEAN 272218590SjkimAnIsResultUsed ( 273218590Sjkim ACPI_PARSE_OBJECT *Op); 274218590Sjkim 275218590Sjkimvoid 276218590SjkimApCheckForGpeNameConflict ( 277218590Sjkim ACPI_PARSE_OBJECT *Op); 278218590Sjkim 279220663Sjkimvoid 280220663SjkimApCheckRegMethod ( 281220663Sjkim ACPI_PARSE_OBJECT *Op); 282218590Sjkim 283220663Sjkim 284151937Sjkim/* 285151937Sjkim * aslerror - error handling/reporting 286151937Sjkim */ 287118611Snjlvoid 288118611SnjlAslError ( 289118611Snjl UINT8 Level, 290118611Snjl UINT8 MessageId, 291118611Snjl ACPI_PARSE_OBJECT *Op, 292118611Snjl char *ExtraMessage); 293118611Snjl 294250838SjkimACPI_STATUS 295250838SjkimAslDisableException ( 296250838Sjkim char *MessageIdString); 297250838Sjkim 298250838SjkimBOOLEAN 299250838SjkimAslIsExceptionDisabled ( 300250838Sjkim UINT8 Level, 301250838Sjkim UINT8 MessageId); 302250838Sjkim 303118611Snjlvoid 304118611SnjlAslCoreSubsystemError ( 305118611Snjl ACPI_PARSE_OBJECT *Op, 306118611Snjl ACPI_STATUS Status, 307118611Snjl char *ExtraMessage, 308118611Snjl BOOLEAN Abort); 309118611Snjl 310151937Sjkimint 311151937SjkimAslCompilererror( 312228110Sjkim const char *s); 313151937Sjkim 314118611Snjlvoid 315118611SnjlAslCommonError ( 316118611Snjl UINT8 Level, 317118611Snjl UINT8 MessageId, 318118611Snjl UINT32 CurrentLineNumber, 319118611Snjl UINT32 LogicalLineNumber, 320118611Snjl UINT32 LogicalByteOffset, 321118611Snjl UINT32 Column, 322118611Snjl char *Filename, 323118611Snjl char *ExtraMessage); 324118611Snjl 325118611Snjlvoid 326233250SjkimAslCommonError2 ( 327233250Sjkim UINT8 Level, 328233250Sjkim UINT8 MessageId, 329233250Sjkim UINT32 LineNumber, 330233250Sjkim UINT32 Column, 331233250Sjkim char *SourceLine, 332233250Sjkim char *Filename, 333233250Sjkim char *ExtraMessage); 334233250Sjkim 335233250Sjkimvoid 336118611SnjlAePrintException ( 337118611Snjl UINT32 FileId, 338118611Snjl ASL_ERROR_MSG *Enode, 339118611Snjl char *Header); 340118611Snjl 341118611Snjlvoid 342118611SnjlAePrintErrorLog ( 343118611Snjl UINT32 FileId); 344118611Snjl 345193529Sjkimvoid 346193529SjkimAeClearErrorLog ( 347193529Sjkim void); 348193529Sjkim 349167802SjkimACPI_PHYSICAL_ADDRESS 350118611SnjlAeLocalGetRootPointer ( 351167802Sjkim void); 352118611Snjl 353118611Snjl 354151937Sjkim/* 355151937Sjkim * asllisting - generate all "listing" type files 356151937Sjkim */ 357118611Snjlvoid 358151937SjkimLsDoListings ( 359151937Sjkim void); 360118611Snjl 361118611Snjlvoid 362249112SjkimLsWriteNodeToAsmListing ( 363249112Sjkim ACPI_PARSE_OBJECT *Op); 364249112Sjkim 365249112Sjkimvoid 366249112SjkimLsWriteNode ( 367249112Sjkim ACPI_PARSE_OBJECT *Op, 368249112Sjkim UINT32 FileId); 369249112Sjkim 370249112Sjkimvoid 371249112SjkimLsDumpParseTree ( 372249112Sjkim void); 373249112Sjkim 374249112Sjkim 375249112Sjkim/* 376249112Sjkim * asllistsup - Listing file support utilities 377249112Sjkim */ 378249112Sjkimvoid 379249112SjkimLsDumpAscii ( 380249112Sjkim UINT32 FileId, 381249112Sjkim UINT32 Count, 382249112Sjkim UINT8 *Buffer); 383249112Sjkim 384249112Sjkimvoid 385245582SjkimLsDumpAsciiInComment ( 386245582Sjkim UINT32 FileId, 387245582Sjkim UINT32 Count, 388245582Sjkim UINT8 *Buffer); 389245582Sjkim 390245582Sjkimvoid 391249112SjkimLsCheckException ( 392249112Sjkim UINT32 LineNumber, 393249112Sjkim UINT32 FileId); 394118611Snjl 395118611Snjlvoid 396249112SjkimLsFlushListingBuffer ( 397118611Snjl UINT32 FileId); 398118611Snjl 399118611Snjlvoid 400249112SjkimLsWriteListingHexBytes ( 401249112Sjkim UINT8 *Buffer, 402249112Sjkim UINT32 Length, 403249112Sjkim UINT32 FileId); 404249112Sjkim 405249112Sjkimvoid 406249112SjkimLsWriteSourceLines ( 407249112Sjkim UINT32 ToLineNumber, 408249112Sjkim UINT32 ToLogicalLineNumber, 409249112Sjkim UINT32 FileId); 410249112Sjkim 411249112SjkimUINT32 412249112SjkimLsWriteOneSourceLine ( 413249112Sjkim UINT32 FileId); 414249112Sjkim 415249112Sjkimvoid 416249112SjkimLsPushNode ( 417249112Sjkim char *Filename); 418249112Sjkim 419249112SjkimASL_LISTING_NODE * 420249112SjkimLsPopNode ( 421118611Snjl void); 422118611Snjl 423245582Sjkim 424245582Sjkim/* 425245582Sjkim * aslhex - generate all "hex" output files (C, ASM, ASL) 426245582Sjkim */ 427167802Sjkimvoid 428245582SjkimHxDoHexOutput ( 429167802Sjkim void); 430118611Snjl 431245582Sjkim 432151937Sjkim/* 433151937Sjkim * aslfold - constant folding 434151937Sjkim */ 435151937SjkimACPI_STATUS 436151937SjkimOpcAmlConstantWalk ( 437151937Sjkim ACPI_PARSE_OBJECT *Op, 438151937Sjkim UINT32 Level, 439151937Sjkim void *Context); 440118611Snjl 441118611Snjl 442118611Snjl/* 443249112Sjkim * asloffset - generate C offset file for BIOS support 444249112Sjkim */ 445249112SjkimACPI_STATUS 446249112SjkimLsAmlOffsetWalk ( 447249112Sjkim ACPI_PARSE_OBJECT *Op, 448249112Sjkim UINT32 Level, 449249112Sjkim void *Context); 450249112Sjkim 451249112Sjkimvoid 452249112SjkimLsDoOffsetTableHeader ( 453249112Sjkim UINT32 FileId); 454249112Sjkim 455249112Sjkimvoid 456249112SjkimLsDoOffsetTableFooter ( 457249112Sjkim UINT32 FileId); 458249112Sjkim 459249112Sjkim 460249112Sjkim/* 461118611Snjl * aslopcodes - generate AML opcodes 462118611Snjl */ 463118611SnjlACPI_STATUS 464118611SnjlOpcAmlOpcodeWalk ( 465118611Snjl ACPI_PARSE_OBJECT *Op, 466118611Snjl UINT32 Level, 467118611Snjl void *Context); 468118611Snjl 469118611SnjlACPI_STATUS 470151937SjkimOpcAmlOpcodeUpdateWalk ( 471118611Snjl ACPI_PARSE_OBJECT *Op, 472118611Snjl UINT32 Level, 473118611Snjl void *Context); 474118611Snjl 475118611Snjlvoid 476118611SnjlOpcGenerateAmlOpcode ( 477118611Snjl ACPI_PARSE_OBJECT *Op); 478118611Snjl 479118611SnjlUINT32 480118611SnjlOpcSetOptimalIntegerSize ( 481118611Snjl ACPI_PARSE_OBJECT *Op); 482118611Snjl 483118611Snjlvoid 484118611SnjlOpcGetIntegerWidth ( 485118611Snjl ACPI_PARSE_OBJECT *Op); 486118611Snjl 487151937Sjkim 488118611Snjl/* 489118611Snjl * asloperands - generate AML operands for the AML opcodes 490118611Snjl */ 491151937SjkimACPI_PARSE_OBJECT * 492151937SjkimUtGetArg ( 493151937Sjkim ACPI_PARSE_OBJECT *Op, 494151937Sjkim UINT32 Argn); 495118611Snjl 496118611Snjlvoid 497118611SnjlOpnGenerateAmlOperands ( 498118611Snjl ACPI_PARSE_OBJECT *Op); 499118611Snjl 500118611Snjlvoid 501118611SnjlOpnDoPackage ( 502118611Snjl ACPI_PARSE_OBJECT *Op); 503118611Snjl 504118611Snjl 505118611Snjl/* 506118611Snjl * aslopt - optmization 507118611Snjl */ 508118611Snjlvoid 509118611SnjlOptOptimizeNamePath ( 510118611Snjl ACPI_PARSE_OBJECT *Op, 511118611Snjl UINT32 Flags, 512118611Snjl ACPI_WALK_STATE *WalkState, 513118611Snjl char *AmlNameString, 514118611Snjl ACPI_NAMESPACE_NODE *TargetNode); 515118611Snjl 516118611Snjl 517118611Snjl/* 518151937Sjkim * aslcodegen - code generation 519118611Snjl */ 520118611Snjlvoid 521151937SjkimCgGenerateAmlOutput ( 522151937Sjkim void); 523118611Snjl 524118611Snjl 525151937Sjkim/* 526209746Sjkim * aslfile 527209746Sjkim */ 528209746Sjkimvoid 529209746SjkimFlOpenFile ( 530209746Sjkim UINT32 FileId, 531209746Sjkim char *Filename, 532209746Sjkim char *Mode); 533209746Sjkim 534209746Sjkim 535209746Sjkim/* 536151937Sjkim * asllength - calculate/adjust AML package lengths 537151937Sjkim */ 538118611SnjlACPI_STATUS 539118611SnjlLnPackageLengthWalk ( 540118611Snjl ACPI_PARSE_OBJECT *Op, 541118611Snjl UINT32 Level, 542118611Snjl void *Context); 543118611Snjl 544118611SnjlACPI_STATUS 545118611SnjlLnInitLengthsWalk ( 546118611Snjl ACPI_PARSE_OBJECT *Op, 547118611Snjl UINT32 Level, 548118611Snjl void *Context); 549118611Snjl 550118611Snjlvoid 551151937SjkimCgGenerateAmlLengths ( 552151937Sjkim ACPI_PARSE_OBJECT *Op); 553118611Snjl 554118611Snjl 555118611Snjl/* 556151937Sjkim * aslmap - opcode mappings and reserved method names 557118611Snjl */ 558118611SnjlACPI_OBJECT_TYPE 559118611SnjlAslMapNamedOpcodeToDataType ( 560118611Snjl UINT16 Opcode); 561118611Snjl 562204773Sjkim 563204773Sjkim/* 564204773Sjkim * aslpredef - ACPI predefined names support 565204773Sjkim */ 566220663SjkimBOOLEAN 567204773SjkimApCheckForPredefinedMethod ( 568204773Sjkim ACPI_PARSE_OBJECT *Op, 569204773Sjkim ASL_METHOD_INFO *MethodInfo); 570204773Sjkim 571206117Sjkimvoid 572206117SjkimApCheckPredefinedReturnValue ( 573206117Sjkim ACPI_PARSE_OBJECT *Op, 574206117Sjkim ASL_METHOD_INFO *MethodInfo); 575206117Sjkim 576204773SjkimUINT32 577204773SjkimApCheckForPredefinedName ( 578204773Sjkim ACPI_PARSE_OBJECT *Op, 579204773Sjkim char *Name); 580204773Sjkim 581204773Sjkimvoid 582204773SjkimApCheckForPredefinedObject ( 583204773Sjkim ACPI_PARSE_OBJECT *Op, 584204773Sjkim char *Name); 585204773Sjkim 586246849SjkimACPI_STATUS 587246849SjkimApCheckObjectType ( 588246849Sjkim const char *PredefinedName, 589246849Sjkim ACPI_PARSE_OBJECT *Op, 590246849Sjkim UINT32 ExpectedBtypes, 591246849Sjkim UINT32 PackageIndex); 592246849Sjkim 593204773Sjkimvoid 594204773SjkimApDisplayReservedNames ( 595151937Sjkim void); 596151937Sjkim 597151937Sjkim 598118611Snjl/* 599246849Sjkim * aslprepkg - ACPI predefined names support for packages 600246849Sjkim */ 601246849Sjkimvoid 602246849SjkimApCheckPackage ( 603246849Sjkim ACPI_PARSE_OBJECT *ParentOp, 604246849Sjkim const ACPI_PREDEFINED_INFO *Predefined); 605246849Sjkim 606246849Sjkim 607246849Sjkim/* 608118611Snjl * asltransform - parse tree transformations 609118611Snjl */ 610118611SnjlACPI_STATUS 611118611SnjlTrAmlTransformWalk ( 612118611Snjl ACPI_PARSE_OBJECT *Op, 613118611Snjl UINT32 Level, 614118611Snjl void *Context); 615118611Snjl 616118611Snjl 617118611Snjl/* 618118611Snjl * asltree - parse tree support 619118611Snjl */ 620118611SnjlACPI_STATUS 621118611SnjlTrWalkParseTree ( 622118611Snjl ACPI_PARSE_OBJECT *Op, 623118611Snjl UINT32 Visitation, 624118611Snjl ASL_WALK_CALLBACK DescendingCallback, 625118611Snjl ASL_WALK_CALLBACK AscendingCallback, 626118611Snjl void *Context); 627118611Snjl 628118611Snjl/* Values for "Visitation" parameter above */ 629118611Snjl 630118611Snjl#define ASL_WALK_VISIT_DOWNWARD 0x01 631118611Snjl#define ASL_WALK_VISIT_UPWARD 0x02 632118611Snjl#define ASL_WALK_VISIT_TWICE (ASL_WALK_VISIT_DOWNWARD | ASL_WALK_VISIT_UPWARD) 633118611Snjl 634118611Snjl 635151937SjkimACPI_PARSE_OBJECT * 636151937SjkimTrAllocateNode ( 637151937Sjkim UINT32 ParseOpcode); 638118611Snjl 639151937Sjkimvoid 640151937SjkimTrReleaseNode ( 641151937Sjkim ACPI_PARSE_OBJECT *Op); 642151937Sjkim 643118611SnjlACPI_PARSE_OBJECT * 644118611SnjlTrUpdateNode ( 645118611Snjl UINT32 ParseOpcode, 646118611Snjl ACPI_PARSE_OBJECT *Op); 647118611Snjl 648118611SnjlACPI_PARSE_OBJECT * 649118611SnjlTrCreateNode ( 650118611Snjl UINT32 ParseOpcode, 651118611Snjl UINT32 NumChildren, 652118611Snjl ...); 653118611Snjl 654118611SnjlACPI_PARSE_OBJECT * 655118611SnjlTrCreateLeafNode ( 656118611Snjl UINT32 ParseOpcode); 657118611Snjl 658118611SnjlACPI_PARSE_OBJECT * 659118611SnjlTrCreateValuedLeafNode ( 660118611Snjl UINT32 ParseOpcode, 661202771Sjkim UINT64 Value); 662118611Snjl 663118611SnjlACPI_PARSE_OBJECT * 664218590SjkimTrCreateConstantLeafNode ( 665218590Sjkim UINT32 ParseOpcode); 666218590Sjkim 667218590SjkimACPI_PARSE_OBJECT * 668118611SnjlTrLinkChildren ( 669118611Snjl ACPI_PARSE_OBJECT *Op, 670118611Snjl UINT32 NumChildren, 671118611Snjl ...); 672118611Snjl 673118611Snjlvoid 674118611SnjlTrSetEndLineNumber ( 675118611Snjl ACPI_PARSE_OBJECT *Op); 676118611Snjl 677118611Snjlvoid 678151937SjkimTrWalkTree ( 679151937Sjkim void); 680118611Snjl 681118611SnjlACPI_PARSE_OBJECT * 682118611SnjlTrLinkPeerNode ( 683118611Snjl ACPI_PARSE_OBJECT *Op1, 684118611Snjl ACPI_PARSE_OBJECT *Op2); 685118611Snjl 686118611SnjlACPI_PARSE_OBJECT * 687118611SnjlTrLinkChildNode ( 688118611Snjl ACPI_PARSE_OBJECT *Op1, 689118611Snjl ACPI_PARSE_OBJECT *Op2); 690118611Snjl 691118611SnjlACPI_PARSE_OBJECT * 692118611SnjlTrSetNodeFlags ( 693118611Snjl ACPI_PARSE_OBJECT *Op, 694118611Snjl UINT32 Flags); 695118611Snjl 696118611SnjlACPI_PARSE_OBJECT * 697239340SjkimTrSetNodeAmlLength ( 698239340Sjkim ACPI_PARSE_OBJECT *Op, 699239340Sjkim UINT32 Length); 700239340Sjkim 701239340SjkimACPI_PARSE_OBJECT * 702118611SnjlTrLinkPeerNodes ( 703118611Snjl UINT32 NumPeers, 704118611Snjl ...); 705118611Snjl 706118611Snjl 707118611Snjl/* 708118611Snjl * aslfiles - File I/O support 709118611Snjl */ 710118611Snjlvoid 711151937SjkimAslAbort ( 712151937Sjkim void); 713118611Snjl 714118611Snjlvoid 715197104SjkimFlAddIncludeDirectory ( 716197104Sjkim char *Dir); 717197104Sjkim 718235945Sjkimchar * 719235945SjkimFlMergePathnames ( 720235945Sjkim char *PrefixDir, 721235945Sjkim char *FilePathname); 722235945Sjkim 723197104Sjkimvoid 724118611SnjlFlOpenIncludeFile ( 725118611Snjl ACPI_PARSE_OBJECT *Op); 726118611Snjl 727118611Snjlvoid 728118611SnjlFlFileError ( 729118611Snjl UINT32 FileId, 730118611Snjl UINT8 ErrorId); 731118611Snjl 732207344SjkimUINT32 733207344SjkimFlGetFileSize ( 734207344Sjkim UINT32 FileId); 735207344Sjkim 736118611SnjlACPI_STATUS 737118611SnjlFlReadFile ( 738118611Snjl UINT32 FileId, 739118611Snjl void *Buffer, 740118611Snjl UINT32 Length); 741118611Snjl 742118611Snjlvoid 743118611SnjlFlWriteFile ( 744118611Snjl UINT32 FileId, 745118611Snjl void *Buffer, 746118611Snjl UINT32 Length); 747118611Snjl 748118611Snjlvoid 749118611SnjlFlSeekFile ( 750118611Snjl UINT32 FileId, 751118611Snjl long Offset); 752118611Snjl 753118611Snjlvoid 754118611SnjlFlCloseFile ( 755118611Snjl UINT32 FileId); 756118611Snjl 757118611Snjlvoid 758118611SnjlFlPrintFile ( 759118611Snjl UINT32 FileId, 760118611Snjl char *Format, 761118611Snjl ...); 762118611Snjl 763118611Snjlvoid 764240716SjkimFlDeleteFile ( 765240716Sjkim UINT32 FileId); 766240716Sjkim 767240716Sjkimvoid 768118611SnjlFlSetLineNumber ( 769234623Sjkim UINT32 LineNumber); 770118611Snjl 771234623Sjkimvoid 772234623SjkimFlSetFilename ( 773234623Sjkim char *Filename); 774234623Sjkim 775118611SnjlACPI_STATUS 776118611SnjlFlOpenInputFile ( 777118611Snjl char *InputFilename); 778118611Snjl 779118611SnjlACPI_STATUS 780118611SnjlFlOpenAmlOutputFile ( 781118611Snjl char *InputFilename); 782118611Snjl 783118611SnjlACPI_STATUS 784118611SnjlFlOpenMiscOutputFiles ( 785118611Snjl char *InputFilename); 786118611Snjl 787118611Snjl 788151937Sjkim/* 789151937Sjkim * asload - load namespace in prep for cross reference 790151937Sjkim */ 791118611SnjlACPI_STATUS 792118611SnjlLdLoadNamespace ( 793118611Snjl ACPI_PARSE_OBJECT *RootOp); 794118611Snjl 795118611Snjl 796151937Sjkim/* 797245582Sjkim * asllookup - namespace lookup functions 798151937Sjkim */ 799167802Sjkimvoid 800167802SjkimLkFindUnreferencedObjects ( 801167802Sjkim void); 802167802Sjkim 803250838Sjkim/* 804250838Sjkim * aslmain - startup 805250838Sjkim */ 806250838Sjkimvoid 807250838SjkimUsage ( 808250838Sjkim void); 809245582Sjkim 810250838Sjkimvoid 811250838SjkimAslFilenameHelp ( 812250838Sjkim void); 813250838Sjkim 814250838Sjkim 815245582Sjkim/* 816245582Sjkim * aslnamesp - namespace output file generation 817245582Sjkim */ 818118611SnjlACPI_STATUS 819245582SjkimNsDisplayNamespace ( 820118611Snjl void); 821118611Snjl 822212761Sjkimvoid 823245582SjkimNsSetupNamespaceListing ( 824212761Sjkim void *Handle); 825118611Snjl 826250838Sjkim/* 827250838Sjkim * asloptions - command line processing 828250838Sjkim */ 829250838Sjkimint 830250838SjkimAslCommandLine ( 831250838Sjkim int argc, 832250838Sjkim char **argv); 833212761Sjkim 834151937Sjkim/* 835245582Sjkim * aslxref - namespace cross reference 836245582Sjkim */ 837245582SjkimACPI_STATUS 838245582SjkimXfCrossReferenceNamespace ( 839245582Sjkim void); 840245582Sjkim 841245582Sjkim 842245582Sjkim/* 843151937Sjkim * aslutils - common compiler utilites 844151937Sjkim */ 845151937Sjkimvoid 846151937SjkimDbgPrint ( 847151937Sjkim UINT32 Type, 848151937Sjkim char *Format, 849151937Sjkim ...); 850118611Snjl 851151937Sjkim/* Type values for above */ 852118611Snjl 853151937Sjkim#define ASL_DEBUG_OUTPUT 0 854151937Sjkim#define ASL_PARSE_OUTPUT 1 855151937Sjkim#define ASL_TREE_OUTPUT 2 856151937Sjkim 857118611Snjlvoid 858209746SjkimUtDisplaySupportedTables ( 859209746Sjkim void); 860209746Sjkim 861209746Sjkimvoid 862118611SnjlUtDisplayConstantOpcodes ( 863118611Snjl void); 864118611Snjl 865151937SjkimUINT8 866118611SnjlUtBeginEvent ( 867118611Snjl char *Name); 868118611Snjl 869118611Snjlvoid 870118611SnjlUtEndEvent ( 871151937Sjkim UINT8 Event); 872118611Snjl 873118611Snjlvoid * 874118611SnjlUtLocalCalloc ( 875118611Snjl UINT32 Size); 876118611Snjl 877118611Snjlvoid 878118611SnjlUtPrintFormattedName ( 879118611Snjl UINT16 ParseOpcode, 880118611Snjl UINT32 Level); 881118611Snjl 882118611Snjlvoid 883118611SnjlUtDisplaySummary ( 884118611Snjl UINT32 FileId); 885118611Snjl 886118611SnjlUINT8 887118611SnjlUtHexCharToValue ( 888151937Sjkim int HexChar); 889118611Snjl 890118611Snjlvoid 891118611SnjlUtConvertByteToHex ( 892118611Snjl UINT8 RawByte, 893118611Snjl UINT8 *Buffer); 894118611Snjl 895118611Snjlvoid 896118611SnjlUtConvertByteToAsmHex ( 897118611Snjl UINT8 RawByte, 898118611Snjl UINT8 *Buffer); 899118611Snjl 900118611Snjlchar * 901118611SnjlUtGetOpName ( 902118611Snjl UINT32 ParseOpcode); 903118611Snjl 904118611Snjlvoid 905118611SnjlUtSetParseOpName ( 906118611Snjl ACPI_PARSE_OBJECT *Op); 907118611Snjl 908118611Snjlchar * 909118611SnjlUtGetStringBuffer ( 910118611Snjl UINT32 Length); 911118611Snjl 912240716Sjkimvoid 913240716SjkimUtExpandLineBuffers ( 914240716Sjkim void); 915240716Sjkim 916118611SnjlACPI_STATUS 917118611SnjlUtInternalizeName ( 918118611Snjl char *ExternalName, 919118611Snjl char **ConvertedName); 920118611Snjl 921118611Snjlvoid 922118611SnjlUtAttachNamepathToOwner ( 923118611Snjl ACPI_PARSE_OBJECT *Op, 924118611Snjl ACPI_PARSE_OBJECT *NameNode); 925118611Snjl 926118611SnjlACPI_PARSE_OBJECT * 927118611SnjlUtCheckIntegerRange ( 928118611Snjl ACPI_PARSE_OBJECT *Op, 929118611Snjl UINT32 LowValue, 930118611Snjl UINT32 HighValue); 931118611Snjl 932202771SjkimUINT64 933118611SnjlUtDoConstant ( 934118611Snjl char *String); 935118611Snjl 936220663SjkimACPI_STATUS 937220663SjkimUtStrtoul64 ( 938220663Sjkim char *String, 939220663Sjkim UINT32 Base, 940220663Sjkim UINT64 *RetInteger); 941220663Sjkim 942220663Sjkim 943217365Sjkim/* 944217365Sjkim * asluuid - UUID support 945217365Sjkim */ 946217365SjkimACPI_STATUS 947217365SjkimAuValidateUuid ( 948217365Sjkim char *InString); 949118611Snjl 950217365SjkimACPI_STATUS 951217365SjkimAuConvertStringToUuid ( 952217365Sjkim char *InString, 953217365Sjkim char *UuIdBuffer); 954217365Sjkim 955217365SjkimACPI_STATUS 956217365SjkimAuConvertUuidToString ( 957217365Sjkim char *UuIdBuffer, 958217365Sjkim char *OutString); 959217365Sjkim 960118611Snjl/* 961151937Sjkim * aslresource - Resource template generation utilities 962118611Snjl */ 963207344Sjkimvoid 964207344SjkimRsSmallAddressCheck ( 965207344Sjkim UINT8 Type, 966207344Sjkim UINT32 Minimum, 967207344Sjkim UINT32 Maximum, 968207344Sjkim UINT32 Length, 969207344Sjkim UINT32 Alignment, 970207344Sjkim ACPI_PARSE_OBJECT *MinOp, 971207344Sjkim ACPI_PARSE_OBJECT *MaxOp, 972207344Sjkim ACPI_PARSE_OBJECT *LengthOp, 973213806Sjkim ACPI_PARSE_OBJECT *AlignOp, 974213806Sjkim ACPI_PARSE_OBJECT *Op); 975207344Sjkim 976207344Sjkimvoid 977207344SjkimRsLargeAddressCheck ( 978207344Sjkim UINT64 Minimum, 979207344Sjkim UINT64 Maximum, 980207344Sjkim UINT64 Length, 981207344Sjkim UINT64 Granularity, 982207344Sjkim UINT8 Flags, 983207344Sjkim ACPI_PARSE_OBJECT *MinOp, 984207344Sjkim ACPI_PARSE_OBJECT *MaxOp, 985207344Sjkim ACPI_PARSE_OBJECT *LengthOp, 986213806Sjkim ACPI_PARSE_OBJECT *GranOp, 987213806Sjkim ACPI_PARSE_OBJECT *Op); 988207344Sjkim 989207344SjkimUINT16 990207344SjkimRsGetStringDataLength ( 991207344Sjkim ACPI_PARSE_OBJECT *InitializerOp); 992207344Sjkim 993118611SnjlASL_RESOURCE_NODE * 994118611SnjlRsAllocateResourceNode ( 995118611Snjl UINT32 Size); 996118611Snjl 997151937Sjkimvoid 998228110SjkimRsCreateResourceField ( 999118611Snjl ACPI_PARSE_OBJECT *Op, 1000118611Snjl char *Name, 1001118611Snjl UINT32 ByteOffset, 1002228110Sjkim UINT32 BitOffset, 1003228110Sjkim UINT32 BitLength); 1004118611Snjl 1005118611Snjlvoid 1006228110SjkimRsSetFlagBits ( 1007228110Sjkim UINT8 *Flags, 1008118611Snjl ACPI_PARSE_OBJECT *Op, 1009228110Sjkim UINT8 Position, 1010228110Sjkim UINT8 DefaultBit); 1011118611Snjl 1012118611Snjlvoid 1013228110SjkimRsSetFlagBits16 ( 1014228110Sjkim UINT16 *Flags, 1015118611Snjl ACPI_PARSE_OBJECT *Op, 1016118611Snjl UINT8 Position, 1017118611Snjl UINT8 DefaultBit); 1018118611Snjl 1019118611SnjlACPI_PARSE_OBJECT * 1020118611SnjlRsCompleteNodeAndGetNext ( 1021118611Snjl ACPI_PARSE_OBJECT *Op); 1022118611Snjl 1023151937Sjkimvoid 1024151937SjkimRsCheckListForDuplicates ( 1025151937Sjkim ACPI_PARSE_OBJECT *Op); 1026151937Sjkim 1027118611SnjlASL_RESOURCE_NODE * 1028118611SnjlRsDoOneResourceDescriptor ( 1029118611Snjl ACPI_PARSE_OBJECT *DescriptorTypeOp, 1030118611Snjl UINT32 CurrentByteOffset, 1031118611Snjl UINT8 *State); 1032118611Snjl 1033151937Sjkim/* Values for State above */ 1034151937Sjkim 1035118611Snjl#define ACPI_RSTATE_NORMAL 0 1036118611Snjl#define ACPI_RSTATE_START_DEPENDENT 1 1037118611Snjl#define ACPI_RSTATE_DEPENDENT_LIST 2 1038118611Snjl 1039118611SnjlUINT32 1040118611SnjlRsLinkDescriptorChain ( 1041118611Snjl ASL_RESOURCE_NODE **PreviousRnode, 1042118611Snjl ASL_RESOURCE_NODE *Rnode); 1043118611Snjl 1044151937Sjkimvoid 1045151937SjkimRsDoResourceTemplate ( 1046151937Sjkim ACPI_PARSE_OBJECT *Op); 1047118611Snjl 1048151937Sjkim 1049118611Snjl/* 1050207344Sjkim * aslrestype1 - Miscellaneous Small descriptors 1051118611Snjl */ 1052118611SnjlASL_RESOURCE_NODE * 1053167802SjkimRsDoEndTagDescriptor ( 1054167802Sjkim ACPI_PARSE_OBJECT *Op, 1055167802Sjkim UINT32 CurrentByteOffset); 1056167802Sjkim 1057167802SjkimASL_RESOURCE_NODE * 1058207344SjkimRsDoEndDependentDescriptor ( 1059118611Snjl ACPI_PARSE_OBJECT *Op, 1060118611Snjl UINT32 CurrentByteOffset); 1061118611Snjl 1062118611SnjlASL_RESOURCE_NODE * 1063207344SjkimRsDoMemory24Descriptor ( 1064118611Snjl ACPI_PARSE_OBJECT *Op, 1065118611Snjl UINT32 CurrentByteOffset); 1066118611Snjl 1067118611SnjlASL_RESOURCE_NODE * 1068207344SjkimRsDoMemory32Descriptor ( 1069118611Snjl ACPI_PARSE_OBJECT *Op, 1070118611Snjl UINT32 CurrentByteOffset); 1071118611Snjl 1072118611SnjlASL_RESOURCE_NODE * 1073207344SjkimRsDoMemory32FixedDescriptor ( 1074118611Snjl ACPI_PARSE_OBJECT *Op, 1075118611Snjl UINT32 CurrentByteOffset); 1076118611Snjl 1077118611SnjlASL_RESOURCE_NODE * 1078207344SjkimRsDoStartDependentDescriptor ( 1079118611Snjl ACPI_PARSE_OBJECT *Op, 1080118611Snjl UINT32 CurrentByteOffset); 1081118611Snjl 1082118611SnjlASL_RESOURCE_NODE * 1083207344SjkimRsDoStartDependentNoPriDescriptor ( 1084118611Snjl ACPI_PARSE_OBJECT *Op, 1085118611Snjl UINT32 CurrentByteOffset); 1086118611Snjl 1087118611SnjlASL_RESOURCE_NODE * 1088207344SjkimRsDoVendorSmallDescriptor ( 1089118611Snjl ACPI_PARSE_OBJECT *Op, 1090118611Snjl UINT32 CurrentByteOffset); 1091118611Snjl 1092207344Sjkim 1093207344Sjkim/* 1094207344Sjkim * aslrestype1i - I/O-related Small descriptors 1095207344Sjkim */ 1096118611SnjlASL_RESOURCE_NODE * 1097207344SjkimRsDoDmaDescriptor ( 1098118611Snjl ACPI_PARSE_OBJECT *Op, 1099118611Snjl UINT32 CurrentByteOffset); 1100118611Snjl 1101118611SnjlASL_RESOURCE_NODE * 1102228110SjkimRsDoFixedDmaDescriptor ( 1103228110Sjkim ACPI_PARSE_OBJECT *Op, 1104228110Sjkim UINT32 CurrentByteOffset); 1105228110Sjkim 1106228110SjkimASL_RESOURCE_NODE * 1107207344SjkimRsDoFixedIoDescriptor ( 1108118611Snjl ACPI_PARSE_OBJECT *Op, 1109118611Snjl UINT32 CurrentByteOffset); 1110118611Snjl 1111118611SnjlASL_RESOURCE_NODE * 1112207344SjkimRsDoIoDescriptor ( 1113118611Snjl ACPI_PARSE_OBJECT *Op, 1114118611Snjl UINT32 CurrentByteOffset); 1115118611Snjl 1116118611SnjlASL_RESOURCE_NODE * 1117207344SjkimRsDoIrqDescriptor ( 1118118611Snjl ACPI_PARSE_OBJECT *Op, 1119118611Snjl UINT32 CurrentByteOffset); 1120118611Snjl 1121118611SnjlASL_RESOURCE_NODE * 1122207344SjkimRsDoIrqNoFlagsDescriptor ( 1123118611Snjl ACPI_PARSE_OBJECT *Op, 1124118611Snjl UINT32 CurrentByteOffset); 1125118611Snjl 1126118611Snjl 1127118611Snjl/* 1128207344Sjkim * aslrestype2 - Large resource descriptors 1129118611Snjl */ 1130151937SjkimASL_RESOURCE_NODE * 1131151937SjkimRsDoInterruptDescriptor ( 1132151937Sjkim ACPI_PARSE_OBJECT *Op, 1133151937Sjkim UINT32 CurrentByteOffset); 1134118611Snjl 1135118611SnjlASL_RESOURCE_NODE * 1136207344SjkimRsDoVendorLargeDescriptor ( 1137207344Sjkim ACPI_PARSE_OBJECT *Op, 1138207344Sjkim UINT32 CurrentByteOffset); 1139207344Sjkim 1140207344SjkimASL_RESOURCE_NODE * 1141207344SjkimRsDoGeneralRegisterDescriptor ( 1142207344Sjkim ACPI_PARSE_OBJECT *Op, 1143207344Sjkim UINT32 CurrentByteOffset); 1144207344Sjkim 1145228110SjkimASL_RESOURCE_NODE * 1146228110SjkimRsDoGpioIntDescriptor ( 1147228110Sjkim ACPI_PARSE_OBJECT *Op, 1148228110Sjkim UINT32 CurrentByteOffset); 1149207344Sjkim 1150228110SjkimASL_RESOURCE_NODE * 1151228110SjkimRsDoGpioIoDescriptor ( 1152228110Sjkim ACPI_PARSE_OBJECT *Op, 1153228110Sjkim UINT32 CurrentByteOffset); 1154228110Sjkim 1155228110SjkimASL_RESOURCE_NODE * 1156228110SjkimRsDoI2cSerialBusDescriptor ( 1157228110Sjkim ACPI_PARSE_OBJECT *Op, 1158228110Sjkim UINT32 CurrentByteOffset); 1159228110Sjkim 1160228110SjkimASL_RESOURCE_NODE * 1161228110SjkimRsDoSpiSerialBusDescriptor ( 1162228110Sjkim ACPI_PARSE_OBJECT *Op, 1163228110Sjkim UINT32 CurrentByteOffset); 1164228110Sjkim 1165228110SjkimASL_RESOURCE_NODE * 1166228110SjkimRsDoUartSerialBusDescriptor ( 1167228110Sjkim ACPI_PARSE_OBJECT *Op, 1168228110Sjkim UINT32 CurrentByteOffset); 1169228110Sjkim 1170207344Sjkim/* 1171207344Sjkim * aslrestype2d - DWord address descriptors 1172207344Sjkim */ 1173207344SjkimASL_RESOURCE_NODE * 1174118611SnjlRsDoDwordIoDescriptor ( 1175118611Snjl ACPI_PARSE_OBJECT *Op, 1176118611Snjl UINT32 CurrentByteOffset); 1177118611Snjl 1178118611SnjlASL_RESOURCE_NODE * 1179118611SnjlRsDoDwordMemoryDescriptor ( 1180118611Snjl ACPI_PARSE_OBJECT *Op, 1181118611Snjl UINT32 CurrentByteOffset); 1182118611Snjl 1183118611SnjlASL_RESOURCE_NODE * 1184151937SjkimRsDoDwordSpaceDescriptor ( 1185151937Sjkim ACPI_PARSE_OBJECT *Op, 1186151937Sjkim UINT32 CurrentByteOffset); 1187151937Sjkim 1188207344Sjkim 1189207344Sjkim/* 1190207344Sjkim * aslrestype2e - Extended address descriptors 1191207344Sjkim */ 1192151937SjkimASL_RESOURCE_NODE * 1193151937SjkimRsDoExtendedIoDescriptor ( 1194151937Sjkim ACPI_PARSE_OBJECT *Op, 1195151937Sjkim UINT32 CurrentByteOffset); 1196151937Sjkim 1197151937SjkimASL_RESOURCE_NODE * 1198151937SjkimRsDoExtendedMemoryDescriptor ( 1199151937Sjkim ACPI_PARSE_OBJECT *Op, 1200151937Sjkim UINT32 CurrentByteOffset); 1201151937Sjkim 1202151937SjkimASL_RESOURCE_NODE * 1203151937SjkimRsDoExtendedSpaceDescriptor ( 1204151937Sjkim ACPI_PARSE_OBJECT *Op, 1205151937Sjkim UINT32 CurrentByteOffset); 1206151937Sjkim 1207207344Sjkim 1208207344Sjkim/* 1209207344Sjkim * aslrestype2q - QWord address descriptors 1210207344Sjkim */ 1211151937SjkimASL_RESOURCE_NODE * 1212118611SnjlRsDoQwordIoDescriptor ( 1213118611Snjl ACPI_PARSE_OBJECT *Op, 1214118611Snjl UINT32 CurrentByteOffset); 1215118611Snjl 1216118611SnjlASL_RESOURCE_NODE * 1217118611SnjlRsDoQwordMemoryDescriptor ( 1218118611Snjl ACPI_PARSE_OBJECT *Op, 1219118611Snjl UINT32 CurrentByteOffset); 1220118611Snjl 1221118611SnjlASL_RESOURCE_NODE * 1222151937SjkimRsDoQwordSpaceDescriptor ( 1223151937Sjkim ACPI_PARSE_OBJECT *Op, 1224151937Sjkim UINT32 CurrentByteOffset); 1225151937Sjkim 1226207344Sjkim 1227207344Sjkim/* 1228207344Sjkim * aslrestype2w - Word address descriptors 1229207344Sjkim */ 1230151937SjkimASL_RESOURCE_NODE * 1231118611SnjlRsDoWordIoDescriptor ( 1232118611Snjl ACPI_PARSE_OBJECT *Op, 1233118611Snjl UINT32 CurrentByteOffset); 1234118611Snjl 1235118611SnjlASL_RESOURCE_NODE * 1236151937SjkimRsDoWordSpaceDescriptor ( 1237151937Sjkim ACPI_PARSE_OBJECT *Op, 1238151937Sjkim UINT32 CurrentByteOffset); 1239151937Sjkim 1240151937SjkimASL_RESOURCE_NODE * 1241118611SnjlRsDoWordBusNumberDescriptor ( 1242118611Snjl ACPI_PARSE_OBJECT *Op, 1243118611Snjl UINT32 CurrentByteOffset); 1244118611Snjl 1245209746Sjkim/* 1246209746Sjkim * Entry to data table compiler subsystem 1247209746Sjkim */ 1248209746SjkimACPI_STATUS 1249209746SjkimDtDoCompile( 1250209746Sjkim void); 1251209746Sjkim 1252209746SjkimACPI_STATUS 1253209746SjkimDtCreateTemplates ( 1254209746Sjkim char *Signature); 1255209746Sjkim 1256118611Snjl#endif /* __ASLCOMPILER_H */ 1257