1433d6423SLionel Sambuc /****************************************************************************** 2433d6423SLionel Sambuc * 3433d6423SLionel Sambuc * Name: acdispat.h - dispatcher (parser to interpreter interface) 4433d6423SLionel Sambuc * 5433d6423SLionel Sambuc *****************************************************************************/ 6433d6423SLionel Sambuc 7*29492bb7SDavid van Moolenbroek /* 8*29492bb7SDavid van Moolenbroek * Copyright (C) 2000 - 2014, Intel Corp. 9433d6423SLionel Sambuc * All rights reserved. 10433d6423SLionel Sambuc * 11*29492bb7SDavid van Moolenbroek * Redistribution and use in source and binary forms, with or without 12*29492bb7SDavid van Moolenbroek * modification, are permitted provided that the following conditions 13*29492bb7SDavid van Moolenbroek * are met: 14*29492bb7SDavid van Moolenbroek * 1. Redistributions of source code must retain the above copyright 15*29492bb7SDavid van Moolenbroek * notice, this list of conditions, and the following disclaimer, 16*29492bb7SDavid van Moolenbroek * without modification. 17*29492bb7SDavid van Moolenbroek * 2. Redistributions in binary form must reproduce at minimum a disclaimer 18*29492bb7SDavid van Moolenbroek * substantially similar to the "NO WARRANTY" disclaimer below 19*29492bb7SDavid van Moolenbroek * ("Disclaimer") and any redistribution must be conditioned upon 20*29492bb7SDavid van Moolenbroek * including a substantially similar Disclaimer requirement for further 21*29492bb7SDavid van Moolenbroek * binary redistribution. 22*29492bb7SDavid van Moolenbroek * 3. Neither the names of the above-listed copyright holders nor the names 23*29492bb7SDavid van Moolenbroek * of any contributors may be used to endorse or promote products derived 24*29492bb7SDavid van Moolenbroek * from this software without specific prior written permission. 25433d6423SLionel Sambuc * 26*29492bb7SDavid van Moolenbroek * Alternatively, this software may be distributed under the terms of the 27*29492bb7SDavid van Moolenbroek * GNU General Public License ("GPL") version 2 as published by the Free 28*29492bb7SDavid van Moolenbroek * Software Foundation. 29433d6423SLionel Sambuc * 30*29492bb7SDavid van Moolenbroek * NO WARRANTY 31*29492bb7SDavid van Moolenbroek * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 32*29492bb7SDavid van Moolenbroek * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 33*29492bb7SDavid van Moolenbroek * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR 34*29492bb7SDavid van Moolenbroek * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 35*29492bb7SDavid van Moolenbroek * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 36*29492bb7SDavid van Moolenbroek * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 37*29492bb7SDavid van Moolenbroek * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 38*29492bb7SDavid van Moolenbroek * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 39*29492bb7SDavid van Moolenbroek * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING 40*29492bb7SDavid van Moolenbroek * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 41*29492bb7SDavid van Moolenbroek * POSSIBILITY OF SUCH DAMAGES. 42*29492bb7SDavid van Moolenbroek */ 43433d6423SLionel Sambuc 44433d6423SLionel Sambuc #ifndef _ACDISPAT_H_ 45433d6423SLionel Sambuc #define _ACDISPAT_H_ 46433d6423SLionel Sambuc 47433d6423SLionel Sambuc 48433d6423SLionel Sambuc #define NAMEOF_LOCAL_NTE "__L0" 49433d6423SLionel Sambuc #define NAMEOF_ARG_NTE "__A0" 50433d6423SLionel Sambuc 51433d6423SLionel Sambuc 52433d6423SLionel Sambuc /* 53*29492bb7SDavid van Moolenbroek * dsargs - execution of dynamic arguments for static objects 54433d6423SLionel Sambuc */ 55433d6423SLionel Sambuc ACPI_STATUS 56433d6423SLionel Sambuc AcpiDsGetBufferFieldArguments ( 57433d6423SLionel Sambuc ACPI_OPERAND_OBJECT *ObjDesc); 58433d6423SLionel Sambuc 59433d6423SLionel Sambuc ACPI_STATUS 60433d6423SLionel Sambuc AcpiDsGetBankFieldArguments ( 61433d6423SLionel Sambuc ACPI_OPERAND_OBJECT *ObjDesc); 62433d6423SLionel Sambuc 63433d6423SLionel Sambuc ACPI_STATUS 64433d6423SLionel Sambuc AcpiDsGetRegionArguments ( 65433d6423SLionel Sambuc ACPI_OPERAND_OBJECT *RgnDesc); 66433d6423SLionel Sambuc 67433d6423SLionel Sambuc ACPI_STATUS 68433d6423SLionel Sambuc AcpiDsGetBufferArguments ( 69433d6423SLionel Sambuc ACPI_OPERAND_OBJECT *ObjDesc); 70433d6423SLionel Sambuc 71433d6423SLionel Sambuc ACPI_STATUS 72433d6423SLionel Sambuc AcpiDsGetPackageArguments ( 73433d6423SLionel Sambuc ACPI_OPERAND_OBJECT *ObjDesc); 74433d6423SLionel Sambuc 75*29492bb7SDavid van Moolenbroek 76*29492bb7SDavid van Moolenbroek /* 77*29492bb7SDavid van Moolenbroek * dscontrol - support for execution control opcodes 78*29492bb7SDavid van Moolenbroek */ 79*29492bb7SDavid van Moolenbroek ACPI_STATUS 80*29492bb7SDavid van Moolenbroek AcpiDsExecBeginControlOp ( 81*29492bb7SDavid van Moolenbroek ACPI_WALK_STATE *WalkState, 82*29492bb7SDavid van Moolenbroek ACPI_PARSE_OBJECT *Op); 83*29492bb7SDavid van Moolenbroek 84*29492bb7SDavid van Moolenbroek ACPI_STATUS 85*29492bb7SDavid van Moolenbroek AcpiDsExecEndControlOp ( 86*29492bb7SDavid van Moolenbroek ACPI_WALK_STATE *WalkState, 87*29492bb7SDavid van Moolenbroek ACPI_PARSE_OBJECT *Op); 88*29492bb7SDavid van Moolenbroek 89*29492bb7SDavid van Moolenbroek 90*29492bb7SDavid van Moolenbroek /* 91*29492bb7SDavid van Moolenbroek * dsopcode - support for late operand evaluation 92*29492bb7SDavid van Moolenbroek */ 93433d6423SLionel Sambuc ACPI_STATUS 94433d6423SLionel Sambuc AcpiDsEvalBufferFieldOperands ( 95433d6423SLionel Sambuc ACPI_WALK_STATE *WalkState, 96433d6423SLionel Sambuc ACPI_PARSE_OBJECT *Op); 97433d6423SLionel Sambuc 98433d6423SLionel Sambuc ACPI_STATUS 99433d6423SLionel Sambuc AcpiDsEvalRegionOperands ( 100433d6423SLionel Sambuc ACPI_WALK_STATE *WalkState, 101433d6423SLionel Sambuc ACPI_PARSE_OBJECT *Op); 102433d6423SLionel Sambuc 103433d6423SLionel Sambuc ACPI_STATUS 104433d6423SLionel Sambuc AcpiDsEvalTableRegionOperands ( 105433d6423SLionel Sambuc ACPI_WALK_STATE *WalkState, 106433d6423SLionel Sambuc ACPI_PARSE_OBJECT *Op); 107433d6423SLionel Sambuc 108433d6423SLionel Sambuc ACPI_STATUS 109433d6423SLionel Sambuc AcpiDsEvalDataObjectOperands ( 110433d6423SLionel Sambuc ACPI_WALK_STATE *WalkState, 111433d6423SLionel Sambuc ACPI_PARSE_OBJECT *Op, 112433d6423SLionel Sambuc ACPI_OPERAND_OBJECT *ObjDesc); 113433d6423SLionel Sambuc 114433d6423SLionel Sambuc ACPI_STATUS 115433d6423SLionel Sambuc AcpiDsEvalBankFieldOperands ( 116433d6423SLionel Sambuc ACPI_WALK_STATE *WalkState, 117433d6423SLionel Sambuc ACPI_PARSE_OBJECT *Op); 118433d6423SLionel Sambuc 119433d6423SLionel Sambuc ACPI_STATUS 120433d6423SLionel Sambuc AcpiDsInitializeRegion ( 121433d6423SLionel Sambuc ACPI_HANDLE ObjHandle); 122433d6423SLionel Sambuc 123433d6423SLionel Sambuc 124433d6423SLionel Sambuc /* 125433d6423SLionel Sambuc * dsexec - Parser/Interpreter interface, method execution callbacks 126433d6423SLionel Sambuc */ 127433d6423SLionel Sambuc ACPI_STATUS 128433d6423SLionel Sambuc AcpiDsGetPredicateValue ( 129433d6423SLionel Sambuc ACPI_WALK_STATE *WalkState, 130433d6423SLionel Sambuc ACPI_OPERAND_OBJECT *ResultObj); 131433d6423SLionel Sambuc 132433d6423SLionel Sambuc ACPI_STATUS 133433d6423SLionel Sambuc AcpiDsExecBeginOp ( 134433d6423SLionel Sambuc ACPI_WALK_STATE *WalkState, 135433d6423SLionel Sambuc ACPI_PARSE_OBJECT **OutOp); 136433d6423SLionel Sambuc 137433d6423SLionel Sambuc ACPI_STATUS 138433d6423SLionel Sambuc AcpiDsExecEndOp ( 139433d6423SLionel Sambuc ACPI_WALK_STATE *State); 140433d6423SLionel Sambuc 141433d6423SLionel Sambuc 142433d6423SLionel Sambuc /* 143433d6423SLionel Sambuc * dsfield - Parser/Interpreter interface for AML fields 144433d6423SLionel Sambuc */ 145433d6423SLionel Sambuc ACPI_STATUS 146433d6423SLionel Sambuc AcpiDsCreateField ( 147433d6423SLionel Sambuc ACPI_PARSE_OBJECT *Op, 148433d6423SLionel Sambuc ACPI_NAMESPACE_NODE *RegionNode, 149433d6423SLionel Sambuc ACPI_WALK_STATE *WalkState); 150433d6423SLionel Sambuc 151433d6423SLionel Sambuc ACPI_STATUS 152433d6423SLionel Sambuc AcpiDsCreateBankField ( 153433d6423SLionel Sambuc ACPI_PARSE_OBJECT *Op, 154433d6423SLionel Sambuc ACPI_NAMESPACE_NODE *RegionNode, 155433d6423SLionel Sambuc ACPI_WALK_STATE *WalkState); 156433d6423SLionel Sambuc 157433d6423SLionel Sambuc ACPI_STATUS 158433d6423SLionel Sambuc AcpiDsCreateIndexField ( 159433d6423SLionel Sambuc ACPI_PARSE_OBJECT *Op, 160433d6423SLionel Sambuc ACPI_NAMESPACE_NODE *RegionNode, 161433d6423SLionel Sambuc ACPI_WALK_STATE *WalkState); 162433d6423SLionel Sambuc 163433d6423SLionel Sambuc ACPI_STATUS 164433d6423SLionel Sambuc AcpiDsCreateBufferField ( 165433d6423SLionel Sambuc ACPI_PARSE_OBJECT *Op, 166433d6423SLionel Sambuc ACPI_WALK_STATE *WalkState); 167433d6423SLionel Sambuc 168433d6423SLionel Sambuc ACPI_STATUS 169433d6423SLionel Sambuc AcpiDsInitFieldObjects ( 170433d6423SLionel Sambuc ACPI_PARSE_OBJECT *Op, 171433d6423SLionel Sambuc ACPI_WALK_STATE *WalkState); 172433d6423SLionel Sambuc 173433d6423SLionel Sambuc 174433d6423SLionel Sambuc /* 175*29492bb7SDavid van Moolenbroek * dsload - Parser/Interpreter interface 176433d6423SLionel Sambuc */ 177433d6423SLionel Sambuc ACPI_STATUS 178*29492bb7SDavid van Moolenbroek AcpiDsInitCallbacks ( 179*29492bb7SDavid van Moolenbroek ACPI_WALK_STATE *WalkState, 180*29492bb7SDavid van Moolenbroek UINT32 PassNumber); 181*29492bb7SDavid van Moolenbroek 182*29492bb7SDavid van Moolenbroek /* dsload - pass 1 namespace load callbacks */ 183*29492bb7SDavid van Moolenbroek 184*29492bb7SDavid van Moolenbroek ACPI_STATUS 185433d6423SLionel Sambuc AcpiDsLoad1BeginOp ( 186433d6423SLionel Sambuc ACPI_WALK_STATE *WalkState, 187433d6423SLionel Sambuc ACPI_PARSE_OBJECT **OutOp); 188433d6423SLionel Sambuc 189433d6423SLionel Sambuc ACPI_STATUS 190433d6423SLionel Sambuc AcpiDsLoad1EndOp ( 191433d6423SLionel Sambuc ACPI_WALK_STATE *WalkState); 192433d6423SLionel Sambuc 193*29492bb7SDavid van Moolenbroek 194*29492bb7SDavid van Moolenbroek /* dsload - pass 2 namespace load callbacks */ 195*29492bb7SDavid van Moolenbroek 196433d6423SLionel Sambuc ACPI_STATUS 197433d6423SLionel Sambuc AcpiDsLoad2BeginOp ( 198433d6423SLionel Sambuc ACPI_WALK_STATE *WalkState, 199433d6423SLionel Sambuc ACPI_PARSE_OBJECT **OutOp); 200433d6423SLionel Sambuc 201433d6423SLionel Sambuc ACPI_STATUS 202433d6423SLionel Sambuc AcpiDsLoad2EndOp ( 203433d6423SLionel Sambuc ACPI_WALK_STATE *WalkState); 204433d6423SLionel Sambuc 205433d6423SLionel Sambuc 206433d6423SLionel Sambuc /* 207433d6423SLionel Sambuc * dsmthdat - method data (locals/args) 208433d6423SLionel Sambuc */ 209433d6423SLionel Sambuc ACPI_STATUS 210433d6423SLionel Sambuc AcpiDsStoreObjectToLocal ( 211433d6423SLionel Sambuc UINT8 Type, 212433d6423SLionel Sambuc UINT32 Index, 213433d6423SLionel Sambuc ACPI_OPERAND_OBJECT *SrcDesc, 214433d6423SLionel Sambuc ACPI_WALK_STATE *WalkState); 215433d6423SLionel Sambuc 216433d6423SLionel Sambuc ACPI_STATUS 217433d6423SLionel Sambuc AcpiDsMethodDataGetEntry ( 218433d6423SLionel Sambuc UINT16 Opcode, 219433d6423SLionel Sambuc UINT32 Index, 220433d6423SLionel Sambuc ACPI_WALK_STATE *WalkState, 221433d6423SLionel Sambuc ACPI_OPERAND_OBJECT ***Node); 222433d6423SLionel Sambuc 223433d6423SLionel Sambuc void 224433d6423SLionel Sambuc AcpiDsMethodDataDeleteAll ( 225433d6423SLionel Sambuc ACPI_WALK_STATE *WalkState); 226433d6423SLionel Sambuc 227433d6423SLionel Sambuc BOOLEAN 228433d6423SLionel Sambuc AcpiDsIsMethodValue ( 229433d6423SLionel Sambuc ACPI_OPERAND_OBJECT *ObjDesc); 230433d6423SLionel Sambuc 231433d6423SLionel Sambuc ACPI_STATUS 232433d6423SLionel Sambuc AcpiDsMethodDataGetValue ( 233433d6423SLionel Sambuc UINT8 Type, 234433d6423SLionel Sambuc UINT32 Index, 235433d6423SLionel Sambuc ACPI_WALK_STATE *WalkState, 236433d6423SLionel Sambuc ACPI_OPERAND_OBJECT **DestDesc); 237433d6423SLionel Sambuc 238433d6423SLionel Sambuc ACPI_STATUS 239433d6423SLionel Sambuc AcpiDsMethodDataInitArgs ( 240433d6423SLionel Sambuc ACPI_OPERAND_OBJECT **Params, 241433d6423SLionel Sambuc UINT32 MaxParamCount, 242433d6423SLionel Sambuc ACPI_WALK_STATE *WalkState); 243433d6423SLionel Sambuc 244433d6423SLionel Sambuc ACPI_STATUS 245433d6423SLionel Sambuc AcpiDsMethodDataGetNode ( 246433d6423SLionel Sambuc UINT8 Type, 247433d6423SLionel Sambuc UINT32 Index, 248433d6423SLionel Sambuc ACPI_WALK_STATE *WalkState, 249433d6423SLionel Sambuc ACPI_NAMESPACE_NODE **Node); 250433d6423SLionel Sambuc 251433d6423SLionel Sambuc void 252433d6423SLionel Sambuc AcpiDsMethodDataInit ( 253433d6423SLionel Sambuc ACPI_WALK_STATE *WalkState); 254433d6423SLionel Sambuc 255433d6423SLionel Sambuc 256433d6423SLionel Sambuc /* 257433d6423SLionel Sambuc * dsmethod - Parser/Interpreter interface - control method parsing 258433d6423SLionel Sambuc */ 259433d6423SLionel Sambuc ACPI_STATUS 260*29492bb7SDavid van Moolenbroek AcpiDsAutoSerializeMethod ( 261*29492bb7SDavid van Moolenbroek ACPI_NAMESPACE_NODE *Node, 262*29492bb7SDavid van Moolenbroek ACPI_OPERAND_OBJECT *ObjDesc); 263433d6423SLionel Sambuc 264433d6423SLionel Sambuc ACPI_STATUS 265433d6423SLionel Sambuc AcpiDsCallControlMethod ( 266433d6423SLionel Sambuc ACPI_THREAD_STATE *Thread, 267433d6423SLionel Sambuc ACPI_WALK_STATE *WalkState, 268433d6423SLionel Sambuc ACPI_PARSE_OBJECT *Op); 269433d6423SLionel Sambuc 270433d6423SLionel Sambuc ACPI_STATUS 271433d6423SLionel Sambuc AcpiDsRestartControlMethod ( 272433d6423SLionel Sambuc ACPI_WALK_STATE *WalkState, 273433d6423SLionel Sambuc ACPI_OPERAND_OBJECT *ReturnDesc); 274433d6423SLionel Sambuc 275433d6423SLionel Sambuc void 276433d6423SLionel Sambuc AcpiDsTerminateControlMethod ( 277433d6423SLionel Sambuc ACPI_OPERAND_OBJECT *MethodDesc, 278433d6423SLionel Sambuc ACPI_WALK_STATE *WalkState); 279433d6423SLionel Sambuc 280433d6423SLionel Sambuc ACPI_STATUS 281433d6423SLionel Sambuc AcpiDsBeginMethodExecution ( 282433d6423SLionel Sambuc ACPI_NAMESPACE_NODE *MethodNode, 283433d6423SLionel Sambuc ACPI_OPERAND_OBJECT *ObjDesc, 284433d6423SLionel Sambuc ACPI_WALK_STATE *WalkState); 285433d6423SLionel Sambuc 286433d6423SLionel Sambuc ACPI_STATUS 287433d6423SLionel Sambuc AcpiDsMethodError ( 288433d6423SLionel Sambuc ACPI_STATUS Status, 289433d6423SLionel Sambuc ACPI_WALK_STATE *WalkState); 290433d6423SLionel Sambuc 291433d6423SLionel Sambuc /* 292433d6423SLionel Sambuc * dsinit 293433d6423SLionel Sambuc */ 294433d6423SLionel Sambuc ACPI_STATUS 295433d6423SLionel Sambuc AcpiDsInitializeObjects ( 296433d6423SLionel Sambuc UINT32 TableIndex, 297433d6423SLionel Sambuc ACPI_NAMESPACE_NODE *StartNode); 298433d6423SLionel Sambuc 299433d6423SLionel Sambuc 300433d6423SLionel Sambuc /* 301433d6423SLionel Sambuc * dsobject - Parser/Interpreter interface - object initialization and conversion 302433d6423SLionel Sambuc */ 303433d6423SLionel Sambuc ACPI_STATUS 304433d6423SLionel Sambuc AcpiDsBuildInternalBufferObj ( 305433d6423SLionel Sambuc ACPI_WALK_STATE *WalkState, 306433d6423SLionel Sambuc ACPI_PARSE_OBJECT *Op, 307433d6423SLionel Sambuc UINT32 BufferLength, 308433d6423SLionel Sambuc ACPI_OPERAND_OBJECT **ObjDescPtr); 309433d6423SLionel Sambuc 310433d6423SLionel Sambuc ACPI_STATUS 311433d6423SLionel Sambuc AcpiDsBuildInternalPackageObj ( 312433d6423SLionel Sambuc ACPI_WALK_STATE *WalkState, 313433d6423SLionel Sambuc ACPI_PARSE_OBJECT *op, 314433d6423SLionel Sambuc UINT32 PackageLength, 315433d6423SLionel Sambuc ACPI_OPERAND_OBJECT **ObjDesc); 316433d6423SLionel Sambuc 317433d6423SLionel Sambuc ACPI_STATUS 318433d6423SLionel Sambuc AcpiDsInitObjectFromOp ( 319433d6423SLionel Sambuc ACPI_WALK_STATE *WalkState, 320433d6423SLionel Sambuc ACPI_PARSE_OBJECT *Op, 321433d6423SLionel Sambuc UINT16 Opcode, 322433d6423SLionel Sambuc ACPI_OPERAND_OBJECT **ObjDesc); 323433d6423SLionel Sambuc 324433d6423SLionel Sambuc ACPI_STATUS 325433d6423SLionel Sambuc AcpiDsCreateNode ( 326433d6423SLionel Sambuc ACPI_WALK_STATE *WalkState, 327433d6423SLionel Sambuc ACPI_NAMESPACE_NODE *Node, 328433d6423SLionel Sambuc ACPI_PARSE_OBJECT *Op); 329433d6423SLionel Sambuc 330433d6423SLionel Sambuc 331433d6423SLionel Sambuc /* 332433d6423SLionel Sambuc * dsutils - Parser/Interpreter interface utility routines 333433d6423SLionel Sambuc */ 334433d6423SLionel Sambuc void 335433d6423SLionel Sambuc AcpiDsClearImplicitReturn ( 336433d6423SLionel Sambuc ACPI_WALK_STATE *WalkState); 337433d6423SLionel Sambuc 338433d6423SLionel Sambuc BOOLEAN 339433d6423SLionel Sambuc AcpiDsDoImplicitReturn ( 340433d6423SLionel Sambuc ACPI_OPERAND_OBJECT *ReturnDesc, 341433d6423SLionel Sambuc ACPI_WALK_STATE *WalkState, 342433d6423SLionel Sambuc BOOLEAN AddReference); 343433d6423SLionel Sambuc 344433d6423SLionel Sambuc BOOLEAN 345433d6423SLionel Sambuc AcpiDsIsResultUsed ( 346433d6423SLionel Sambuc ACPI_PARSE_OBJECT *Op, 347433d6423SLionel Sambuc ACPI_WALK_STATE *WalkState); 348433d6423SLionel Sambuc 349433d6423SLionel Sambuc void 350433d6423SLionel Sambuc AcpiDsDeleteResultIfNotUsed ( 351433d6423SLionel Sambuc ACPI_PARSE_OBJECT *Op, 352433d6423SLionel Sambuc ACPI_OPERAND_OBJECT *ResultObj, 353433d6423SLionel Sambuc ACPI_WALK_STATE *WalkState); 354433d6423SLionel Sambuc 355433d6423SLionel Sambuc ACPI_STATUS 356433d6423SLionel Sambuc AcpiDsCreateOperand ( 357433d6423SLionel Sambuc ACPI_WALK_STATE *WalkState, 358433d6423SLionel Sambuc ACPI_PARSE_OBJECT *Arg, 359433d6423SLionel Sambuc UINT32 ArgsRemaining); 360433d6423SLionel Sambuc 361433d6423SLionel Sambuc ACPI_STATUS 362433d6423SLionel Sambuc AcpiDsCreateOperands ( 363433d6423SLionel Sambuc ACPI_WALK_STATE *WalkState, 364433d6423SLionel Sambuc ACPI_PARSE_OBJECT *FirstArg); 365433d6423SLionel Sambuc 366433d6423SLionel Sambuc ACPI_STATUS 367433d6423SLionel Sambuc AcpiDsResolveOperands ( 368433d6423SLionel Sambuc ACPI_WALK_STATE *WalkState); 369433d6423SLionel Sambuc 370433d6423SLionel Sambuc void 371433d6423SLionel Sambuc AcpiDsClearOperands ( 372433d6423SLionel Sambuc ACPI_WALK_STATE *WalkState); 373433d6423SLionel Sambuc 374433d6423SLionel Sambuc ACPI_STATUS 375433d6423SLionel Sambuc AcpiDsEvaluateNamePath ( 376433d6423SLionel Sambuc ACPI_WALK_STATE *WalkState); 377433d6423SLionel Sambuc 378433d6423SLionel Sambuc 379433d6423SLionel Sambuc /* 380433d6423SLionel Sambuc * dswscope - Scope Stack manipulation 381433d6423SLionel Sambuc */ 382433d6423SLionel Sambuc ACPI_STATUS 383433d6423SLionel Sambuc AcpiDsScopeStackPush ( 384433d6423SLionel Sambuc ACPI_NAMESPACE_NODE *Node, 385433d6423SLionel Sambuc ACPI_OBJECT_TYPE Type, 386433d6423SLionel Sambuc ACPI_WALK_STATE *WalkState); 387433d6423SLionel Sambuc 388433d6423SLionel Sambuc 389433d6423SLionel Sambuc ACPI_STATUS 390433d6423SLionel Sambuc AcpiDsScopeStackPop ( 391433d6423SLionel Sambuc ACPI_WALK_STATE *WalkState); 392433d6423SLionel Sambuc 393433d6423SLionel Sambuc void 394433d6423SLionel Sambuc AcpiDsScopeStackClear ( 395433d6423SLionel Sambuc ACPI_WALK_STATE *WalkState); 396433d6423SLionel Sambuc 397433d6423SLionel Sambuc 398433d6423SLionel Sambuc /* 399433d6423SLionel Sambuc * dswstate - parser WALK_STATE management routines 400433d6423SLionel Sambuc */ 401433d6423SLionel Sambuc ACPI_STATUS 402433d6423SLionel Sambuc AcpiDsObjStackPush ( 403433d6423SLionel Sambuc void *Object, 404433d6423SLionel Sambuc ACPI_WALK_STATE *WalkState); 405433d6423SLionel Sambuc 406433d6423SLionel Sambuc ACPI_STATUS 407433d6423SLionel Sambuc AcpiDsObjStackPop ( 408433d6423SLionel Sambuc UINT32 PopCount, 409433d6423SLionel Sambuc ACPI_WALK_STATE *WalkState); 410433d6423SLionel Sambuc 411433d6423SLionel Sambuc ACPI_WALK_STATE * 412433d6423SLionel Sambuc AcpiDsCreateWalkState ( 413433d6423SLionel Sambuc ACPI_OWNER_ID OwnerId, 414433d6423SLionel Sambuc ACPI_PARSE_OBJECT *Origin, 415433d6423SLionel Sambuc ACPI_OPERAND_OBJECT *MthDesc, 416433d6423SLionel Sambuc ACPI_THREAD_STATE *Thread); 417433d6423SLionel Sambuc 418433d6423SLionel Sambuc ACPI_STATUS 419433d6423SLionel Sambuc AcpiDsInitAmlWalk ( 420433d6423SLionel Sambuc ACPI_WALK_STATE *WalkState, 421433d6423SLionel Sambuc ACPI_PARSE_OBJECT *Op, 422433d6423SLionel Sambuc ACPI_NAMESPACE_NODE *MethodNode, 423433d6423SLionel Sambuc UINT8 *AmlStart, 424433d6423SLionel Sambuc UINT32 AmlLength, 425433d6423SLionel Sambuc ACPI_EVALUATE_INFO *Info, 426433d6423SLionel Sambuc UINT8 PassNumber); 427433d6423SLionel Sambuc 428433d6423SLionel Sambuc void 429433d6423SLionel Sambuc AcpiDsObjStackPopAndDelete ( 430433d6423SLionel Sambuc UINT32 PopCount, 431433d6423SLionel Sambuc ACPI_WALK_STATE *WalkState); 432433d6423SLionel Sambuc 433433d6423SLionel Sambuc void 434433d6423SLionel Sambuc AcpiDsDeleteWalkState ( 435433d6423SLionel Sambuc ACPI_WALK_STATE *WalkState); 436433d6423SLionel Sambuc 437433d6423SLionel Sambuc ACPI_WALK_STATE * 438433d6423SLionel Sambuc AcpiDsPopWalkState ( 439433d6423SLionel Sambuc ACPI_THREAD_STATE *Thread); 440433d6423SLionel Sambuc 441433d6423SLionel Sambuc void 442433d6423SLionel Sambuc AcpiDsPushWalkState ( 443433d6423SLionel Sambuc ACPI_WALK_STATE *WalkState, 444433d6423SLionel Sambuc ACPI_THREAD_STATE *Thread); 445433d6423SLionel Sambuc 446433d6423SLionel Sambuc ACPI_STATUS 447433d6423SLionel Sambuc AcpiDsResultStackClear ( 448433d6423SLionel Sambuc ACPI_WALK_STATE *WalkState); 449433d6423SLionel Sambuc 450433d6423SLionel Sambuc ACPI_WALK_STATE * 451433d6423SLionel Sambuc AcpiDsGetCurrentWalkState ( 452433d6423SLionel Sambuc ACPI_THREAD_STATE *Thread); 453433d6423SLionel Sambuc 454433d6423SLionel Sambuc ACPI_STATUS 455433d6423SLionel Sambuc AcpiDsResultPop ( 456433d6423SLionel Sambuc ACPI_OPERAND_OBJECT **Object, 457433d6423SLionel Sambuc ACPI_WALK_STATE *WalkState); 458433d6423SLionel Sambuc 459433d6423SLionel Sambuc ACPI_STATUS 460433d6423SLionel Sambuc AcpiDsResultPush ( 461433d6423SLionel Sambuc ACPI_OPERAND_OBJECT *Object, 462433d6423SLionel Sambuc ACPI_WALK_STATE *WalkState); 463433d6423SLionel Sambuc 464433d6423SLionel Sambuc #endif /* _ACDISPAT_H_ */ 465