1*a9643ea8Slogwang /******************************************************************************
2*a9643ea8Slogwang  *
3*a9643ea8Slogwang  * Name: acdebug.h - ACPI/AML debugger
4*a9643ea8Slogwang  *
5*a9643ea8Slogwang  *****************************************************************************/
6*a9643ea8Slogwang 
7*a9643ea8Slogwang /*
8*a9643ea8Slogwang  * Copyright (C) 2000 - 2016, Intel Corp.
9*a9643ea8Slogwang  * All rights reserved.
10*a9643ea8Slogwang  *
11*a9643ea8Slogwang  * Redistribution and use in source and binary forms, with or without
12*a9643ea8Slogwang  * modification, are permitted provided that the following conditions
13*a9643ea8Slogwang  * are met:
14*a9643ea8Slogwang  * 1. Redistributions of source code must retain the above copyright
15*a9643ea8Slogwang  *    notice, this list of conditions, and the following disclaimer,
16*a9643ea8Slogwang  *    without modification.
17*a9643ea8Slogwang  * 2. Redistributions in binary form must reproduce at minimum a disclaimer
18*a9643ea8Slogwang  *    substantially similar to the "NO WARRANTY" disclaimer below
19*a9643ea8Slogwang  *    ("Disclaimer") and any redistribution must be conditioned upon
20*a9643ea8Slogwang  *    including a substantially similar Disclaimer requirement for further
21*a9643ea8Slogwang  *    binary redistribution.
22*a9643ea8Slogwang  * 3. Neither the names of the above-listed copyright holders nor the names
23*a9643ea8Slogwang  *    of any contributors may be used to endorse or promote products derived
24*a9643ea8Slogwang  *    from this software without specific prior written permission.
25*a9643ea8Slogwang  *
26*a9643ea8Slogwang  * Alternatively, this software may be distributed under the terms of the
27*a9643ea8Slogwang  * GNU General Public License ("GPL") version 2 as published by the Free
28*a9643ea8Slogwang  * Software Foundation.
29*a9643ea8Slogwang  *
30*a9643ea8Slogwang  * NO WARRANTY
31*a9643ea8Slogwang  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
32*a9643ea8Slogwang  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
33*a9643ea8Slogwang  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
34*a9643ea8Slogwang  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
35*a9643ea8Slogwang  * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
36*a9643ea8Slogwang  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
37*a9643ea8Slogwang  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
38*a9643ea8Slogwang  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
39*a9643ea8Slogwang  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
40*a9643ea8Slogwang  * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
41*a9643ea8Slogwang  * POSSIBILITY OF SUCH DAMAGES.
42*a9643ea8Slogwang  */
43*a9643ea8Slogwang 
44*a9643ea8Slogwang #ifndef __ACDEBUG_H__
45*a9643ea8Slogwang #define __ACDEBUG_H__
46*a9643ea8Slogwang 
47*a9643ea8Slogwang /* The debugger is used in conjunction with the disassembler most of time */
48*a9643ea8Slogwang 
49*a9643ea8Slogwang #ifdef ACPI_DISASSEMBLER
50*a9643ea8Slogwang #include <contrib/dev/acpica/include/acdisasm.h>
51*a9643ea8Slogwang #endif
52*a9643ea8Slogwang 
53*a9643ea8Slogwang 
54*a9643ea8Slogwang #define ACPI_DEBUG_BUFFER_SIZE  0x4000      /* 16K buffer for return objects */
55*a9643ea8Slogwang 
56*a9643ea8Slogwang typedef struct acpi_db_command_info
57*a9643ea8Slogwang {
58*a9643ea8Slogwang     const char              *Name;          /* Command Name */
59*a9643ea8Slogwang     UINT8                   MinArgs;        /* Minimum arguments required */
60*a9643ea8Slogwang 
61*a9643ea8Slogwang } ACPI_DB_COMMAND_INFO;
62*a9643ea8Slogwang 
63*a9643ea8Slogwang typedef struct acpi_db_command_help
64*a9643ea8Slogwang {
65*a9643ea8Slogwang     UINT8                   LineCount;      /* Number of help lines */
66*a9643ea8Slogwang     char                    *Invocation;    /* Command Invocation */
67*a9643ea8Slogwang     char                    *Description;   /* Command Description */
68*a9643ea8Slogwang 
69*a9643ea8Slogwang } ACPI_DB_COMMAND_HELP;
70*a9643ea8Slogwang 
71*a9643ea8Slogwang typedef struct acpi_db_argument_info
72*a9643ea8Slogwang {
73*a9643ea8Slogwang     const char              *Name;          /* Argument Name */
74*a9643ea8Slogwang 
75*a9643ea8Slogwang } ACPI_DB_ARGUMENT_INFO;
76*a9643ea8Slogwang 
77*a9643ea8Slogwang typedef struct acpi_db_execute_walk
78*a9643ea8Slogwang {
79*a9643ea8Slogwang     UINT32                  Count;
80*a9643ea8Slogwang     UINT32                  MaxCount;
81*a9643ea8Slogwang 
82*a9643ea8Slogwang } ACPI_DB_EXECUTE_WALK;
83*a9643ea8Slogwang 
84*a9643ea8Slogwang 
85*a9643ea8Slogwang #define PARAM_LIST(pl)                  pl
86*a9643ea8Slogwang 
87*a9643ea8Slogwang #define EX_NO_SINGLE_STEP               1
88*a9643ea8Slogwang #define EX_SINGLE_STEP                  2
89*a9643ea8Slogwang 
90*a9643ea8Slogwang 
91*a9643ea8Slogwang /*
92*a9643ea8Slogwang  * dbxface - external debugger interfaces
93*a9643ea8Slogwang  */
94*a9643ea8Slogwang ACPI_DBR_DEPENDENT_RETURN_OK (
95*a9643ea8Slogwang ACPI_STATUS
96*a9643ea8Slogwang AcpiDbSingleStep (
97*a9643ea8Slogwang     ACPI_WALK_STATE         *WalkState,
98*a9643ea8Slogwang     ACPI_PARSE_OBJECT       *Op,
99*a9643ea8Slogwang     UINT32                  OpType))
100*a9643ea8Slogwang 
101*a9643ea8Slogwang ACPI_DBR_DEPENDENT_RETURN_VOID (
102*a9643ea8Slogwang void
103*a9643ea8Slogwang AcpiDbSignalBreakPoint (
104*a9643ea8Slogwang     ACPI_WALK_STATE         *WalkState))
105*a9643ea8Slogwang 
106*a9643ea8Slogwang 
107*a9643ea8Slogwang /*
108*a9643ea8Slogwang  * dbcmds - debug commands and output routines
109*a9643ea8Slogwang  */
110*a9643ea8Slogwang ACPI_NAMESPACE_NODE *
111*a9643ea8Slogwang AcpiDbConvertToNode (
112*a9643ea8Slogwang     char                    *InString);
113*a9643ea8Slogwang 
114*a9643ea8Slogwang void
115*a9643ea8Slogwang AcpiDbDisplayTableInfo (
116*a9643ea8Slogwang     char                    *TableArg);
117*a9643ea8Slogwang 
118*a9643ea8Slogwang void
119*a9643ea8Slogwang AcpiDbDisplayTemplate (
120*a9643ea8Slogwang     char                    *BufferArg);
121*a9643ea8Slogwang 
122*a9643ea8Slogwang void
123*a9643ea8Slogwang AcpiDbUnloadAcpiTable (
124*a9643ea8Slogwang     char                    *Name);
125*a9643ea8Slogwang 
126*a9643ea8Slogwang void
127*a9643ea8Slogwang AcpiDbSendNotify (
128*a9643ea8Slogwang     char                    *Name,
129*a9643ea8Slogwang     UINT32                  Value);
130*a9643ea8Slogwang 
131*a9643ea8Slogwang void
132*a9643ea8Slogwang AcpiDbDisplayInterfaces (
133*a9643ea8Slogwang     char                    *ActionArg,
134*a9643ea8Slogwang     char                    *InterfaceNameArg);
135*a9643ea8Slogwang 
136*a9643ea8Slogwang ACPI_STATUS
137*a9643ea8Slogwang AcpiDbSleep (
138*a9643ea8Slogwang     char                    *ObjectArg);
139*a9643ea8Slogwang 
140*a9643ea8Slogwang void
141*a9643ea8Slogwang AcpiDbTrace (
142*a9643ea8Slogwang     char                    *EnableArg,
143*a9643ea8Slogwang     char                    *MethodArg,
144*a9643ea8Slogwang     char                    *OnceArg);
145*a9643ea8Slogwang 
146*a9643ea8Slogwang void
147*a9643ea8Slogwang AcpiDbDisplayLocks (
148*a9643ea8Slogwang     void);
149*a9643ea8Slogwang 
150*a9643ea8Slogwang void
151*a9643ea8Slogwang AcpiDbDisplayResources (
152*a9643ea8Slogwang     char                    *ObjectArg);
153*a9643ea8Slogwang 
154*a9643ea8Slogwang ACPI_HW_DEPENDENT_RETURN_VOID (
155*a9643ea8Slogwang void
156*a9643ea8Slogwang AcpiDbDisplayGpes (
157*a9643ea8Slogwang     void))
158*a9643ea8Slogwang 
159*a9643ea8Slogwang void
160*a9643ea8Slogwang AcpiDbDisplayHandlers (
161*a9643ea8Slogwang     void);
162*a9643ea8Slogwang 
163*a9643ea8Slogwang ACPI_HW_DEPENDENT_RETURN_VOID (
164*a9643ea8Slogwang void
165*a9643ea8Slogwang AcpiDbGenerateGpe (
166*a9643ea8Slogwang     char                    *GpeArg,
167*a9643ea8Slogwang     char                    *BlockArg))
168*a9643ea8Slogwang 
169*a9643ea8Slogwang ACPI_HW_DEPENDENT_RETURN_VOID (
170*a9643ea8Slogwang void
171*a9643ea8Slogwang AcpiDbGenerateSci (
172*a9643ea8Slogwang     void))
173*a9643ea8Slogwang 
174*a9643ea8Slogwang void
175*a9643ea8Slogwang AcpiDbExecuteTest (
176*a9643ea8Slogwang     char                    *TypeArg);
177*a9643ea8Slogwang 
178*a9643ea8Slogwang 
179*a9643ea8Slogwang /*
180*a9643ea8Slogwang  * dbconvert - miscellaneous conversion routines
181*a9643ea8Slogwang  */
182*a9643ea8Slogwang ACPI_STATUS
183*a9643ea8Slogwang AcpiDbHexCharToValue (
184*a9643ea8Slogwang     int                     HexChar,
185*a9643ea8Slogwang     UINT8                   *ReturnValue);
186*a9643ea8Slogwang 
187*a9643ea8Slogwang ACPI_STATUS
188*a9643ea8Slogwang AcpiDbConvertToPackage (
189*a9643ea8Slogwang     char                    *String,
190*a9643ea8Slogwang     ACPI_OBJECT             *Object);
191*a9643ea8Slogwang 
192*a9643ea8Slogwang ACPI_STATUS
193*a9643ea8Slogwang AcpiDbConvertToObject (
194*a9643ea8Slogwang     ACPI_OBJECT_TYPE        Type,
195*a9643ea8Slogwang     char                    *String,
196*a9643ea8Slogwang     ACPI_OBJECT             *Object);
197*a9643ea8Slogwang 
198*a9643ea8Slogwang UINT8 *
199*a9643ea8Slogwang AcpiDbEncodePldBuffer (
200*a9643ea8Slogwang     ACPI_PLD_INFO           *PldInfo);
201*a9643ea8Slogwang 
202*a9643ea8Slogwang void
203*a9643ea8Slogwang AcpiDbDumpPldBuffer (
204*a9643ea8Slogwang     ACPI_OBJECT             *ObjDesc);
205*a9643ea8Slogwang 
206*a9643ea8Slogwang 
207*a9643ea8Slogwang /*
208*a9643ea8Slogwang  * dbmethod - control method commands
209*a9643ea8Slogwang  */
210*a9643ea8Slogwang void
211*a9643ea8Slogwang AcpiDbSetMethodBreakpoint (
212*a9643ea8Slogwang     char                    *Location,
213*a9643ea8Slogwang     ACPI_WALK_STATE         *WalkState,
214*a9643ea8Slogwang     ACPI_PARSE_OBJECT       *Op);
215*a9643ea8Slogwang 
216*a9643ea8Slogwang void
217*a9643ea8Slogwang AcpiDbSetMethodCallBreakpoint (
218*a9643ea8Slogwang     ACPI_PARSE_OBJECT       *Op);
219*a9643ea8Slogwang 
220*a9643ea8Slogwang void
221*a9643ea8Slogwang AcpiDbSetMethodData (
222*a9643ea8Slogwang     char                    *TypeArg,
223*a9643ea8Slogwang     char                    *IndexArg,
224*a9643ea8Slogwang     char                    *ValueArg);
225*a9643ea8Slogwang 
226*a9643ea8Slogwang ACPI_STATUS
227*a9643ea8Slogwang AcpiDbDisassembleMethod (
228*a9643ea8Slogwang     char                    *Name);
229*a9643ea8Slogwang 
230*a9643ea8Slogwang void
231*a9643ea8Slogwang AcpiDbDisassembleAml (
232*a9643ea8Slogwang     char                    *Statements,
233*a9643ea8Slogwang     ACPI_PARSE_OBJECT       *Op);
234*a9643ea8Slogwang 
235*a9643ea8Slogwang void
236*a9643ea8Slogwang AcpiDbBatchExecute (
237*a9643ea8Slogwang     char                    *CountArg);
238*a9643ea8Slogwang 
239*a9643ea8Slogwang 
240*a9643ea8Slogwang /*
241*a9643ea8Slogwang  * dbnames - namespace commands
242*a9643ea8Slogwang  */
243*a9643ea8Slogwang void
244*a9643ea8Slogwang AcpiDbSetScope (
245*a9643ea8Slogwang     char                    *Name);
246*a9643ea8Slogwang 
247*a9643ea8Slogwang void
248*a9643ea8Slogwang AcpiDbDumpNamespace (
249*a9643ea8Slogwang     char                    *StartArg,
250*a9643ea8Slogwang     char                    *DepthArg);
251*a9643ea8Slogwang 
252*a9643ea8Slogwang void
253*a9643ea8Slogwang AcpiDbDumpNamespacePaths (
254*a9643ea8Slogwang     void);
255*a9643ea8Slogwang 
256*a9643ea8Slogwang void
257*a9643ea8Slogwang AcpiDbDumpNamespaceByOwner (
258*a9643ea8Slogwang     char                    *OwnerArg,
259*a9643ea8Slogwang     char                    *DepthArg);
260*a9643ea8Slogwang 
261*a9643ea8Slogwang ACPI_STATUS
262*a9643ea8Slogwang AcpiDbFindNameInNamespace (
263*a9643ea8Slogwang     char                    *NameArg);
264*a9643ea8Slogwang 
265*a9643ea8Slogwang void
266*a9643ea8Slogwang AcpiDbCheckPredefinedNames (
267*a9643ea8Slogwang     void);
268*a9643ea8Slogwang 
269*a9643ea8Slogwang ACPI_STATUS
270*a9643ea8Slogwang AcpiDbDisplayObjects (
271*a9643ea8Slogwang     char                    *ObjTypeArg,
272*a9643ea8Slogwang     char                    *DisplayCountArg);
273*a9643ea8Slogwang 
274*a9643ea8Slogwang void
275*a9643ea8Slogwang AcpiDbCheckIntegrity (
276*a9643ea8Slogwang     void);
277*a9643ea8Slogwang 
278*a9643ea8Slogwang void
279*a9643ea8Slogwang AcpiDbFindReferences (
280*a9643ea8Slogwang     char                    *ObjectArg);
281*a9643ea8Slogwang 
282*a9643ea8Slogwang void
283*a9643ea8Slogwang AcpiDbGetBusInfo (
284*a9643ea8Slogwang     void);
285*a9643ea8Slogwang 
286*a9643ea8Slogwang 
287*a9643ea8Slogwang /*
288*a9643ea8Slogwang  * dbdisply - debug display commands
289*a9643ea8Slogwang  */
290*a9643ea8Slogwang void
291*a9643ea8Slogwang AcpiDbDisplayMethodInfo (
292*a9643ea8Slogwang     ACPI_PARSE_OBJECT       *Op);
293*a9643ea8Slogwang 
294*a9643ea8Slogwang void
295*a9643ea8Slogwang AcpiDbDecodeAndDisplayObject (
296*a9643ea8Slogwang     char                    *Target,
297*a9643ea8Slogwang     char                    *OutputType);
298*a9643ea8Slogwang 
299*a9643ea8Slogwang ACPI_DBR_DEPENDENT_RETURN_VOID (
300*a9643ea8Slogwang void
301*a9643ea8Slogwang AcpiDbDisplayResultObject (
302*a9643ea8Slogwang     ACPI_OPERAND_OBJECT     *ObjDesc,
303*a9643ea8Slogwang     ACPI_WALK_STATE         *WalkState))
304*a9643ea8Slogwang 
305*a9643ea8Slogwang ACPI_STATUS
306*a9643ea8Slogwang AcpiDbDisplayAllMethods (
307*a9643ea8Slogwang     char                    *DisplayCountArg);
308*a9643ea8Slogwang 
309*a9643ea8Slogwang void
310*a9643ea8Slogwang AcpiDbDisplayArguments (
311*a9643ea8Slogwang     void);
312*a9643ea8Slogwang 
313*a9643ea8Slogwang void
314*a9643ea8Slogwang AcpiDbDisplayLocals (
315*a9643ea8Slogwang     void);
316*a9643ea8Slogwang 
317*a9643ea8Slogwang void
318*a9643ea8Slogwang AcpiDbDisplayResults (
319*a9643ea8Slogwang     void);
320*a9643ea8Slogwang 
321*a9643ea8Slogwang void
322*a9643ea8Slogwang AcpiDbDisplayCallingTree (
323*a9643ea8Slogwang     void);
324*a9643ea8Slogwang 
325*a9643ea8Slogwang void
326*a9643ea8Slogwang AcpiDbDisplayObjectType (
327*a9643ea8Slogwang     char                    *ObjectArg);
328*a9643ea8Slogwang 
329*a9643ea8Slogwang ACPI_DBR_DEPENDENT_RETURN_VOID (
330*a9643ea8Slogwang void
331*a9643ea8Slogwang AcpiDbDisplayArgumentObject (
332*a9643ea8Slogwang     ACPI_OPERAND_OBJECT     *ObjDesc,
333*a9643ea8Slogwang     ACPI_WALK_STATE         *WalkState))
334*a9643ea8Slogwang 
335*a9643ea8Slogwang 
336*a9643ea8Slogwang /*
337*a9643ea8Slogwang  * dbexec - debugger control method execution
338*a9643ea8Slogwang  */
339*a9643ea8Slogwang void
340*a9643ea8Slogwang AcpiDbExecute (
341*a9643ea8Slogwang     char                    *Name,
342*a9643ea8Slogwang     char                    **Args,
343*a9643ea8Slogwang     ACPI_OBJECT_TYPE        *Types,
344*a9643ea8Slogwang     UINT32                  Flags);
345*a9643ea8Slogwang 
346*a9643ea8Slogwang void
347*a9643ea8Slogwang AcpiDbCreateExecutionThreads (
348*a9643ea8Slogwang     char                    *NumThreadsArg,
349*a9643ea8Slogwang     char                    *NumLoopsArg,
350*a9643ea8Slogwang     char                    *MethodNameArg);
351*a9643ea8Slogwang 
352*a9643ea8Slogwang void
353*a9643ea8Slogwang AcpiDbDeleteObjects (
354*a9643ea8Slogwang     UINT32                  Count,
355*a9643ea8Slogwang     ACPI_OBJECT             *Objects);
356*a9643ea8Slogwang 
357*a9643ea8Slogwang #ifdef ACPI_DBG_TRACK_ALLOCATIONS
358*a9643ea8Slogwang UINT32
359*a9643ea8Slogwang AcpiDbGetCacheInfo (
360*a9643ea8Slogwang     ACPI_MEMORY_LIST        *Cache);
361*a9643ea8Slogwang #endif
362*a9643ea8Slogwang 
363*a9643ea8Slogwang 
364*a9643ea8Slogwang /*
365*a9643ea8Slogwang  * dbfileio - Debugger file I/O commands
366*a9643ea8Slogwang  */
367*a9643ea8Slogwang ACPI_OBJECT_TYPE
368*a9643ea8Slogwang AcpiDbMatchArgument (
369*a9643ea8Slogwang     char                    *UserArgument,
370*a9643ea8Slogwang     ACPI_DB_ARGUMENT_INFO   *Arguments);
371*a9643ea8Slogwang 
372*a9643ea8Slogwang void
373*a9643ea8Slogwang AcpiDbCloseDebugFile (
374*a9643ea8Slogwang     void);
375*a9643ea8Slogwang 
376*a9643ea8Slogwang void
377*a9643ea8Slogwang AcpiDbOpenDebugFile (
378*a9643ea8Slogwang     char                    *Name);
379*a9643ea8Slogwang 
380*a9643ea8Slogwang ACPI_STATUS
381*a9643ea8Slogwang AcpiDbLoadAcpiTable (
382*a9643ea8Slogwang     char                    *Filename);
383*a9643ea8Slogwang 
384*a9643ea8Slogwang ACPI_STATUS
385*a9643ea8Slogwang AcpiDbLoadTables (
386*a9643ea8Slogwang     ACPI_NEW_TABLE_DESC     *ListHead);
387*a9643ea8Slogwang 
388*a9643ea8Slogwang 
389*a9643ea8Slogwang /*
390*a9643ea8Slogwang  * dbhistry - debugger HISTORY command
391*a9643ea8Slogwang  */
392*a9643ea8Slogwang void
393*a9643ea8Slogwang AcpiDbAddToHistory (
394*a9643ea8Slogwang     char                    *CommandLine);
395*a9643ea8Slogwang 
396*a9643ea8Slogwang void
397*a9643ea8Slogwang AcpiDbDisplayHistory (
398*a9643ea8Slogwang     void);
399*a9643ea8Slogwang 
400*a9643ea8Slogwang char *
401*a9643ea8Slogwang AcpiDbGetFromHistory (
402*a9643ea8Slogwang     char                    *CommandNumArg);
403*a9643ea8Slogwang 
404*a9643ea8Slogwang char *
405*a9643ea8Slogwang AcpiDbGetHistoryByIndex (
406*a9643ea8Slogwang     UINT32                  CommanddNum);
407*a9643ea8Slogwang 
408*a9643ea8Slogwang 
409*a9643ea8Slogwang /*
410*a9643ea8Slogwang  * dbinput - user front-end to the AML debugger
411*a9643ea8Slogwang  */
412*a9643ea8Slogwang ACPI_STATUS
413*a9643ea8Slogwang AcpiDbCommandDispatch (
414*a9643ea8Slogwang     char                    *InputBuffer,
415*a9643ea8Slogwang     ACPI_WALK_STATE         *WalkState,
416*a9643ea8Slogwang     ACPI_PARSE_OBJECT       *Op);
417*a9643ea8Slogwang 
418*a9643ea8Slogwang void ACPI_SYSTEM_XFACE
419*a9643ea8Slogwang AcpiDbExecuteThread (
420*a9643ea8Slogwang     void                    *Context);
421*a9643ea8Slogwang 
422*a9643ea8Slogwang ACPI_STATUS
423*a9643ea8Slogwang AcpiDbUserCommands (
424*a9643ea8Slogwang     char                    Prompt,
425*a9643ea8Slogwang     ACPI_PARSE_OBJECT       *Op);
426*a9643ea8Slogwang 
427*a9643ea8Slogwang char *
428*a9643ea8Slogwang AcpiDbGetNextToken (
429*a9643ea8Slogwang     char                    *String,
430*a9643ea8Slogwang     char                    **Next,
431*a9643ea8Slogwang     ACPI_OBJECT_TYPE        *ReturnType);
432*a9643ea8Slogwang 
433*a9643ea8Slogwang 
434*a9643ea8Slogwang /*
435*a9643ea8Slogwang  * dbobject
436*a9643ea8Slogwang  */
437*a9643ea8Slogwang void
438*a9643ea8Slogwang AcpiDbDecodeInternalObject (
439*a9643ea8Slogwang     ACPI_OPERAND_OBJECT     *ObjDesc);
440*a9643ea8Slogwang 
441*a9643ea8Slogwang void
442*a9643ea8Slogwang AcpiDbDisplayInternalObject (
443*a9643ea8Slogwang     ACPI_OPERAND_OBJECT     *ObjDesc,
444*a9643ea8Slogwang     ACPI_WALK_STATE         *WalkState);
445*a9643ea8Slogwang 
446*a9643ea8Slogwang void
447*a9643ea8Slogwang AcpiDbDecodeArguments (
448*a9643ea8Slogwang     ACPI_WALK_STATE         *WalkState);
449*a9643ea8Slogwang 
450*a9643ea8Slogwang void
451*a9643ea8Slogwang AcpiDbDecodeLocals (
452*a9643ea8Slogwang     ACPI_WALK_STATE         *WalkState);
453*a9643ea8Slogwang 
454*a9643ea8Slogwang void
455*a9643ea8Slogwang AcpiDbDumpMethodInfo (
456*a9643ea8Slogwang     ACPI_STATUS             Status,
457*a9643ea8Slogwang     ACPI_WALK_STATE         *WalkState);
458*a9643ea8Slogwang 
459*a9643ea8Slogwang 
460*a9643ea8Slogwang /*
461*a9643ea8Slogwang  * dbstats - Generation and display of ACPI table statistics
462*a9643ea8Slogwang  */
463*a9643ea8Slogwang void
464*a9643ea8Slogwang AcpiDbGenerateStatistics (
465*a9643ea8Slogwang     ACPI_PARSE_OBJECT       *Root,
466*a9643ea8Slogwang     BOOLEAN                 IsMethod);
467*a9643ea8Slogwang 
468*a9643ea8Slogwang ACPI_STATUS
469*a9643ea8Slogwang AcpiDbDisplayStatistics (
470*a9643ea8Slogwang     char                    *TypeArg);
471*a9643ea8Slogwang 
472*a9643ea8Slogwang 
473*a9643ea8Slogwang /*
474*a9643ea8Slogwang  * dbutils - AML debugger utilities
475*a9643ea8Slogwang  */
476*a9643ea8Slogwang void
477*a9643ea8Slogwang AcpiDbSetOutputDestination (
478*a9643ea8Slogwang     UINT32                  Where);
479*a9643ea8Slogwang 
480*a9643ea8Slogwang void
481*a9643ea8Slogwang AcpiDbDumpExternalObject (
482*a9643ea8Slogwang     ACPI_OBJECT             *ObjDesc,
483*a9643ea8Slogwang     UINT32                  Level);
484*a9643ea8Slogwang 
485*a9643ea8Slogwang void
486*a9643ea8Slogwang AcpiDbPrepNamestring (
487*a9643ea8Slogwang     char                    *Name);
488*a9643ea8Slogwang 
489*a9643ea8Slogwang ACPI_NAMESPACE_NODE *
490*a9643ea8Slogwang AcpiDbLocalNsLookup (
491*a9643ea8Slogwang     char                    *Name);
492*a9643ea8Slogwang 
493*a9643ea8Slogwang void
494*a9643ea8Slogwang AcpiDbUint32ToHexString (
495*a9643ea8Slogwang     UINT32                  Value,
496*a9643ea8Slogwang     char                    *Buffer);
497*a9643ea8Slogwang 
498*a9643ea8Slogwang #endif  /* __ACDEBUG_H__ */
499