xref: /netbsd-src/sys/external/bsd/acpica/dist/include/acdispat.h (revision 046a29855e04359424fd074e8313af6b6be8cfb6)
128c506b8Sjruoho /******************************************************************************
228c506b8Sjruoho  *
328c506b8Sjruoho  * Name: acdispat.h - dispatcher (parser to interpreter interface)
428c506b8Sjruoho  *
528c506b8Sjruoho  *****************************************************************************/
628c506b8Sjruoho 
7124f4c82Sjruoho /*
8*046a2985Schristos  * Copyright (C) 2000 - 2023, Intel Corp.
928c506b8Sjruoho  * All rights reserved.
1028c506b8Sjruoho  *
11124f4c82Sjruoho  * Redistribution and use in source and binary forms, with or without
12124f4c82Sjruoho  * modification, are permitted provided that the following conditions
13124f4c82Sjruoho  * are met:
14124f4c82Sjruoho  * 1. Redistributions of source code must retain the above copyright
15124f4c82Sjruoho  *    notice, this list of conditions, and the following disclaimer,
16124f4c82Sjruoho  *    without modification.
17124f4c82Sjruoho  * 2. Redistributions in binary form must reproduce at minimum a disclaimer
18124f4c82Sjruoho  *    substantially similar to the "NO WARRANTY" disclaimer below
19124f4c82Sjruoho  *    ("Disclaimer") and any redistribution must be conditioned upon
20124f4c82Sjruoho  *    including a substantially similar Disclaimer requirement for further
21124f4c82Sjruoho  *    binary redistribution.
22124f4c82Sjruoho  * 3. Neither the names of the above-listed copyright holders nor the names
23124f4c82Sjruoho  *    of any contributors may be used to endorse or promote products derived
24124f4c82Sjruoho  *    from this software without specific prior written permission.
2528c506b8Sjruoho  *
26124f4c82Sjruoho  * Alternatively, this software may be distributed under the terms of the
27124f4c82Sjruoho  * GNU General Public License ("GPL") version 2 as published by the Free
28124f4c82Sjruoho  * Software Foundation.
2928c506b8Sjruoho  *
30124f4c82Sjruoho  * NO WARRANTY
31124f4c82Sjruoho  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
32124f4c82Sjruoho  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
3346a330b4Schristos  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
34124f4c82Sjruoho  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
35124f4c82Sjruoho  * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
36124f4c82Sjruoho  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
37124f4c82Sjruoho  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
38124f4c82Sjruoho  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
39124f4c82Sjruoho  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
40124f4c82Sjruoho  * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
41124f4c82Sjruoho  * POSSIBILITY OF SUCH DAMAGES.
42124f4c82Sjruoho  */
4328c506b8Sjruoho 
4428c506b8Sjruoho #ifndef _ACDISPAT_H_
4528c506b8Sjruoho #define _ACDISPAT_H_
4628c506b8Sjruoho 
4728c506b8Sjruoho 
4828c506b8Sjruoho #define NAMEOF_LOCAL_NTE    "__L0"
4928c506b8Sjruoho #define NAMEOF_ARG_NTE      "__A0"
5028c506b8Sjruoho 
5128c506b8Sjruoho 
5228c506b8Sjruoho /*
53124f4c82Sjruoho  * dsargs - execution of dynamic arguments for static objects
5428c506b8Sjruoho  */
5528c506b8Sjruoho ACPI_STATUS
5628c506b8Sjruoho AcpiDsGetBufferFieldArguments (
5728c506b8Sjruoho     ACPI_OPERAND_OBJECT     *ObjDesc);
5828c506b8Sjruoho 
5928c506b8Sjruoho ACPI_STATUS
6028c506b8Sjruoho AcpiDsGetBankFieldArguments (
6128c506b8Sjruoho     ACPI_OPERAND_OBJECT     *ObjDesc);
6228c506b8Sjruoho 
6328c506b8Sjruoho ACPI_STATUS
6428c506b8Sjruoho AcpiDsGetRegionArguments (
6528c506b8Sjruoho     ACPI_OPERAND_OBJECT     *RgnDesc);
6628c506b8Sjruoho 
6728c506b8Sjruoho ACPI_STATUS
6828c506b8Sjruoho AcpiDsGetBufferArguments (
6928c506b8Sjruoho     ACPI_OPERAND_OBJECT     *ObjDesc);
7028c506b8Sjruoho 
7128c506b8Sjruoho ACPI_STATUS
7228c506b8Sjruoho AcpiDsGetPackageArguments (
7328c506b8Sjruoho     ACPI_OPERAND_OBJECT     *ObjDesc);
7428c506b8Sjruoho 
75124f4c82Sjruoho 
76124f4c82Sjruoho /*
77124f4c82Sjruoho  * dscontrol - support for execution control opcodes
78124f4c82Sjruoho  */
79124f4c82Sjruoho ACPI_STATUS
80124f4c82Sjruoho AcpiDsExecBeginControlOp (
81124f4c82Sjruoho     ACPI_WALK_STATE         *WalkState,
82124f4c82Sjruoho     ACPI_PARSE_OBJECT       *Op);
83124f4c82Sjruoho 
84124f4c82Sjruoho ACPI_STATUS
85124f4c82Sjruoho AcpiDsExecEndControlOp (
86124f4c82Sjruoho     ACPI_WALK_STATE         *WalkState,
87124f4c82Sjruoho     ACPI_PARSE_OBJECT       *Op);
88124f4c82Sjruoho 
89124f4c82Sjruoho 
90124f4c82Sjruoho /*
91124f4c82Sjruoho  * dsopcode - support for late operand evaluation
92124f4c82Sjruoho  */
9328c506b8Sjruoho ACPI_STATUS
9428c506b8Sjruoho AcpiDsEvalBufferFieldOperands (
9528c506b8Sjruoho     ACPI_WALK_STATE         *WalkState,
9628c506b8Sjruoho     ACPI_PARSE_OBJECT       *Op);
9728c506b8Sjruoho 
9828c506b8Sjruoho ACPI_STATUS
9928c506b8Sjruoho AcpiDsEvalRegionOperands (
10028c506b8Sjruoho     ACPI_WALK_STATE         *WalkState,
10128c506b8Sjruoho     ACPI_PARSE_OBJECT       *Op);
10228c506b8Sjruoho 
10328c506b8Sjruoho ACPI_STATUS
10428c506b8Sjruoho AcpiDsEvalTableRegionOperands (
10528c506b8Sjruoho     ACPI_WALK_STATE         *WalkState,
10628c506b8Sjruoho     ACPI_PARSE_OBJECT       *Op);
10728c506b8Sjruoho 
10828c506b8Sjruoho ACPI_STATUS
10928c506b8Sjruoho AcpiDsEvalDataObjectOperands (
11028c506b8Sjruoho     ACPI_WALK_STATE         *WalkState,
11128c506b8Sjruoho     ACPI_PARSE_OBJECT       *Op,
11228c506b8Sjruoho     ACPI_OPERAND_OBJECT     *ObjDesc);
11328c506b8Sjruoho 
11428c506b8Sjruoho ACPI_STATUS
11528c506b8Sjruoho AcpiDsEvalBankFieldOperands (
11628c506b8Sjruoho     ACPI_WALK_STATE         *WalkState,
11728c506b8Sjruoho     ACPI_PARSE_OBJECT       *Op);
11828c506b8Sjruoho 
11928c506b8Sjruoho ACPI_STATUS
12028c506b8Sjruoho AcpiDsInitializeRegion (
12128c506b8Sjruoho     ACPI_HANDLE             ObjHandle);
12228c506b8Sjruoho 
12328c506b8Sjruoho 
12428c506b8Sjruoho /*
12528c506b8Sjruoho  * dsexec - Parser/Interpreter interface, method execution callbacks
12628c506b8Sjruoho  */
12728c506b8Sjruoho ACPI_STATUS
12828c506b8Sjruoho AcpiDsGetPredicateValue (
12928c506b8Sjruoho     ACPI_WALK_STATE         *WalkState,
13028c506b8Sjruoho     ACPI_OPERAND_OBJECT     *ResultObj);
13128c506b8Sjruoho 
13228c506b8Sjruoho ACPI_STATUS
13328c506b8Sjruoho AcpiDsExecBeginOp (
13428c506b8Sjruoho     ACPI_WALK_STATE         *WalkState,
13528c506b8Sjruoho     ACPI_PARSE_OBJECT       **OutOp);
13628c506b8Sjruoho 
13728c506b8Sjruoho ACPI_STATUS
13828c506b8Sjruoho AcpiDsExecEndOp (
13928c506b8Sjruoho     ACPI_WALK_STATE         *State);
14028c506b8Sjruoho 
14128c506b8Sjruoho 
14228c506b8Sjruoho /*
14328c506b8Sjruoho  * dsfield - Parser/Interpreter interface for AML fields
14428c506b8Sjruoho  */
14528c506b8Sjruoho ACPI_STATUS
14628c506b8Sjruoho AcpiDsCreateField (
14728c506b8Sjruoho     ACPI_PARSE_OBJECT       *Op,
14828c506b8Sjruoho     ACPI_NAMESPACE_NODE     *RegionNode,
14928c506b8Sjruoho     ACPI_WALK_STATE         *WalkState);
15028c506b8Sjruoho 
15128c506b8Sjruoho ACPI_STATUS
15228c506b8Sjruoho AcpiDsCreateBankField (
15328c506b8Sjruoho     ACPI_PARSE_OBJECT       *Op,
15428c506b8Sjruoho     ACPI_NAMESPACE_NODE     *RegionNode,
15528c506b8Sjruoho     ACPI_WALK_STATE         *WalkState);
15628c506b8Sjruoho 
15728c506b8Sjruoho ACPI_STATUS
15828c506b8Sjruoho AcpiDsCreateIndexField (
15928c506b8Sjruoho     ACPI_PARSE_OBJECT       *Op,
16028c506b8Sjruoho     ACPI_NAMESPACE_NODE     *RegionNode,
16128c506b8Sjruoho     ACPI_WALK_STATE         *WalkState);
16228c506b8Sjruoho 
16328c506b8Sjruoho ACPI_STATUS
16428c506b8Sjruoho AcpiDsCreateBufferField (
16528c506b8Sjruoho     ACPI_PARSE_OBJECT       *Op,
16628c506b8Sjruoho     ACPI_WALK_STATE         *WalkState);
16728c506b8Sjruoho 
16828c506b8Sjruoho ACPI_STATUS
16928c506b8Sjruoho AcpiDsInitFieldObjects (
17028c506b8Sjruoho     ACPI_PARSE_OBJECT       *Op,
17128c506b8Sjruoho     ACPI_WALK_STATE         *WalkState);
17228c506b8Sjruoho 
17328c506b8Sjruoho 
17428c506b8Sjruoho /*
175460301d4Schristos  * dsload - Parser/Interpreter interface
17628c506b8Sjruoho  */
17728c506b8Sjruoho ACPI_STATUS
178124f4c82Sjruoho AcpiDsInitCallbacks (
179124f4c82Sjruoho     ACPI_WALK_STATE         *WalkState,
180124f4c82Sjruoho     UINT32                  PassNumber);
181124f4c82Sjruoho 
182460301d4Schristos /* dsload - pass 1 namespace load callbacks */
183460301d4Schristos 
184124f4c82Sjruoho ACPI_STATUS
18528c506b8Sjruoho AcpiDsLoad1BeginOp (
18628c506b8Sjruoho     ACPI_WALK_STATE         *WalkState,
18728c506b8Sjruoho     ACPI_PARSE_OBJECT       **OutOp);
18828c506b8Sjruoho 
18928c506b8Sjruoho ACPI_STATUS
19028c506b8Sjruoho AcpiDsLoad1EndOp (
19128c506b8Sjruoho     ACPI_WALK_STATE         *WalkState);
19228c506b8Sjruoho 
193124f4c82Sjruoho 
194460301d4Schristos /* dsload - pass 2 namespace load callbacks */
195460301d4Schristos 
19628c506b8Sjruoho ACPI_STATUS
19728c506b8Sjruoho AcpiDsLoad2BeginOp (
19828c506b8Sjruoho     ACPI_WALK_STATE         *WalkState,
19928c506b8Sjruoho     ACPI_PARSE_OBJECT       **OutOp);
20028c506b8Sjruoho 
20128c506b8Sjruoho ACPI_STATUS
20228c506b8Sjruoho AcpiDsLoad2EndOp (
20328c506b8Sjruoho     ACPI_WALK_STATE         *WalkState);
20428c506b8Sjruoho 
20528c506b8Sjruoho 
20628c506b8Sjruoho /*
20728c506b8Sjruoho  * dsmthdat - method data (locals/args)
20828c506b8Sjruoho  */
20928c506b8Sjruoho ACPI_STATUS
21028c506b8Sjruoho AcpiDsStoreObjectToLocal (
21128c506b8Sjruoho     UINT8                   Type,
21228c506b8Sjruoho     UINT32                  Index,
21328c506b8Sjruoho     ACPI_OPERAND_OBJECT     *SrcDesc,
21428c506b8Sjruoho     ACPI_WALK_STATE         *WalkState);
21528c506b8Sjruoho 
21628c506b8Sjruoho ACPI_STATUS
21728c506b8Sjruoho AcpiDsMethodDataGetEntry (
21828c506b8Sjruoho     UINT16                  Opcode,
21928c506b8Sjruoho     UINT32                  Index,
22028c506b8Sjruoho     ACPI_WALK_STATE         *WalkState,
22128c506b8Sjruoho     ACPI_OPERAND_OBJECT     ***Node);
22228c506b8Sjruoho 
22328c506b8Sjruoho void
22428c506b8Sjruoho AcpiDsMethodDataDeleteAll (
22528c506b8Sjruoho     ACPI_WALK_STATE         *WalkState);
22628c506b8Sjruoho 
22728c506b8Sjruoho BOOLEAN
22828c506b8Sjruoho AcpiDsIsMethodValue (
22928c506b8Sjruoho     ACPI_OPERAND_OBJECT     *ObjDesc);
23028c506b8Sjruoho 
23128c506b8Sjruoho ACPI_STATUS
23228c506b8Sjruoho AcpiDsMethodDataGetValue (
23328c506b8Sjruoho     UINT8                   Type,
23428c506b8Sjruoho     UINT32                  Index,
23528c506b8Sjruoho     ACPI_WALK_STATE         *WalkState,
23628c506b8Sjruoho     ACPI_OPERAND_OBJECT     **DestDesc);
23728c506b8Sjruoho 
23828c506b8Sjruoho ACPI_STATUS
23928c506b8Sjruoho AcpiDsMethodDataInitArgs (
24028c506b8Sjruoho     ACPI_OPERAND_OBJECT     **Params,
24128c506b8Sjruoho     UINT32                  MaxParamCount,
24228c506b8Sjruoho     ACPI_WALK_STATE         *WalkState);
24328c506b8Sjruoho 
24428c506b8Sjruoho ACPI_STATUS
24528c506b8Sjruoho AcpiDsMethodDataGetNode (
24628c506b8Sjruoho     UINT8                   Type,
24728c506b8Sjruoho     UINT32                  Index,
24828c506b8Sjruoho     ACPI_WALK_STATE         *WalkState,
24928c506b8Sjruoho     ACPI_NAMESPACE_NODE     **Node);
25028c506b8Sjruoho 
25128c506b8Sjruoho void
25228c506b8Sjruoho AcpiDsMethodDataInit (
25328c506b8Sjruoho     ACPI_WALK_STATE         *WalkState);
25428c506b8Sjruoho 
25528c506b8Sjruoho 
25628c506b8Sjruoho /*
25728c506b8Sjruoho  * dsmethod - Parser/Interpreter interface - control method parsing
25828c506b8Sjruoho  */
25928c506b8Sjruoho ACPI_STATUS
260460301d4Schristos AcpiDsAutoSerializeMethod (
261460301d4Schristos     ACPI_NAMESPACE_NODE     *Node,
262460301d4Schristos     ACPI_OPERAND_OBJECT     *ObjDesc);
26328c506b8Sjruoho 
26428c506b8Sjruoho ACPI_STATUS
26528c506b8Sjruoho AcpiDsCallControlMethod (
26628c506b8Sjruoho     ACPI_THREAD_STATE       *Thread,
26728c506b8Sjruoho     ACPI_WALK_STATE         *WalkState,
26828c506b8Sjruoho     ACPI_PARSE_OBJECT       *Op);
26928c506b8Sjruoho 
27028c506b8Sjruoho ACPI_STATUS
27128c506b8Sjruoho AcpiDsRestartControlMethod (
27228c506b8Sjruoho     ACPI_WALK_STATE         *WalkState,
27328c506b8Sjruoho     ACPI_OPERAND_OBJECT     *ReturnDesc);
27428c506b8Sjruoho 
27528c506b8Sjruoho void
27628c506b8Sjruoho AcpiDsTerminateControlMethod (
27728c506b8Sjruoho     ACPI_OPERAND_OBJECT     *MethodDesc,
27828c506b8Sjruoho     ACPI_WALK_STATE         *WalkState);
27928c506b8Sjruoho 
28028c506b8Sjruoho ACPI_STATUS
28128c506b8Sjruoho AcpiDsBeginMethodExecution (
28228c506b8Sjruoho     ACPI_NAMESPACE_NODE     *MethodNode,
28328c506b8Sjruoho     ACPI_OPERAND_OBJECT     *ObjDesc,
28428c506b8Sjruoho     ACPI_WALK_STATE         *WalkState);
28528c506b8Sjruoho 
28628c506b8Sjruoho ACPI_STATUS
28728c506b8Sjruoho AcpiDsMethodError (
28828c506b8Sjruoho     ACPI_STATUS             Status,
28928c506b8Sjruoho     ACPI_WALK_STATE         *WalkState);
29028c506b8Sjruoho 
29128c506b8Sjruoho /*
29228c506b8Sjruoho  * dsinit
29328c506b8Sjruoho  */
29428c506b8Sjruoho ACPI_STATUS
29528c506b8Sjruoho AcpiDsInitializeObjects (
29628c506b8Sjruoho     UINT32                  TableIndex,
29728c506b8Sjruoho     ACPI_NAMESPACE_NODE     *StartNode);
29828c506b8Sjruoho 
29928c506b8Sjruoho 
30028c506b8Sjruoho /*
30128c506b8Sjruoho  * dsobject - Parser/Interpreter interface - object initialization and conversion
30228c506b8Sjruoho  */
30328c506b8Sjruoho ACPI_STATUS
30489b8eb6cSchristos AcpiDsBuildInternalObject (
30589b8eb6cSchristos     ACPI_WALK_STATE         *WalkState,
30689b8eb6cSchristos     ACPI_PARSE_OBJECT       *Op,
30789b8eb6cSchristos     ACPI_OPERAND_OBJECT     **ObjDescPtr);
30889b8eb6cSchristos 
30989b8eb6cSchristos ACPI_STATUS
31028c506b8Sjruoho AcpiDsBuildInternalBufferObj (
31128c506b8Sjruoho     ACPI_WALK_STATE         *WalkState,
31228c506b8Sjruoho     ACPI_PARSE_OBJECT       *Op,
31328c506b8Sjruoho     UINT32                  BufferLength,
31428c506b8Sjruoho     ACPI_OPERAND_OBJECT     **ObjDescPtr);
31528c506b8Sjruoho 
31628c506b8Sjruoho ACPI_STATUS
31728c506b8Sjruoho AcpiDsBuildInternalPackageObj (
31828c506b8Sjruoho     ACPI_WALK_STATE         *WalkState,
31928c506b8Sjruoho     ACPI_PARSE_OBJECT       *op,
32028c506b8Sjruoho     UINT32                  PackageLength,
32128c506b8Sjruoho     ACPI_OPERAND_OBJECT     **ObjDesc);
32228c506b8Sjruoho 
32328c506b8Sjruoho ACPI_STATUS
32428c506b8Sjruoho AcpiDsInitObjectFromOp (
32528c506b8Sjruoho     ACPI_WALK_STATE         *WalkState,
32628c506b8Sjruoho     ACPI_PARSE_OBJECT       *Op,
32728c506b8Sjruoho     UINT16                  Opcode,
32828c506b8Sjruoho     ACPI_OPERAND_OBJECT     **ObjDesc);
32928c506b8Sjruoho 
33028c506b8Sjruoho ACPI_STATUS
33128c506b8Sjruoho AcpiDsCreateNode (
33228c506b8Sjruoho     ACPI_WALK_STATE         *WalkState,
33328c506b8Sjruoho     ACPI_NAMESPACE_NODE     *Node,
33428c506b8Sjruoho     ACPI_PARSE_OBJECT       *Op);
33528c506b8Sjruoho 
33628c506b8Sjruoho 
33728c506b8Sjruoho /*
33889b8eb6cSchristos  * dspkginit - Package object initialization
33989b8eb6cSchristos  */
34089b8eb6cSchristos ACPI_STATUS
34189b8eb6cSchristos AcpiDsInitPackageElement (
34289b8eb6cSchristos     UINT8                   ObjectType,
34389b8eb6cSchristos     ACPI_OPERAND_OBJECT     *SourceObject,
34489b8eb6cSchristos     ACPI_GENERIC_STATE      *State,
34589b8eb6cSchristos     void                    *Context);
34689b8eb6cSchristos 
34789b8eb6cSchristos 
34889b8eb6cSchristos /*
34928c506b8Sjruoho  * dsutils - Parser/Interpreter interface utility routines
35028c506b8Sjruoho  */
35128c506b8Sjruoho void
35228c506b8Sjruoho AcpiDsClearImplicitReturn (
35328c506b8Sjruoho     ACPI_WALK_STATE         *WalkState);
35428c506b8Sjruoho 
35528c506b8Sjruoho BOOLEAN
35628c506b8Sjruoho AcpiDsDoImplicitReturn (
35728c506b8Sjruoho     ACPI_OPERAND_OBJECT     *ReturnDesc,
35828c506b8Sjruoho     ACPI_WALK_STATE         *WalkState,
35928c506b8Sjruoho     BOOLEAN                 AddReference);
36028c506b8Sjruoho 
36128c506b8Sjruoho BOOLEAN
36228c506b8Sjruoho AcpiDsIsResultUsed (
36328c506b8Sjruoho     ACPI_PARSE_OBJECT       *Op,
36428c506b8Sjruoho     ACPI_WALK_STATE         *WalkState);
36528c506b8Sjruoho 
36628c506b8Sjruoho void
36728c506b8Sjruoho AcpiDsDeleteResultIfNotUsed (
36828c506b8Sjruoho     ACPI_PARSE_OBJECT       *Op,
36928c506b8Sjruoho     ACPI_OPERAND_OBJECT     *ResultObj,
37028c506b8Sjruoho     ACPI_WALK_STATE         *WalkState);
37128c506b8Sjruoho 
37228c506b8Sjruoho ACPI_STATUS
37328c506b8Sjruoho AcpiDsCreateOperand (
37428c506b8Sjruoho     ACPI_WALK_STATE         *WalkState,
37528c506b8Sjruoho     ACPI_PARSE_OBJECT       *Arg,
37628c506b8Sjruoho     UINT32                  ArgsRemaining);
37728c506b8Sjruoho 
37828c506b8Sjruoho ACPI_STATUS
37928c506b8Sjruoho AcpiDsCreateOperands (
38028c506b8Sjruoho     ACPI_WALK_STATE         *WalkState,
38128c506b8Sjruoho     ACPI_PARSE_OBJECT       *FirstArg);
38228c506b8Sjruoho 
38328c506b8Sjruoho ACPI_STATUS
38428c506b8Sjruoho AcpiDsResolveOperands (
38528c506b8Sjruoho     ACPI_WALK_STATE         *WalkState);
38628c506b8Sjruoho 
38728c506b8Sjruoho void
38828c506b8Sjruoho AcpiDsClearOperands (
38928c506b8Sjruoho     ACPI_WALK_STATE         *WalkState);
39028c506b8Sjruoho 
39128c506b8Sjruoho ACPI_STATUS
39228c506b8Sjruoho AcpiDsEvaluateNamePath (
39328c506b8Sjruoho     ACPI_WALK_STATE         *WalkState);
39428c506b8Sjruoho 
39528c506b8Sjruoho 
39628c506b8Sjruoho /*
39728c506b8Sjruoho  * dswscope - Scope Stack manipulation
39828c506b8Sjruoho  */
39928c506b8Sjruoho ACPI_STATUS
40028c506b8Sjruoho AcpiDsScopeStackPush (
40128c506b8Sjruoho     ACPI_NAMESPACE_NODE     *Node,
40228c506b8Sjruoho     ACPI_OBJECT_TYPE        Type,
40328c506b8Sjruoho     ACPI_WALK_STATE         *WalkState);
40428c506b8Sjruoho 
40528c506b8Sjruoho 
40628c506b8Sjruoho ACPI_STATUS
40728c506b8Sjruoho AcpiDsScopeStackPop (
40828c506b8Sjruoho     ACPI_WALK_STATE         *WalkState);
40928c506b8Sjruoho 
41028c506b8Sjruoho void
41128c506b8Sjruoho AcpiDsScopeStackClear (
41228c506b8Sjruoho     ACPI_WALK_STATE         *WalkState);
41328c506b8Sjruoho 
41428c506b8Sjruoho 
41528c506b8Sjruoho /*
41628c506b8Sjruoho  * dswstate - parser WALK_STATE management routines
41728c506b8Sjruoho  */
41828c506b8Sjruoho ACPI_STATUS
41928c506b8Sjruoho AcpiDsObjStackPush (
42028c506b8Sjruoho     void                    *Object,
42128c506b8Sjruoho     ACPI_WALK_STATE         *WalkState);
42228c506b8Sjruoho 
42328c506b8Sjruoho ACPI_STATUS
42428c506b8Sjruoho AcpiDsObjStackPop (
42528c506b8Sjruoho     UINT32                  PopCount,
42628c506b8Sjruoho     ACPI_WALK_STATE         *WalkState);
42728c506b8Sjruoho 
42828c506b8Sjruoho ACPI_WALK_STATE *
42928c506b8Sjruoho AcpiDsCreateWalkState (
43028c506b8Sjruoho     ACPI_OWNER_ID           OwnerId,
43128c506b8Sjruoho     ACPI_PARSE_OBJECT       *Origin,
43228c506b8Sjruoho     ACPI_OPERAND_OBJECT     *MthDesc,
43328c506b8Sjruoho     ACPI_THREAD_STATE       *Thread);
43428c506b8Sjruoho 
43528c506b8Sjruoho ACPI_STATUS
43628c506b8Sjruoho AcpiDsInitAmlWalk (
43728c506b8Sjruoho     ACPI_WALK_STATE         *WalkState,
43828c506b8Sjruoho     ACPI_PARSE_OBJECT       *Op,
43928c506b8Sjruoho     ACPI_NAMESPACE_NODE     *MethodNode,
44028c506b8Sjruoho     UINT8                   *AmlStart,
44128c506b8Sjruoho     UINT32                  AmlLength,
44228c506b8Sjruoho     ACPI_EVALUATE_INFO      *Info,
44328c506b8Sjruoho     UINT8                   PassNumber);
44428c506b8Sjruoho 
44528c506b8Sjruoho void
44628c506b8Sjruoho AcpiDsObjStackPopAndDelete (
44728c506b8Sjruoho     UINT32                  PopCount,
44828c506b8Sjruoho     ACPI_WALK_STATE         *WalkState);
44928c506b8Sjruoho 
45028c506b8Sjruoho void
45128c506b8Sjruoho AcpiDsDeleteWalkState (
45228c506b8Sjruoho     ACPI_WALK_STATE         *WalkState);
45328c506b8Sjruoho 
45428c506b8Sjruoho ACPI_WALK_STATE *
45528c506b8Sjruoho AcpiDsPopWalkState (
45628c506b8Sjruoho     ACPI_THREAD_STATE       *Thread);
45728c506b8Sjruoho 
45828c506b8Sjruoho void
45928c506b8Sjruoho AcpiDsPushWalkState (
46028c506b8Sjruoho     ACPI_WALK_STATE         *WalkState,
46128c506b8Sjruoho     ACPI_THREAD_STATE       *Thread);
46228c506b8Sjruoho 
46328c506b8Sjruoho ACPI_STATUS
46428c506b8Sjruoho AcpiDsResultStackClear (
46528c506b8Sjruoho     ACPI_WALK_STATE         *WalkState);
46628c506b8Sjruoho 
46728c506b8Sjruoho ACPI_WALK_STATE *
46828c506b8Sjruoho AcpiDsGetCurrentWalkState (
46928c506b8Sjruoho     ACPI_THREAD_STATE       *Thread);
47028c506b8Sjruoho 
47128c506b8Sjruoho ACPI_STATUS
47228c506b8Sjruoho AcpiDsResultPop (
47328c506b8Sjruoho     ACPI_OPERAND_OBJECT     **Object,
47428c506b8Sjruoho     ACPI_WALK_STATE         *WalkState);
47528c506b8Sjruoho 
47628c506b8Sjruoho ACPI_STATUS
47728c506b8Sjruoho AcpiDsResultPush (
47828c506b8Sjruoho     ACPI_OPERAND_OBJECT     *Object,
47928c506b8Sjruoho     ACPI_WALK_STATE         *WalkState);
48028c506b8Sjruoho 
481c72da027Schristos 
482c72da027Schristos /*
483c72da027Schristos  * dsdebug - parser debugging routines
484c72da027Schristos  */
485c72da027Schristos void
486c72da027Schristos AcpiDsDumpMethodStack (
487c72da027Schristos     ACPI_STATUS             Status,
488c72da027Schristos     ACPI_WALK_STATE         *WalkState,
489c72da027Schristos     ACPI_PARSE_OBJECT       *Op);
490c72da027Schristos 
49128c506b8Sjruoho #endif /* _ACDISPAT_H_ */
492