1a9f12690SJung-uk Kim /******************************************************************************
2a9f12690SJung-uk Kim  *
3a9f12690SJung-uk Kim  * Name: acdispat.h - dispatcher (parser to interpreter interface)
4a9f12690SJung-uk Kim  *
5a9f12690SJung-uk Kim  *****************************************************************************/
6a9f12690SJung-uk Kim 
7d244b227SJung-uk Kim /*
8d244b227SJung-uk Kim  * Copyright (C) 2000 - 2011, Intel Corp.
9a9f12690SJung-uk Kim  * All rights reserved.
10a9f12690SJung-uk Kim  *
11d244b227SJung-uk Kim  * Redistribution and use in source and binary forms, with or without
12d244b227SJung-uk Kim  * modification, are permitted provided that the following conditions
13d244b227SJung-uk Kim  * are met:
14d244b227SJung-uk Kim  * 1. Redistributions of source code must retain the above copyright
15d244b227SJung-uk Kim  *    notice, this list of conditions, and the following disclaimer,
16d244b227SJung-uk Kim  *    without modification.
17d244b227SJung-uk Kim  * 2. Redistributions in binary form must reproduce at minimum a disclaimer
18d244b227SJung-uk Kim  *    substantially similar to the "NO WARRANTY" disclaimer below
19d244b227SJung-uk Kim  *    ("Disclaimer") and any redistribution must be conditioned upon
20d244b227SJung-uk Kim  *    including a substantially similar Disclaimer requirement for further
21d244b227SJung-uk Kim  *    binary redistribution.
22d244b227SJung-uk Kim  * 3. Neither the names of the above-listed copyright holders nor the names
23d244b227SJung-uk Kim  *    of any contributors may be used to endorse or promote products derived
24d244b227SJung-uk Kim  *    from this software without specific prior written permission.
25a9f12690SJung-uk Kim  *
26d244b227SJung-uk Kim  * Alternatively, this software may be distributed under the terms of the
27d244b227SJung-uk Kim  * GNU General Public License ("GPL") version 2 as published by the Free
28d244b227SJung-uk Kim  * Software Foundation.
29a9f12690SJung-uk Kim  *
30d244b227SJung-uk Kim  * NO WARRANTY
31d244b227SJung-uk Kim  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
32d244b227SJung-uk Kim  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
33d244b227SJung-uk Kim  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
34d244b227SJung-uk Kim  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
35d244b227SJung-uk Kim  * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
36d244b227SJung-uk Kim  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
37d244b227SJung-uk Kim  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
38d244b227SJung-uk Kim  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
39d244b227SJung-uk Kim  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
40d244b227SJung-uk Kim  * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
41d244b227SJung-uk Kim  * POSSIBILITY OF SUCH DAMAGES.
42d244b227SJung-uk Kim  */
43a9f12690SJung-uk Kim 
44a9f12690SJung-uk Kim 
45a9f12690SJung-uk Kim #ifndef _ACDISPAT_H_
46a9f12690SJung-uk Kim #define _ACDISPAT_H_
47a9f12690SJung-uk Kim 
48a9f12690SJung-uk Kim 
49a9f12690SJung-uk Kim #define NAMEOF_LOCAL_NTE    "__L0"
50a9f12690SJung-uk Kim #define NAMEOF_ARG_NTE      "__A0"
51a9f12690SJung-uk Kim 
52a9f12690SJung-uk Kim 
53a9f12690SJung-uk Kim /*
54a9f12690SJung-uk Kim  * dsopcode - support for late evaluation
55a9f12690SJung-uk Kim  */
56a9f12690SJung-uk Kim ACPI_STATUS
57a9f12690SJung-uk Kim AcpiDsGetBufferFieldArguments (
58a9f12690SJung-uk Kim     ACPI_OPERAND_OBJECT     *ObjDesc);
59a9f12690SJung-uk Kim 
60a9f12690SJung-uk Kim ACPI_STATUS
61a9f12690SJung-uk Kim AcpiDsGetBankFieldArguments (
62a9f12690SJung-uk Kim     ACPI_OPERAND_OBJECT     *ObjDesc);
63a9f12690SJung-uk Kim 
64a9f12690SJung-uk Kim ACPI_STATUS
65a9f12690SJung-uk Kim AcpiDsGetRegionArguments (
66a9f12690SJung-uk Kim     ACPI_OPERAND_OBJECT     *RgnDesc);
67a9f12690SJung-uk Kim 
68a9f12690SJung-uk Kim ACPI_STATUS
69a9f12690SJung-uk Kim AcpiDsGetBufferArguments (
70a9f12690SJung-uk Kim     ACPI_OPERAND_OBJECT     *ObjDesc);
71a9f12690SJung-uk Kim 
72a9f12690SJung-uk Kim ACPI_STATUS
73a9f12690SJung-uk Kim AcpiDsGetPackageArguments (
74a9f12690SJung-uk Kim     ACPI_OPERAND_OBJECT     *ObjDesc);
75a9f12690SJung-uk Kim 
76a9f12690SJung-uk Kim ACPI_STATUS
77a9f12690SJung-uk Kim AcpiDsEvalBufferFieldOperands (
78a9f12690SJung-uk Kim     ACPI_WALK_STATE         *WalkState,
79a9f12690SJung-uk Kim     ACPI_PARSE_OBJECT       *Op);
80a9f12690SJung-uk Kim 
81a9f12690SJung-uk Kim ACPI_STATUS
82a9f12690SJung-uk Kim AcpiDsEvalRegionOperands (
83a9f12690SJung-uk Kim     ACPI_WALK_STATE         *WalkState,
84a9f12690SJung-uk Kim     ACPI_PARSE_OBJECT       *Op);
85a9f12690SJung-uk Kim 
86a9f12690SJung-uk Kim ACPI_STATUS
87a9f12690SJung-uk Kim AcpiDsEvalTableRegionOperands (
88a9f12690SJung-uk Kim     ACPI_WALK_STATE         *WalkState,
89a9f12690SJung-uk Kim     ACPI_PARSE_OBJECT       *Op);
90a9f12690SJung-uk Kim 
91a9f12690SJung-uk Kim ACPI_STATUS
92a9f12690SJung-uk Kim AcpiDsEvalDataObjectOperands (
93a9f12690SJung-uk Kim     ACPI_WALK_STATE         *WalkState,
94a9f12690SJung-uk Kim     ACPI_PARSE_OBJECT       *Op,
95a9f12690SJung-uk Kim     ACPI_OPERAND_OBJECT     *ObjDesc);
96a9f12690SJung-uk Kim 
97a9f12690SJung-uk Kim ACPI_STATUS
98a9f12690SJung-uk Kim AcpiDsEvalBankFieldOperands (
99a9f12690SJung-uk Kim     ACPI_WALK_STATE         *WalkState,
100a9f12690SJung-uk Kim     ACPI_PARSE_OBJECT       *Op);
101a9f12690SJung-uk Kim 
102a9f12690SJung-uk Kim ACPI_STATUS
103a9f12690SJung-uk Kim AcpiDsInitializeRegion (
104a9f12690SJung-uk Kim     ACPI_HANDLE             ObjHandle);
105a9f12690SJung-uk Kim 
106a9f12690SJung-uk Kim 
107a9f12690SJung-uk Kim /*
108a9f12690SJung-uk Kim  * dsctrl - Parser/Interpreter interface, control stack routines
109a9f12690SJung-uk Kim  */
110a9f12690SJung-uk Kim ACPI_STATUS
111a9f12690SJung-uk Kim AcpiDsExecBeginControlOp (
112a9f12690SJung-uk Kim     ACPI_WALK_STATE         *WalkState,
113a9f12690SJung-uk Kim     ACPI_PARSE_OBJECT       *Op);
114a9f12690SJung-uk Kim 
115a9f12690SJung-uk Kim ACPI_STATUS
116a9f12690SJung-uk Kim AcpiDsExecEndControlOp (
117a9f12690SJung-uk Kim     ACPI_WALK_STATE         *WalkState,
118a9f12690SJung-uk Kim     ACPI_PARSE_OBJECT       *Op);
119a9f12690SJung-uk Kim 
120a9f12690SJung-uk Kim 
121a9f12690SJung-uk Kim /*
122a9f12690SJung-uk Kim  * dsexec - Parser/Interpreter interface, method execution callbacks
123a9f12690SJung-uk Kim  */
124a9f12690SJung-uk Kim ACPI_STATUS
125a9f12690SJung-uk Kim AcpiDsGetPredicateValue (
126a9f12690SJung-uk Kim     ACPI_WALK_STATE         *WalkState,
127a9f12690SJung-uk Kim     ACPI_OPERAND_OBJECT     *ResultObj);
128a9f12690SJung-uk Kim 
129a9f12690SJung-uk Kim ACPI_STATUS
130a9f12690SJung-uk Kim AcpiDsExecBeginOp (
131a9f12690SJung-uk Kim     ACPI_WALK_STATE         *WalkState,
132a9f12690SJung-uk Kim     ACPI_PARSE_OBJECT       **OutOp);
133a9f12690SJung-uk Kim 
134a9f12690SJung-uk Kim ACPI_STATUS
135a9f12690SJung-uk Kim AcpiDsExecEndOp (
136a9f12690SJung-uk Kim     ACPI_WALK_STATE         *State);
137a9f12690SJung-uk Kim 
138a9f12690SJung-uk Kim 
139a9f12690SJung-uk Kim /*
140a9f12690SJung-uk Kim  * dsfield - Parser/Interpreter interface for AML fields
141a9f12690SJung-uk Kim  */
142a9f12690SJung-uk Kim ACPI_STATUS
143a9f12690SJung-uk Kim AcpiDsCreateField (
144a9f12690SJung-uk Kim     ACPI_PARSE_OBJECT       *Op,
145a9f12690SJung-uk Kim     ACPI_NAMESPACE_NODE     *RegionNode,
146a9f12690SJung-uk Kim     ACPI_WALK_STATE         *WalkState);
147a9f12690SJung-uk Kim 
148a9f12690SJung-uk Kim ACPI_STATUS
149a9f12690SJung-uk Kim AcpiDsCreateBankField (
150a9f12690SJung-uk Kim     ACPI_PARSE_OBJECT       *Op,
151a9f12690SJung-uk Kim     ACPI_NAMESPACE_NODE     *RegionNode,
152a9f12690SJung-uk Kim     ACPI_WALK_STATE         *WalkState);
153a9f12690SJung-uk Kim 
154a9f12690SJung-uk Kim ACPI_STATUS
155a9f12690SJung-uk Kim AcpiDsCreateIndexField (
156a9f12690SJung-uk Kim     ACPI_PARSE_OBJECT       *Op,
157a9f12690SJung-uk Kim     ACPI_NAMESPACE_NODE     *RegionNode,
158a9f12690SJung-uk Kim     ACPI_WALK_STATE         *WalkState);
159a9f12690SJung-uk Kim 
160a9f12690SJung-uk Kim ACPI_STATUS
161a9f12690SJung-uk Kim AcpiDsCreateBufferField (
162a9f12690SJung-uk Kim     ACPI_PARSE_OBJECT       *Op,
163a9f12690SJung-uk Kim     ACPI_WALK_STATE         *WalkState);
164a9f12690SJung-uk Kim 
165a9f12690SJung-uk Kim ACPI_STATUS
166a9f12690SJung-uk Kim AcpiDsInitFieldObjects (
167a9f12690SJung-uk Kim     ACPI_PARSE_OBJECT       *Op,
168a9f12690SJung-uk Kim     ACPI_WALK_STATE         *WalkState);
169a9f12690SJung-uk Kim 
170a9f12690SJung-uk Kim 
171a9f12690SJung-uk Kim /*
172a9f12690SJung-uk Kim  * dsload - Parser/Interpreter interface, namespace load callbacks
173a9f12690SJung-uk Kim  */
174a9f12690SJung-uk Kim ACPI_STATUS
175a9f12690SJung-uk Kim AcpiDsLoad1BeginOp (
176a9f12690SJung-uk Kim     ACPI_WALK_STATE         *WalkState,
177a9f12690SJung-uk Kim     ACPI_PARSE_OBJECT       **OutOp);
178a9f12690SJung-uk Kim 
179a9f12690SJung-uk Kim ACPI_STATUS
180a9f12690SJung-uk Kim AcpiDsLoad1EndOp (
181a9f12690SJung-uk Kim     ACPI_WALK_STATE         *WalkState);
182a9f12690SJung-uk Kim 
183a9f12690SJung-uk Kim ACPI_STATUS
184a9f12690SJung-uk Kim AcpiDsLoad2BeginOp (
185a9f12690SJung-uk Kim     ACPI_WALK_STATE         *WalkState,
186a9f12690SJung-uk Kim     ACPI_PARSE_OBJECT       **OutOp);
187a9f12690SJung-uk Kim 
188a9f12690SJung-uk Kim ACPI_STATUS
189a9f12690SJung-uk Kim AcpiDsLoad2EndOp (
190a9f12690SJung-uk Kim     ACPI_WALK_STATE         *WalkState);
191a9f12690SJung-uk Kim 
192a9f12690SJung-uk Kim ACPI_STATUS
193a9f12690SJung-uk Kim AcpiDsInitCallbacks (
194a9f12690SJung-uk Kim     ACPI_WALK_STATE         *WalkState,
195a9f12690SJung-uk Kim     UINT32                  PassNumber);
196a9f12690SJung-uk Kim 
197a9f12690SJung-uk Kim 
198a9f12690SJung-uk Kim /*
199a9f12690SJung-uk Kim  * dsmthdat - method data (locals/args)
200a9f12690SJung-uk Kim  */
201a9f12690SJung-uk Kim ACPI_STATUS
202a9f12690SJung-uk Kim AcpiDsStoreObjectToLocal (
203a9f12690SJung-uk Kim     UINT8                   Type,
204a9f12690SJung-uk Kim     UINT32                  Index,
205a9f12690SJung-uk Kim     ACPI_OPERAND_OBJECT     *SrcDesc,
206a9f12690SJung-uk Kim     ACPI_WALK_STATE         *WalkState);
207a9f12690SJung-uk Kim 
208a9f12690SJung-uk Kim ACPI_STATUS
209a9f12690SJung-uk Kim AcpiDsMethodDataGetEntry (
210a9f12690SJung-uk Kim     UINT16                  Opcode,
211a9f12690SJung-uk Kim     UINT32                  Index,
212a9f12690SJung-uk Kim     ACPI_WALK_STATE         *WalkState,
213a9f12690SJung-uk Kim     ACPI_OPERAND_OBJECT     ***Node);
214a9f12690SJung-uk Kim 
215a9f12690SJung-uk Kim void
216a9f12690SJung-uk Kim AcpiDsMethodDataDeleteAll (
217a9f12690SJung-uk Kim     ACPI_WALK_STATE         *WalkState);
218a9f12690SJung-uk Kim 
219a9f12690SJung-uk Kim BOOLEAN
220a9f12690SJung-uk Kim AcpiDsIsMethodValue (
221a9f12690SJung-uk Kim     ACPI_OPERAND_OBJECT     *ObjDesc);
222a9f12690SJung-uk Kim 
223a9f12690SJung-uk Kim ACPI_STATUS
224a9f12690SJung-uk Kim AcpiDsMethodDataGetValue (
225a9f12690SJung-uk Kim     UINT8                   Type,
226a9f12690SJung-uk Kim     UINT32                  Index,
227a9f12690SJung-uk Kim     ACPI_WALK_STATE         *WalkState,
228a9f12690SJung-uk Kim     ACPI_OPERAND_OBJECT     **DestDesc);
229a9f12690SJung-uk Kim 
230a9f12690SJung-uk Kim ACPI_STATUS
231a9f12690SJung-uk Kim AcpiDsMethodDataInitArgs (
232a9f12690SJung-uk Kim     ACPI_OPERAND_OBJECT     **Params,
233a9f12690SJung-uk Kim     UINT32                  MaxParamCount,
234a9f12690SJung-uk Kim     ACPI_WALK_STATE         *WalkState);
235a9f12690SJung-uk Kim 
236a9f12690SJung-uk Kim ACPI_STATUS
237a9f12690SJung-uk Kim AcpiDsMethodDataGetNode (
238a9f12690SJung-uk Kim     UINT8                   Type,
239a9f12690SJung-uk Kim     UINT32                  Index,
240a9f12690SJung-uk Kim     ACPI_WALK_STATE         *WalkState,
241a9f12690SJung-uk Kim     ACPI_NAMESPACE_NODE     **Node);
242a9f12690SJung-uk Kim 
243a9f12690SJung-uk Kim void
244a9f12690SJung-uk Kim AcpiDsMethodDataInit (
245a9f12690SJung-uk Kim     ACPI_WALK_STATE         *WalkState);
246a9f12690SJung-uk Kim 
247a9f12690SJung-uk Kim 
248a9f12690SJung-uk Kim /*
249a9f12690SJung-uk Kim  * dsmethod - Parser/Interpreter interface - control method parsing
250a9f12690SJung-uk Kim  */
251a9f12690SJung-uk Kim ACPI_STATUS
252a9f12690SJung-uk Kim AcpiDsParseMethod (
253a9f12690SJung-uk Kim     ACPI_NAMESPACE_NODE     *Node);
254a9f12690SJung-uk Kim 
255a9f12690SJung-uk Kim ACPI_STATUS
256a9f12690SJung-uk Kim AcpiDsCallControlMethod (
257a9f12690SJung-uk Kim     ACPI_THREAD_STATE       *Thread,
258a9f12690SJung-uk Kim     ACPI_WALK_STATE         *WalkState,
259a9f12690SJung-uk Kim     ACPI_PARSE_OBJECT       *Op);
260a9f12690SJung-uk Kim 
261a9f12690SJung-uk Kim ACPI_STATUS
262a9f12690SJung-uk Kim AcpiDsRestartControlMethod (
263a9f12690SJung-uk Kim     ACPI_WALK_STATE         *WalkState,
264a9f12690SJung-uk Kim     ACPI_OPERAND_OBJECT     *ReturnDesc);
265a9f12690SJung-uk Kim 
266a9f12690SJung-uk Kim void
267a9f12690SJung-uk Kim AcpiDsTerminateControlMethod (
268a9f12690SJung-uk Kim     ACPI_OPERAND_OBJECT     *MethodDesc,
269a9f12690SJung-uk Kim     ACPI_WALK_STATE         *WalkState);
270a9f12690SJung-uk Kim 
271a9f12690SJung-uk Kim ACPI_STATUS
272a9f12690SJung-uk Kim AcpiDsBeginMethodExecution (
273a9f12690SJung-uk Kim     ACPI_NAMESPACE_NODE     *MethodNode,
274a9f12690SJung-uk Kim     ACPI_OPERAND_OBJECT     *ObjDesc,
275a9f12690SJung-uk Kim     ACPI_WALK_STATE         *WalkState);
276a9f12690SJung-uk Kim 
277a9f12690SJung-uk Kim ACPI_STATUS
278a9f12690SJung-uk Kim AcpiDsMethodError (
279a9f12690SJung-uk Kim     ACPI_STATUS             Status,
280a9f12690SJung-uk Kim     ACPI_WALK_STATE         *WalkState);
281a9f12690SJung-uk Kim 
282a9f12690SJung-uk Kim /*
283a9f12690SJung-uk Kim  * dsinit
284a9f12690SJung-uk Kim  */
285a9f12690SJung-uk Kim ACPI_STATUS
286a9f12690SJung-uk Kim AcpiDsInitializeObjects (
287a9f12690SJung-uk Kim     UINT32                  TableIndex,
288a9f12690SJung-uk Kim     ACPI_NAMESPACE_NODE     *StartNode);
289a9f12690SJung-uk Kim 
290a9f12690SJung-uk Kim 
291a9f12690SJung-uk Kim /*
292a9f12690SJung-uk Kim  * dsobject - Parser/Interpreter interface - object initialization and conversion
293a9f12690SJung-uk Kim  */
294a9f12690SJung-uk Kim ACPI_STATUS
295a9f12690SJung-uk Kim AcpiDsBuildInternalBufferObj (
296a9f12690SJung-uk Kim     ACPI_WALK_STATE         *WalkState,
297a9f12690SJung-uk Kim     ACPI_PARSE_OBJECT       *Op,
298a9f12690SJung-uk Kim     UINT32                  BufferLength,
299a9f12690SJung-uk Kim     ACPI_OPERAND_OBJECT     **ObjDescPtr);
300a9f12690SJung-uk Kim 
301a9f12690SJung-uk Kim ACPI_STATUS
302a9f12690SJung-uk Kim AcpiDsBuildInternalPackageObj (
303a9f12690SJung-uk Kim     ACPI_WALK_STATE         *WalkState,
304a9f12690SJung-uk Kim     ACPI_PARSE_OBJECT       *op,
305a9f12690SJung-uk Kim     UINT32                  PackageLength,
306a9f12690SJung-uk Kim     ACPI_OPERAND_OBJECT     **ObjDesc);
307a9f12690SJung-uk Kim 
308a9f12690SJung-uk Kim ACPI_STATUS
309a9f12690SJung-uk Kim AcpiDsInitObjectFromOp (
310a9f12690SJung-uk Kim     ACPI_WALK_STATE         *WalkState,
311a9f12690SJung-uk Kim     ACPI_PARSE_OBJECT       *Op,
312a9f12690SJung-uk Kim     UINT16                  Opcode,
313a9f12690SJung-uk Kim     ACPI_OPERAND_OBJECT     **ObjDesc);
314a9f12690SJung-uk Kim 
315a9f12690SJung-uk Kim ACPI_STATUS
316a9f12690SJung-uk Kim AcpiDsCreateNode (
317a9f12690SJung-uk Kim     ACPI_WALK_STATE         *WalkState,
318a9f12690SJung-uk Kim     ACPI_NAMESPACE_NODE     *Node,
319a9f12690SJung-uk Kim     ACPI_PARSE_OBJECT       *Op);
320a9f12690SJung-uk Kim 
321a9f12690SJung-uk Kim 
322a9f12690SJung-uk Kim /*
323a9f12690SJung-uk Kim  * dsutils - Parser/Interpreter interface utility routines
324a9f12690SJung-uk Kim  */
325a9f12690SJung-uk Kim void
326a9f12690SJung-uk Kim AcpiDsClearImplicitReturn (
327a9f12690SJung-uk Kim     ACPI_WALK_STATE         *WalkState);
328a9f12690SJung-uk Kim 
329a9f12690SJung-uk Kim BOOLEAN
330a9f12690SJung-uk Kim AcpiDsDoImplicitReturn (
331a9f12690SJung-uk Kim     ACPI_OPERAND_OBJECT     *ReturnDesc,
332a9f12690SJung-uk Kim     ACPI_WALK_STATE         *WalkState,
333a9f12690SJung-uk Kim     BOOLEAN                 AddReference);
334a9f12690SJung-uk Kim 
335a9f12690SJung-uk Kim BOOLEAN
336a9f12690SJung-uk Kim AcpiDsIsResultUsed (
337a9f12690SJung-uk Kim     ACPI_PARSE_OBJECT       *Op,
338a9f12690SJung-uk Kim     ACPI_WALK_STATE         *WalkState);
339a9f12690SJung-uk Kim 
340a9f12690SJung-uk Kim void
341a9f12690SJung-uk Kim AcpiDsDeleteResultIfNotUsed (
342a9f12690SJung-uk Kim     ACPI_PARSE_OBJECT       *Op,
343a9f12690SJung-uk Kim     ACPI_OPERAND_OBJECT     *ResultObj,
344a9f12690SJung-uk Kim     ACPI_WALK_STATE         *WalkState);
345a9f12690SJung-uk Kim 
346a9f12690SJung-uk Kim ACPI_STATUS
347a9f12690SJung-uk Kim AcpiDsCreateOperand (
348a9f12690SJung-uk Kim     ACPI_WALK_STATE         *WalkState,
349a9f12690SJung-uk Kim     ACPI_PARSE_OBJECT       *Arg,
350a9f12690SJung-uk Kim     UINT32                  ArgsRemaining);
351a9f12690SJung-uk Kim 
352a9f12690SJung-uk Kim ACPI_STATUS
353a9f12690SJung-uk Kim AcpiDsCreateOperands (
354a9f12690SJung-uk Kim     ACPI_WALK_STATE         *WalkState,
355a9f12690SJung-uk Kim     ACPI_PARSE_OBJECT       *FirstArg);
356a9f12690SJung-uk Kim 
357a9f12690SJung-uk Kim ACPI_STATUS
358a9f12690SJung-uk Kim AcpiDsResolveOperands (
359a9f12690SJung-uk Kim     ACPI_WALK_STATE         *WalkState);
360a9f12690SJung-uk Kim 
361a9f12690SJung-uk Kim void
362a9f12690SJung-uk Kim AcpiDsClearOperands (
363a9f12690SJung-uk Kim     ACPI_WALK_STATE         *WalkState);
364a9f12690SJung-uk Kim 
365a9f12690SJung-uk Kim ACPI_STATUS
366a9f12690SJung-uk Kim AcpiDsEvaluateNamePath (
367a9f12690SJung-uk Kim     ACPI_WALK_STATE         *WalkState);
368a9f12690SJung-uk Kim 
369a9f12690SJung-uk Kim 
370a9f12690SJung-uk Kim /*
371a9f12690SJung-uk Kim  * dswscope - Scope Stack manipulation
372a9f12690SJung-uk Kim  */
373a9f12690SJung-uk Kim ACPI_STATUS
374a9f12690SJung-uk Kim AcpiDsScopeStackPush (
375a9f12690SJung-uk Kim     ACPI_NAMESPACE_NODE     *Node,
376a9f12690SJung-uk Kim     ACPI_OBJECT_TYPE        Type,
377a9f12690SJung-uk Kim     ACPI_WALK_STATE         *WalkState);
378a9f12690SJung-uk Kim 
379a9f12690SJung-uk Kim 
380a9f12690SJung-uk Kim ACPI_STATUS
381a9f12690SJung-uk Kim AcpiDsScopeStackPop (
382a9f12690SJung-uk Kim     ACPI_WALK_STATE         *WalkState);
383a9f12690SJung-uk Kim 
384a9f12690SJung-uk Kim void
385a9f12690SJung-uk Kim AcpiDsScopeStackClear (
386a9f12690SJung-uk Kim     ACPI_WALK_STATE         *WalkState);
387a9f12690SJung-uk Kim 
388a9f12690SJung-uk Kim 
389a9f12690SJung-uk Kim /*
390a9f12690SJung-uk Kim  * dswstate - parser WALK_STATE management routines
391a9f12690SJung-uk Kim  */
392a9f12690SJung-uk Kim ACPI_STATUS
393a9f12690SJung-uk Kim AcpiDsObjStackPush (
394a9f12690SJung-uk Kim     void                    *Object,
395a9f12690SJung-uk Kim     ACPI_WALK_STATE         *WalkState);
396a9f12690SJung-uk Kim 
397a9f12690SJung-uk Kim ACPI_STATUS
398a9f12690SJung-uk Kim AcpiDsObjStackPop (
399a9f12690SJung-uk Kim     UINT32                  PopCount,
400a9f12690SJung-uk Kim     ACPI_WALK_STATE         *WalkState);
401a9f12690SJung-uk Kim 
402a9f12690SJung-uk Kim ACPI_WALK_STATE *
403a9f12690SJung-uk Kim AcpiDsCreateWalkState (
404a9f12690SJung-uk Kim     ACPI_OWNER_ID           OwnerId,
405a9f12690SJung-uk Kim     ACPI_PARSE_OBJECT       *Origin,
406a9f12690SJung-uk Kim     ACPI_OPERAND_OBJECT     *MthDesc,
407a9f12690SJung-uk Kim     ACPI_THREAD_STATE       *Thread);
408a9f12690SJung-uk Kim 
409a9f12690SJung-uk Kim ACPI_STATUS
410a9f12690SJung-uk Kim AcpiDsInitAmlWalk (
411a9f12690SJung-uk Kim     ACPI_WALK_STATE         *WalkState,
412a9f12690SJung-uk Kim     ACPI_PARSE_OBJECT       *Op,
413a9f12690SJung-uk Kim     ACPI_NAMESPACE_NODE     *MethodNode,
414a9f12690SJung-uk Kim     UINT8                   *AmlStart,
415a9f12690SJung-uk Kim     UINT32                  AmlLength,
416a9f12690SJung-uk Kim     ACPI_EVALUATE_INFO      *Info,
417a9f12690SJung-uk Kim     UINT8                   PassNumber);
418a9f12690SJung-uk Kim 
419a9f12690SJung-uk Kim void
420a9f12690SJung-uk Kim AcpiDsObjStackPopAndDelete (
421a9f12690SJung-uk Kim     UINT32                  PopCount,
422a9f12690SJung-uk Kim     ACPI_WALK_STATE         *WalkState);
423a9f12690SJung-uk Kim 
424a9f12690SJung-uk Kim void
425a9f12690SJung-uk Kim AcpiDsDeleteWalkState (
426a9f12690SJung-uk Kim     ACPI_WALK_STATE         *WalkState);
427a9f12690SJung-uk Kim 
428a9f12690SJung-uk Kim ACPI_WALK_STATE *
429a9f12690SJung-uk Kim AcpiDsPopWalkState (
430a9f12690SJung-uk Kim     ACPI_THREAD_STATE       *Thread);
431a9f12690SJung-uk Kim 
432a9f12690SJung-uk Kim void
433a9f12690SJung-uk Kim AcpiDsPushWalkState (
434a9f12690SJung-uk Kim     ACPI_WALK_STATE         *WalkState,
435a9f12690SJung-uk Kim     ACPI_THREAD_STATE       *Thread);
436a9f12690SJung-uk Kim 
437a9f12690SJung-uk Kim ACPI_STATUS
438a9f12690SJung-uk Kim AcpiDsResultStackClear (
439a9f12690SJung-uk Kim     ACPI_WALK_STATE         *WalkState);
440a9f12690SJung-uk Kim 
441a9f12690SJung-uk Kim ACPI_WALK_STATE *
442a9f12690SJung-uk Kim AcpiDsGetCurrentWalkState (
443a9f12690SJung-uk Kim     ACPI_THREAD_STATE       *Thread);
444a9f12690SJung-uk Kim 
445a9f12690SJung-uk Kim ACPI_STATUS
446a9f12690SJung-uk Kim AcpiDsResultPop (
447a9f12690SJung-uk Kim     ACPI_OPERAND_OBJECT     **Object,
448a9f12690SJung-uk Kim     ACPI_WALK_STATE         *WalkState);
449a9f12690SJung-uk Kim 
450a9f12690SJung-uk Kim ACPI_STATUS
451a9f12690SJung-uk Kim AcpiDsResultPush (
452a9f12690SJung-uk Kim     ACPI_OPERAND_OBJECT     *Object,
453a9f12690SJung-uk Kim     ACPI_WALK_STATE         *WalkState);
454a9f12690SJung-uk Kim 
455a9f12690SJung-uk Kim #endif /* _ACDISPAT_H_ */
456