acdispat.h revision 114237
1139825Simp/****************************************************************************** 286227Stmm * 3128776Stmm * Name: acdispat.h - dispatcher (parser to interpreter interface) 4167308Smarius * $Revision: 56 $ 5128776Stmm * 686227Stmm *****************************************************************************/ 786227Stmm 886227Stmm/****************************************************************************** 986227Stmm * 1086227Stmm * 1. Copyright Notice 1186227Stmm * 1286227Stmm * Some or all of this work - Copyright (c) 1999 - 2003, Intel Corp. 1386227Stmm * All rights reserved. 1486227Stmm * 1586227Stmm * 2. License 1686227Stmm * 1786227Stmm * 2.1. This is your license from Intel Corp. under its intellectual property 18128776Stmm * rights. You may have additional license terms from the party that provided 1986227Stmm * you this software, covering your right to use that party's intellectual 2086227Stmm * property rights. 2186227Stmm * 2286227Stmm * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a 2386227Stmm * copy of the source code appearing in this file ("Covered Code") an 2486227Stmm * irrevocable, perpetual, worldwide license under Intel's copyrights in the 2586227Stmm * base code distributed originally by Intel ("Original Intel Code") to copy, 2686227Stmm * make derivatives, distribute, use and display any portion of the Covered 2786227Stmm * Code in any form, with the right to sublicense such rights; and 2886227Stmm * 2986227Stmm * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent 3086227Stmm * license (with the right to sublicense), under only those claims of Intel 3186227Stmm * patents that are infringed by the Original Intel Code, to make, use, sell, 3286227Stmm * offer to sell, and import the Covered Code and derivative works thereof 3386227Stmm * solely to the minimum extent necessary to exercise the above copyright 3486227Stmm * license, and in no event shall the patent license extend to any additions 35146474Smarius * to or modifications of the Original Intel Code. No other license or right 36146474Smarius * is granted directly or by implication, estoppel or otherwise; 37146474Smarius * 3886227Stmm * The above copyright and patent license is granted only if the following 3986227Stmm * conditions are met: 4086227Stmm * 4186227Stmm * 3. Conditions 4286227Stmm * 43130068Sphk * 3.1. Redistribution of Source with Rights to Further Distribute Source. 4486227Stmm * Redistribution of source code of any substantial portion of the Covered 45167308Smarius * Code or modification with rights to further distribute source must include 46167308Smarius * the above Copyright Notice, the above License, this list of Conditions, 4786227Stmm * and the following Disclaimer and Export Compliance provision. In addition, 4886227Stmm * Licensee must cause all Covered Code to which Licensee contributes to 4986227Stmm * contain a file documenting the changes Licensee made to create that Covered 50167308Smarius * Code and the date of any change. Licensee must include in that file the 5186227Stmm * documentation of any changes made by any predecessor Licensee. Licensee 52167308Smarius * must include a prominent statement that the modification is derived, 5386227Stmm * directly or indirectly, from Original Intel Code. 54167308Smarius * 5586227Stmm * 3.2. Redistribution of Source with no Rights to Further Distribute Source. 5686227Stmm * Redistribution of source code of any substantial portion of the Covered 5786227Stmm * Code or modification without rights to further distribute source must 5886227Stmm * include the following Disclaimer and Export Compliance provision in the 5986227Stmm * documentation and/or other materials provided with distribution. In 60133862Smarius * addition, Licensee may not authorize further sublicense of source of any 6186227Stmm * portion of the Covered Code, and must include terms to the effect that the 62128776Stmm * license from Licensee to its licensee is limited to the intellectual 6386227Stmm * property embodied in the software Licensee provides to its licensee, and 6486227Stmm * not to intellectual property embodied in modifications its licensee may 6586227Stmm * make. 6686227Stmm * 6786227Stmm * 3.3. Redistribution of Executable. Redistribution in executable form of any 68133862Smarius * substantial portion of the Covered Code or modification must reproduce the 6986227Stmm * above Copyright Notice, and the following Disclaimer and Export Compliance 7086227Stmm * provision in the documentation and/or other materials provided with the 7186227Stmm * distribution. 72167308Smarius * 73167308Smarius * 3.4. Intel retains all right, title, and interest in and to the Original 7486227Stmm * Intel Code. 7586227Stmm * 7688823Stmm * 3.5. Neither the name Intel nor any other trademark owned or controlled by 7788823Stmm * Intel shall be used in advertising or otherwise to promote the sale, use or 7888823Stmm * other dealings in products derived from or relating to the Covered Code 7988823Stmm * without prior written authorization from Intel. 8088823Stmm * 81128776Stmm * 4. Disclaimer and Export Compliance 82128776Stmm * 83167308Smarius * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED 84146474Smarius * HERE. ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE 85128776Stmm * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT, ASSISTANCE, 86128776Stmm * INSTALLATION, TRAINING OR OTHER SERVICES. INTEL WILL NOT PROVIDE ANY 87128776Stmm * UPDATES, ENHANCEMENTS OR EXTENSIONS. INTEL SPECIFICALLY DISCLAIMS ANY 88128776Stmm * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A 89128776Stmm * PARTICULAR PURPOSE. 90128776Stmm * 91128776Stmm * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES 92167308Smarius * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR 93167308Smarius * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT, 94167308Smarius * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY 9586227Stmm * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL 96178443Smarius * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. THESE LIMITATIONS 97178443Smarius * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY 98178443Smarius * LIMITED REMEDY. 99185133Smarius * 100167308Smarius * 4.3. Licensee shall not export, either directly or indirectly, any of this 101167308Smarius * software or system incorporating such software without first obtaining any 102167308Smarius * required license or other approval from the U. S. Department of Commerce or 103167308Smarius * any other agency or department of the United States Government. In the 10486227Stmm * event Licensee exports any such software from the United States or 10586227Stmm * re-exports any such software from a foreign destination, Licensee shall 10686227Stmm * ensure that the distribution and export/re-export of the software is in 107128776Stmm * compliance with all laws, regulations, orders, or other restrictions of the 10886227Stmm * U.S. Export Administration Regulations. Licensee agrees that neither it nor 10986227Stmm * any of its subsidiaries will export/re-export any technical data, process, 11086227Stmm * software, or service, directly or indirectly, to any country for which the 11186227Stmm * United States government or any agency thereof requires an export license, 11286227Stmm * other governmental approval, or letter of assurance, without first obtaining 113167308Smarius * such license, approval or letter. 114167308Smarius * 115167308Smarius *****************************************************************************/ 116167308Smarius 117167308Smarius 118146474Smarius#ifndef _ACDISPAT_H_ 11986227Stmm#define _ACDISPAT_H_ 12086227Stmm 12186227Stmm 12286227Stmm#define NAMEOF_LOCAL_NTE "__L0" 123167308Smarius#define NAMEOF_ARG_NTE "__A0" 124167308Smarius 125190099Smarius 126190099Smarius/* Common interfaces */ 127190099Smarius 128178443SmariusACPI_STATUS 129178443SmariusAcpiDsObjStackPush ( 130178443Smarius void *Object, 131167308Smarius ACPI_WALK_STATE *WalkState); 13286227Stmm 133167308SmariusACPI_STATUS 134167308SmariusAcpiDsObjStackPop ( 135167308Smarius UINT32 PopCount, 136167308Smarius ACPI_WALK_STATE *WalkState); 137167308Smarius 138167308Smariusvoid * 139167308SmariusAcpiDsObjStackGetValue ( 140167308Smarius UINT32 Index, 141190099Smarius ACPI_WALK_STATE *WalkState); 14286227Stmm 14386227StmmACPI_STATUS 14486227StmmAcpiDsObjStackPopObject ( 14586227Stmm ACPI_OPERAND_OBJECT **Object, 146167308Smarius ACPI_WALK_STATE *WalkState); 147200874Smarius 148200874Smarius 149200815Smarius/* dsopcode - support for late evaluation */ 15086227Stmm 151185133SmariusACPI_STATUS 15290622StmmAcpiDsExecuteArguments ( 153167308Smarius ACPI_NAMESPACE_NODE *Node, 15490622Stmm ACPI_NAMESPACE_NODE *ScopeNode, 15590622Stmm UINT32 AmlLength, 15686227Stmm UINT8 *AmlStart); 15790622Stmm 15886227StmmACPI_STATUS 15986227StmmAcpiDsGetBufferFieldArguments ( 160167308Smarius ACPI_OPERAND_OBJECT *ObjDesc); 16190622Stmm 16286227StmmACPI_STATUS 16386227StmmAcpiDsGetRegionArguments ( 16486227Stmm ACPI_OPERAND_OBJECT *RgnDesc); 165185133Smarius 16686227StmmACPI_STATUS 16786227StmmAcpiDsGetBufferArguments ( 16886227Stmm ACPI_OPERAND_OBJECT *ObjDesc); 16986227Stmm 17086227StmmACPI_STATUS 17186227StmmAcpiDsGetPackageArguments ( 17286227Stmm ACPI_OPERAND_OBJECT *ObjDesc); 17386227Stmm 174185133SmariusACPI_STATUS 17586227StmmAcpiDsInitBufferField ( 17686227Stmm UINT16 AmlOpcode, 17786227Stmm ACPI_OPERAND_OBJECT *ObjDesc, 178167308Smarius ACPI_OPERAND_OBJECT *BufferDesc, 179167308Smarius ACPI_OPERAND_OBJECT *OffsetDesc, 18086227Stmm ACPI_OPERAND_OBJECT *LengthDesc, 18186227Stmm ACPI_OPERAND_OBJECT *ResultDesc); 18286227Stmm 18386227StmmACPI_STATUS 18486227StmmAcpiDsEvalBufferFieldOperands ( 18586227Stmm ACPI_WALK_STATE *WalkState, 18686227Stmm ACPI_PARSE_OBJECT *Op); 18786227Stmm 18886227StmmACPI_STATUS 18986227StmmAcpiDsEvalRegionOperands ( 19086227Stmm ACPI_WALK_STATE *WalkState, 19186227Stmm ACPI_PARSE_OBJECT *Op); 19286227Stmm 193128776StmmACPI_STATUS 194128776StmmAcpiDsEvalDataObjectOperands ( 195133862Smarius ACPI_WALK_STATE *WalkState, 196128776Stmm ACPI_PARSE_OBJECT *Op, 197128776Stmm ACPI_OPERAND_OBJECT *ObjDesc); 198128776Stmm 199128776StmmACPI_STATUS 200128776StmmAcpiDsInitializeRegion ( 201128776Stmm ACPI_HANDLE ObjHandle); 202167308Smarius 203167308Smarius 20486227Stmm/* dsctrl - Parser/Interpreter interface, control stack routines */ 205167308Smarius 20686227Stmm 207167308SmariusACPI_STATUS 208167308SmariusAcpiDsExecBeginControlOp ( 209167308Smarius ACPI_WALK_STATE *WalkState, 21086227Stmm ACPI_PARSE_OBJECT *Op); 21188823Stmm 21288823StmmACPI_STATUS 21388823StmmAcpiDsExecEndControlOp ( 21488823Stmm ACPI_WALK_STATE *WalkState, 215167308Smarius ACPI_PARSE_OBJECT *Op); 21688823Stmm 21788823Stmm 21897265Sjake/* dsexec - Parser/Interpreter interface, method execution callbacks */ 219167308Smarius 220167308Smarius 221146474SmariusACPI_STATUS 222146474SmariusAcpiDsGetPredicateValue ( 223146474Smarius ACPI_WALK_STATE *WalkState, 224146474Smarius ACPI_OPERAND_OBJECT *ResultObj); 225146474Smarius 226146474SmariusACPI_STATUS 227146474SmariusAcpiDsExecBeginOp ( 228146474Smarius ACPI_WALK_STATE *WalkState, 229146474Smarius ACPI_PARSE_OBJECT **OutOp); 230167308Smarius 231167308SmariusACPI_STATUS 23286227StmmAcpiDsExecEndOp ( 233167308Smarius ACPI_WALK_STATE *State); 234167308Smarius 235167308Smarius 236167308Smarius/* dsfield - Parser/Interpreter interface for AML fields */ 237167308Smarius 23886227StmmACPI_STATUS 23988823StmmAcpiDsGetFieldNames ( 240167308Smarius ACPI_CREATE_FIELD_INFO *Info, 24186227Stmm ACPI_WALK_STATE *WalkState, 242128776Stmm ACPI_PARSE_OBJECT *Arg); 24386227Stmm 24486227StmmACPI_STATUS 245146474SmariusAcpiDsCreateField ( 246146474Smarius ACPI_PARSE_OBJECT *Op, 247146474Smarius ACPI_NAMESPACE_NODE *RegionNode, 248146474Smarius ACPI_WALK_STATE *WalkState); 249167308Smarius 250146474SmariusACPI_STATUS 251146474SmariusAcpiDsCreateBankField ( 252146474Smarius ACPI_PARSE_OBJECT *Op, 253146474Smarius ACPI_NAMESPACE_NODE *RegionNode, 254146474Smarius ACPI_WALK_STATE *WalkState); 255167308Smarius 256167308SmariusACPI_STATUS 257167308SmariusAcpiDsCreateIndexField ( 258167308Smarius ACPI_PARSE_OBJECT *Op, 259167308Smarius ACPI_NAMESPACE_NODE *RegionNode, 260146474Smarius ACPI_WALK_STATE *WalkState); 261146474Smarius 262146474SmariusACPI_STATUS 263146474SmariusAcpiDsCreateBufferField ( 264167308Smarius ACPI_PARSE_OBJECT *Op, 265167308Smarius ACPI_WALK_STATE *WalkState); 26686227Stmm 267167308SmariusACPI_STATUS 26886227StmmAcpiDsInitFieldObjects ( 269167308Smarius ACPI_PARSE_OBJECT *Op, 270167308Smarius ACPI_WALK_STATE *WalkState); 271167308Smarius 272167308Smarius 27386227Stmm/* dsload - Parser/Interpreter interface, namespace load callbacks */ 27486227Stmm 275167308SmariusACPI_STATUS 276167308SmariusAcpiDsLoad1BeginOp ( 27786227Stmm ACPI_WALK_STATE *WalkState, 278167308Smarius ACPI_PARSE_OBJECT **OutOp); 27986227Stmm 280167308SmariusACPI_STATUS 281167308SmariusAcpiDsLoad1EndOp ( 282167308Smarius ACPI_WALK_STATE *WalkState); 283167308Smarius 284167308SmariusACPI_STATUS 28586227StmmAcpiDsLoad2BeginOp ( 28686227Stmm ACPI_WALK_STATE *WalkState, 28786227Stmm ACPI_PARSE_OBJECT **OutOp); 28886227Stmm 289166901SpisoACPI_STATUS 29086227StmmAcpiDsLoad2EndOp ( 29186227Stmm ACPI_WALK_STATE *WalkState); 29288823Stmm 29386227StmmACPI_STATUS 294167308SmariusAcpiDsInitCallbacks ( 29586227Stmm ACPI_WALK_STATE *WalkState, 296131535Simp UINT32 PassNumber); 29786227Stmm 29886227Stmm 299128776Stmm/* dsmthdat - method data (locals/args) */ 30086227Stmm 30186227Stmm 30286227StmmACPI_STATUS 30386227StmmAcpiDsStoreObjectToLocal ( 304131535Simp UINT16 Opcode, 305166901Spiso UINT32 Index, 30686227Stmm ACPI_OPERAND_OBJECT *SrcDesc, 307167308Smarius ACPI_WALK_STATE *WalkState); 308167308Smarius 309167308SmariusACPI_STATUS 310167308SmariusAcpiDsMethodDataGetEntry ( 311167308Smarius UINT16 Opcode, 31286227Stmm UINT32 Index, 31386227Stmm ACPI_WALK_STATE *WalkState, 31486227Stmm ACPI_OPERAND_OBJECT ***Node); 31586227Stmm 31686227Stmmvoid 31786227StmmAcpiDsMethodDataDeleteAll ( 318146474Smarius ACPI_WALK_STATE *WalkState); 319131535Simp 32086227StmmBOOLEAN 32186227StmmAcpiDsIsMethodValue ( 32286227Stmm ACPI_OPERAND_OBJECT *ObjDesc); 323178443Smarius 324178443SmariusACPI_OBJECT_TYPE 325178443SmariusAcpiDsMethodDataGetType ( 326178443Smarius UINT16 Opcode, 327178443Smarius UINT32 Index, 328178443Smarius ACPI_WALK_STATE *WalkState); 329178443Smarius 330178443SmariusACPI_STATUS 331178443SmariusAcpiDsMethodDataGetValue ( 33286227Stmm UINT16 Opcode, 33386227Stmm UINT32 Index, 33486227Stmm ACPI_WALK_STATE *WalkState, 33586227Stmm ACPI_OPERAND_OBJECT **DestDesc); 336167308Smarius 337167308Smariusvoid 338167308SmariusAcpiDsMethodDataDeleteValue ( 339167308Smarius UINT16 Opcode, 340167308Smarius UINT32 Index, 34186227Stmm ACPI_WALK_STATE *WalkState); 342167308Smarius 343167308SmariusACPI_STATUS 344167308SmariusAcpiDsMethodDataInitArgs ( 345167308Smarius ACPI_OPERAND_OBJECT **Params, 346167308Smarius UINT32 MaxParamCount, 34786227Stmm ACPI_WALK_STATE *WalkState); 348167308Smarius 349167308SmariusACPI_STATUS 350167308SmariusAcpiDsMethodDataGetNode ( 351167308Smarius UINT16 Opcode, 352167308Smarius UINT32 Index, 353167308Smarius ACPI_WALK_STATE *WalkState, 354167308Smarius ACPI_NAMESPACE_NODE **Node); 355167308Smarius 356167308Smariusvoid 357167308SmariusAcpiDsMethodDataInit ( 358167308Smarius ACPI_WALK_STATE *WalkState); 359167308Smarius 360167308SmariusACPI_STATUS 361167308SmariusAcpiDsMethodDataSetValue ( 36286227Stmm UINT16 Opcode, 36386227Stmm UINT32 Index, 36488823Stmm ACPI_OPERAND_OBJECT *Object, 36586227Stmm ACPI_WALK_STATE *WalkState); 36688823Stmm 36788823Stmm 36888823Stmm/* dsmethod - Parser/Interpreter interface - control method parsing */ 36986227Stmm 37086227StmmACPI_STATUS 37186227StmmAcpiDsParseMethod ( 37286227Stmm ACPI_HANDLE ObjHandle); 373167308Smarius 37486227StmmACPI_STATUS 37586227StmmAcpiDsCallControlMethod ( 37686227Stmm ACPI_THREAD_STATE *Thread, 377157896Simp ACPI_WALK_STATE *WalkState, 37888823Stmm ACPI_PARSE_OBJECT *Op); 37988823Stmm 38088823StmmACPI_STATUS 38188823StmmAcpiDsRestartControlMethod ( 38286227Stmm ACPI_WALK_STATE *WalkState, 38386227Stmm ACPI_OPERAND_OBJECT *ReturnDesc); 384128776Stmm 38586227StmmACPI_STATUS 38686227StmmAcpiDsTerminateControlMethod ( 38786227Stmm ACPI_WALK_STATE *WalkState); 38886227Stmm 38988823StmmACPI_STATUS 390167308SmariusAcpiDsBeginMethodExecution ( 391167308Smarius ACPI_NAMESPACE_NODE *MethodNode, 392167308Smarius ACPI_OPERAND_OBJECT *ObjDesc, 393167308Smarius ACPI_NAMESPACE_NODE *CallingMethodNode); 394167308Smarius 395167308Smarius 396167308Smarius/* dsobj - Parser/Interpreter interface - object initialization and conversion */ 39786227Stmm 39886227StmmACPI_STATUS 39986227StmmAcpiDsInitOneObject ( 40086227Stmm ACPI_HANDLE ObjHandle, 40186227Stmm UINT32 Level, 40286227Stmm void *Context, 40386227Stmm void **ReturnValue); 40486227Stmm 40586227StmmACPI_STATUS 40686227StmmAcpiDsInitializeObjects ( 40786227Stmm ACPI_TABLE_DESC *TableDesc, 40886227Stmm ACPI_NAMESPACE_NODE *StartNode); 40986227Stmm 41086227StmmACPI_STATUS 41186227StmmAcpiDsBuildInternalBufferObj ( 41286227Stmm ACPI_WALK_STATE *WalkState, 41388823Stmm ACPI_PARSE_OBJECT *Op, 41486227Stmm UINT32 BufferLength, 41586227Stmm ACPI_OPERAND_OBJECT **ObjDescPtr); 41686227Stmm 41786227StmmACPI_STATUS 41886227StmmAcpiDsBuildInternalPackageObj ( 41986227Stmm ACPI_WALK_STATE *WalkState, 420167308Smarius ACPI_PARSE_OBJECT *op, 42186227Stmm UINT32 PackageLength, 42286227Stmm ACPI_OPERAND_OBJECT **ObjDesc); 42386227Stmm 42486227StmmACPI_STATUS 42586227StmmAcpiDsBuildInternalObject ( 42686227Stmm ACPI_WALK_STATE *WalkState, 427128776Stmm ACPI_PARSE_OBJECT *Op, 42886227Stmm ACPI_OPERAND_OBJECT **ObjDescPtr); 42986227Stmm 43086227StmmACPI_STATUS 431167308SmariusAcpiDsInitObjectFromOp ( 432167308Smarius ACPI_WALK_STATE *WalkState, 433167308Smarius ACPI_PARSE_OBJECT *Op, 434167308Smarius UINT16 Opcode, 435167308Smarius ACPI_OPERAND_OBJECT **ObjDesc); 436167308Smarius 437167308SmariusACPI_STATUS 438167308SmariusAcpiDsCreateNode ( 439167308Smarius ACPI_WALK_STATE *WalkState, 440167308Smarius ACPI_NAMESPACE_NODE *Node, 441167308Smarius ACPI_PARSE_OBJECT *Op); 442167308Smarius 443167308Smarius 444167308Smarius/* dsutils - Parser/Interpreter interface utility routines */ 445167308Smarius 446167308SmariusBOOLEAN 447167308SmariusAcpiDsIsResultUsed ( 448167308Smarius ACPI_PARSE_OBJECT *Op, 449167308Smarius ACPI_WALK_STATE *WalkState); 450167308Smarius 451167308Smariusvoid 452167308SmariusAcpiDsDeleteResultIfNotUsed ( 453167308Smarius ACPI_PARSE_OBJECT *Op, 454167308Smarius ACPI_OPERAND_OBJECT *ResultObj, 455167308Smarius ACPI_WALK_STATE *WalkState); 456167308Smarius 457167308SmariusACPI_STATUS 458167308SmariusAcpiDsCreateOperand ( 459167308Smarius ACPI_WALK_STATE *WalkState, 460167308Smarius ACPI_PARSE_OBJECT *Arg, 461167308Smarius UINT32 ArgsRemaining); 462167308Smarius 463167308SmariusACPI_STATUS 464167308SmariusAcpiDsCreateOperands ( 465167308Smarius ACPI_WALK_STATE *WalkState, 466167308Smarius ACPI_PARSE_OBJECT *FirstArg); 467167308Smarius 468167308SmariusACPI_STATUS 469167308SmariusAcpiDsResolveOperands ( 470167308Smarius ACPI_WALK_STATE *WalkState); 471167308Smarius 472167308Smariusvoid 473167308SmariusAcpiDsClearOperands ( 474167308Smarius ACPI_WALK_STATE *WalkState); 475167308Smarius 476167308Smarius 477167308Smarius/* 478167308Smarius * dswscope - Scope Stack manipulation 479167308Smarius */ 480167308Smarius 481167308SmariusACPI_STATUS 482167308SmariusAcpiDsScopeStackPush ( 483167308Smarius ACPI_NAMESPACE_NODE *Node, 484167308Smarius ACPI_OBJECT_TYPE Type, 485167308Smarius ACPI_WALK_STATE *WalkState); 486167308Smarius 487167308Smarius 488167308SmariusACPI_STATUS 489167308SmariusAcpiDsScopeStackPop ( 490167308Smarius ACPI_WALK_STATE *WalkState); 491167308Smarius 492167308Smariusvoid 493167308SmariusAcpiDsScopeStackClear ( 494167308Smarius ACPI_WALK_STATE *WalkState); 495167308Smarius 496167308Smarius 497167308Smarius/* dswstate - parser WALK_STATE management routines */ 498167308Smarius 499167308SmariusACPI_WALK_STATE * 500167308SmariusAcpiDsCreateWalkState ( 501167308Smarius ACPI_OWNER_ID OwnerId, 502167308Smarius ACPI_PARSE_OBJECT *Origin, 503167308Smarius ACPI_OPERAND_OBJECT *MthDesc, 504167308Smarius ACPI_THREAD_STATE *Thread); 505167308Smarius 506167308SmariusACPI_STATUS 507167308SmariusAcpiDsInitAmlWalk ( 508167308Smarius ACPI_WALK_STATE *WalkState, 509167308Smarius ACPI_PARSE_OBJECT *Op, 510167308Smarius ACPI_NAMESPACE_NODE *MethodNode, 511167308Smarius UINT8 *AmlStart, 512167308Smarius UINT32 AmlLength, 513167308Smarius ACPI_OPERAND_OBJECT **Params, 514167308Smarius ACPI_OPERAND_OBJECT **ReturnObjDesc, 515167308Smarius UINT32 PassNumber); 516167308Smarius 517167308SmariusACPI_STATUS 518167308SmariusAcpiDsObjStackDeleteAll ( 519167308Smarius ACPI_WALK_STATE *WalkState); 520167308Smarius 521167308SmariusACPI_STATUS 522167308SmariusAcpiDsObjStackPopAndDelete ( 523167308Smarius UINT32 PopCount, 524167308Smarius ACPI_WALK_STATE *WalkState); 525167308Smarius 526167308Smariusvoid 527167308SmariusAcpiDsDeleteWalkState ( 528167308Smarius ACPI_WALK_STATE *WalkState); 529167308Smarius 530167308SmariusACPI_WALK_STATE * 531167308SmariusAcpiDsPopWalkState ( 532167308Smarius ACPI_THREAD_STATE *Thread); 533167308Smarius 534167308Smariusvoid 535167308SmariusAcpiDsPushWalkState ( 536167308Smarius ACPI_WALK_STATE *WalkState, 537167308Smarius ACPI_THREAD_STATE *Thread); 538167308Smarius 539167308SmariusACPI_STATUS 540167308SmariusAcpiDsResultStackPop ( 541167308Smarius ACPI_WALK_STATE *WalkState); 542167308Smarius 543167308SmariusACPI_STATUS 544167308SmariusAcpiDsResultStackPush ( 545 ACPI_WALK_STATE *WalkState); 546 547ACPI_STATUS 548AcpiDsResultStackClear ( 549 ACPI_WALK_STATE *WalkState); 550 551ACPI_WALK_STATE * 552AcpiDsGetCurrentWalkState ( 553 ACPI_THREAD_STATE *Thread); 554 555void 556AcpiDsDeleteWalkStateCache ( 557 void); 558 559ACPI_STATUS 560AcpiDsResultInsert ( 561 void *Object, 562 UINT32 Index, 563 ACPI_WALK_STATE *WalkState); 564 565ACPI_STATUS 566AcpiDsResultRemove ( 567 ACPI_OPERAND_OBJECT **Object, 568 UINT32 Index, 569 ACPI_WALK_STATE *WalkState); 570 571ACPI_STATUS 572AcpiDsResultPop ( 573 ACPI_OPERAND_OBJECT **Object, 574 ACPI_WALK_STATE *WalkState); 575 576ACPI_STATUS 577AcpiDsResultPush ( 578 ACPI_OPERAND_OBJECT *Object, 579 ACPI_WALK_STATE *WalkState); 580 581ACPI_STATUS 582AcpiDsResultPopFromBottom ( 583 ACPI_OPERAND_OBJECT **Object, 584 ACPI_WALK_STATE *WalkState); 585 586#endif /* _ACDISPAT_H_ */ 587