10d02842fSSascha Wildner /******************************************************************************
20d02842fSSascha Wildner  *
30d02842fSSascha Wildner  * Name: acdebug.h - ACPI/AML debugger
40d02842fSSascha Wildner  *
50d02842fSSascha Wildner  *****************************************************************************/
60d02842fSSascha Wildner 
70d02842fSSascha Wildner /*
8f5f76cf2SSascha Wildner  * Copyright (C) 2000 - 2016, Intel Corp.
90d02842fSSascha Wildner  * All rights reserved.
100d02842fSSascha Wildner  *
110d02842fSSascha Wildner  * Redistribution and use in source and binary forms, with or without
120d02842fSSascha Wildner  * modification, are permitted provided that the following conditions
130d02842fSSascha Wildner  * are met:
140d02842fSSascha Wildner  * 1. Redistributions of source code must retain the above copyright
150d02842fSSascha Wildner  *    notice, this list of conditions, and the following disclaimer,
160d02842fSSascha Wildner  *    without modification.
170d02842fSSascha Wildner  * 2. Redistributions in binary form must reproduce at minimum a disclaimer
180d02842fSSascha Wildner  *    substantially similar to the "NO WARRANTY" disclaimer below
190d02842fSSascha Wildner  *    ("Disclaimer") and any redistribution must be conditioned upon
200d02842fSSascha Wildner  *    including a substantially similar Disclaimer requirement for further
210d02842fSSascha Wildner  *    binary redistribution.
220d02842fSSascha Wildner  * 3. Neither the names of the above-listed copyright holders nor the names
230d02842fSSascha Wildner  *    of any contributors may be used to endorse or promote products derived
240d02842fSSascha Wildner  *    from this software without specific prior written permission.
250d02842fSSascha Wildner  *
260d02842fSSascha Wildner  * Alternatively, this software may be distributed under the terms of the
270d02842fSSascha Wildner  * GNU General Public License ("GPL") version 2 as published by the Free
280d02842fSSascha Wildner  * Software Foundation.
290d02842fSSascha Wildner  *
300d02842fSSascha Wildner  * NO WARRANTY
310d02842fSSascha Wildner  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
320d02842fSSascha Wildner  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
330d02842fSSascha Wildner  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
340d02842fSSascha Wildner  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
350d02842fSSascha Wildner  * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
360d02842fSSascha Wildner  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
370d02842fSSascha Wildner  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
380d02842fSSascha Wildner  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
390d02842fSSascha Wildner  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
400d02842fSSascha Wildner  * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
410d02842fSSascha Wildner  * POSSIBILITY OF SUCH DAMAGES.
420d02842fSSascha Wildner  */
430d02842fSSascha Wildner 
440d02842fSSascha Wildner #ifndef __ACDEBUG_H__
450d02842fSSascha Wildner #define __ACDEBUG_H__
460d02842fSSascha Wildner 
473cc0afc6SSascha Wildner /* The debugger is used in conjunction with the disassembler most of time */
483cc0afc6SSascha Wildner 
493cc0afc6SSascha Wildner #ifdef ACPI_DISASSEMBLER
503cc0afc6SSascha Wildner #include "acdisasm.h"
513cc0afc6SSascha Wildner #endif
523cc0afc6SSascha Wildner 
530d02842fSSascha Wildner 
540d02842fSSascha Wildner #define ACPI_DEBUG_BUFFER_SIZE  0x4000      /* 16K buffer for return objects */
550d02842fSSascha Wildner 
560d02842fSSascha Wildner typedef struct acpi_db_command_info
570d02842fSSascha Wildner {
58*2ffe9f16SSascha Wildner     const char              *Name;          /* Command Name */
590d02842fSSascha Wildner     UINT8                   MinArgs;        /* Minimum arguments required */
600d02842fSSascha Wildner 
610d02842fSSascha Wildner } ACPI_DB_COMMAND_INFO;
620d02842fSSascha Wildner 
630d02842fSSascha Wildner typedef struct acpi_db_command_help
640d02842fSSascha Wildner {
650d02842fSSascha Wildner     UINT8                   LineCount;      /* Number of help lines */
660d02842fSSascha Wildner     char                    *Invocation;    /* Command Invocation */
670d02842fSSascha Wildner     char                    *Description;   /* Command Description */
680d02842fSSascha Wildner 
690d02842fSSascha Wildner } ACPI_DB_COMMAND_HELP;
700d02842fSSascha Wildner 
710d02842fSSascha Wildner typedef struct acpi_db_argument_info
720d02842fSSascha Wildner {
73*2ffe9f16SSascha Wildner     const char              *Name;          /* Argument Name */
740d02842fSSascha Wildner 
750d02842fSSascha Wildner } ACPI_DB_ARGUMENT_INFO;
760d02842fSSascha Wildner 
770d02842fSSascha Wildner typedef struct acpi_db_execute_walk
780d02842fSSascha Wildner {
790d02842fSSascha Wildner     UINT32                  Count;
800d02842fSSascha Wildner     UINT32                  MaxCount;
810d02842fSSascha Wildner 
820d02842fSSascha Wildner } ACPI_DB_EXECUTE_WALK;
830d02842fSSascha Wildner 
840d02842fSSascha Wildner 
850d02842fSSascha Wildner #define PARAM_LIST(pl)                  pl
860d02842fSSascha Wildner 
870d02842fSSascha Wildner #define EX_NO_SINGLE_STEP               1
880d02842fSSascha Wildner #define EX_SINGLE_STEP                  2
890d02842fSSascha Wildner 
900d02842fSSascha Wildner 
910d02842fSSascha Wildner /*
920d02842fSSascha Wildner  * dbxface - external debugger interfaces
930d02842fSSascha Wildner  */
94820c5b08SSascha Wildner ACPI_DBR_DEPENDENT_RETURN_OK (
950d02842fSSascha Wildner ACPI_STATUS
960d02842fSSascha Wildner AcpiDbSingleStep (
970d02842fSSascha Wildner     ACPI_WALK_STATE         *WalkState,
980d02842fSSascha Wildner     ACPI_PARSE_OBJECT       *Op,
99820c5b08SSascha Wildner     UINT32                  OpType))
100820c5b08SSascha Wildner 
101820c5b08SSascha Wildner ACPI_DBR_DEPENDENT_RETURN_VOID (
102820c5b08SSascha Wildner void
103820c5b08SSascha Wildner AcpiDbSignalBreakPoint (
104820c5b08SSascha Wildner     ACPI_WALK_STATE         *WalkState))
1050d02842fSSascha Wildner 
1060d02842fSSascha Wildner 
1070d02842fSSascha Wildner /*
1080d02842fSSascha Wildner  * dbcmds - debug commands and output routines
1090d02842fSSascha Wildner  */
1100d02842fSSascha Wildner ACPI_NAMESPACE_NODE *
1110d02842fSSascha Wildner AcpiDbConvertToNode (
1120d02842fSSascha Wildner     char                    *InString);
1130d02842fSSascha Wildner 
1140d02842fSSascha Wildner void
1150d02842fSSascha Wildner AcpiDbDisplayTableInfo (
1160d02842fSSascha Wildner     char                    *TableArg);
1170d02842fSSascha Wildner 
1180d02842fSSascha Wildner void
1190d02842fSSascha Wildner AcpiDbDisplayTemplate (
1200d02842fSSascha Wildner     char                    *BufferArg);
1210d02842fSSascha Wildner 
1220d02842fSSascha Wildner void
1230d02842fSSascha Wildner AcpiDbUnloadAcpiTable (
1240d02842fSSascha Wildner     char                    *Name);
1250d02842fSSascha Wildner 
1260d02842fSSascha Wildner void
1270d02842fSSascha Wildner AcpiDbSendNotify (
1280d02842fSSascha Wildner     char                    *Name,
1290d02842fSSascha Wildner     UINT32                  Value);
1300d02842fSSascha Wildner 
1310d02842fSSascha Wildner void
1320d02842fSSascha Wildner AcpiDbDisplayInterfaces (
1330d02842fSSascha Wildner     char                    *ActionArg,
1340d02842fSSascha Wildner     char                    *InterfaceNameArg);
1350d02842fSSascha Wildner 
1360d02842fSSascha Wildner ACPI_STATUS
1370d02842fSSascha Wildner AcpiDbSleep (
1380d02842fSSascha Wildner     char                    *ObjectArg);
1390d02842fSSascha Wildner 
1400d02842fSSascha Wildner void
141267c04fdSSascha Wildner AcpiDbTrace (
142267c04fdSSascha Wildner     char                    *EnableArg,
143267c04fdSSascha Wildner     char                    *MethodArg,
144267c04fdSSascha Wildner     char                    *OnceArg);
145267c04fdSSascha Wildner 
146267c04fdSSascha Wildner void
1470d02842fSSascha Wildner AcpiDbDisplayLocks (
1480d02842fSSascha Wildner     void);
1490d02842fSSascha Wildner 
1500d02842fSSascha Wildner void
1510d02842fSSascha Wildner AcpiDbDisplayResources (
1520d02842fSSascha Wildner     char                    *ObjectArg);
1530d02842fSSascha Wildner 
1540d02842fSSascha Wildner ACPI_HW_DEPENDENT_RETURN_VOID (
1550d02842fSSascha Wildner void
1560d02842fSSascha Wildner AcpiDbDisplayGpes (
1570d02842fSSascha Wildner     void))
1580d02842fSSascha Wildner 
1590d02842fSSascha Wildner void
1600d02842fSSascha Wildner AcpiDbDisplayHandlers (
1610d02842fSSascha Wildner     void);
1620d02842fSSascha Wildner 
1630d02842fSSascha Wildner ACPI_HW_DEPENDENT_RETURN_VOID (
1640d02842fSSascha Wildner void
1650d02842fSSascha Wildner AcpiDbGenerateGpe (
1660d02842fSSascha Wildner     char                    *GpeArg,
1670d02842fSSascha Wildner     char                    *BlockArg))
1680d02842fSSascha Wildner 
1690d02842fSSascha Wildner ACPI_HW_DEPENDENT_RETURN_VOID (
1700d02842fSSascha Wildner void
1710d02842fSSascha Wildner AcpiDbGenerateSci (
1720d02842fSSascha Wildner     void))
1730d02842fSSascha Wildner 
17420294b7eSSascha Wildner void
17520294b7eSSascha Wildner AcpiDbExecuteTest (
17620294b7eSSascha Wildner     char                    *TypeArg);
17720294b7eSSascha Wildner 
17820294b7eSSascha Wildner 
1790d02842fSSascha Wildner /*
1800d02842fSSascha Wildner  * dbconvert - miscellaneous conversion routines
1810d02842fSSascha Wildner  */
1820d02842fSSascha Wildner ACPI_STATUS
1830d02842fSSascha Wildner AcpiDbHexCharToValue (
1840d02842fSSascha Wildner     int                     HexChar,
1850d02842fSSascha Wildner     UINT8                   *ReturnValue);
1860d02842fSSascha Wildner 
1870d02842fSSascha Wildner ACPI_STATUS
1880d02842fSSascha Wildner AcpiDbConvertToPackage (
1890d02842fSSascha Wildner     char                    *String,
1900d02842fSSascha Wildner     ACPI_OBJECT             *Object);
1910d02842fSSascha Wildner 
1920d02842fSSascha Wildner ACPI_STATUS
1930d02842fSSascha Wildner AcpiDbConvertToObject (
1940d02842fSSascha Wildner     ACPI_OBJECT_TYPE        Type,
1950d02842fSSascha Wildner     char                    *String,
1960d02842fSSascha Wildner     ACPI_OBJECT             *Object);
1970d02842fSSascha Wildner 
1980d02842fSSascha Wildner UINT8 *
1990d02842fSSascha Wildner AcpiDbEncodePldBuffer (
2000d02842fSSascha Wildner     ACPI_PLD_INFO           *PldInfo);
2010d02842fSSascha Wildner 
2020d02842fSSascha Wildner void
2030d02842fSSascha Wildner AcpiDbDumpPldBuffer (
2040d02842fSSascha Wildner     ACPI_OBJECT             *ObjDesc);
2050d02842fSSascha Wildner 
2060d02842fSSascha Wildner 
2070d02842fSSascha Wildner /*
2080d02842fSSascha Wildner  * dbmethod - control method commands
2090d02842fSSascha Wildner  */
2100d02842fSSascha Wildner void
2110d02842fSSascha Wildner AcpiDbSetMethodBreakpoint (
2120d02842fSSascha Wildner     char                    *Location,
2130d02842fSSascha Wildner     ACPI_WALK_STATE         *WalkState,
2140d02842fSSascha Wildner     ACPI_PARSE_OBJECT       *Op);
2150d02842fSSascha Wildner 
2160d02842fSSascha Wildner void
2170d02842fSSascha Wildner AcpiDbSetMethodCallBreakpoint (
2180d02842fSSascha Wildner     ACPI_PARSE_OBJECT       *Op);
2190d02842fSSascha Wildner 
2200d02842fSSascha Wildner void
2210d02842fSSascha Wildner AcpiDbSetMethodData (
2220d02842fSSascha Wildner     char                    *TypeArg,
2230d02842fSSascha Wildner     char                    *IndexArg,
2240d02842fSSascha Wildner     char                    *ValueArg);
2250d02842fSSascha Wildner 
2260d02842fSSascha Wildner ACPI_STATUS
2270d02842fSSascha Wildner AcpiDbDisassembleMethod (
2280d02842fSSascha Wildner     char                    *Name);
2290d02842fSSascha Wildner 
2300d02842fSSascha Wildner void
2310d02842fSSascha Wildner AcpiDbDisassembleAml (
2320d02842fSSascha Wildner     char                    *Statements,
2330d02842fSSascha Wildner     ACPI_PARSE_OBJECT       *Op);
2340d02842fSSascha Wildner 
2350d02842fSSascha Wildner void
2360d02842fSSascha Wildner AcpiDbBatchExecute (
2370d02842fSSascha Wildner     char                    *CountArg);
2380d02842fSSascha Wildner 
2390d02842fSSascha Wildner 
2400d02842fSSascha Wildner /*
2410d02842fSSascha Wildner  * dbnames - namespace commands
2420d02842fSSascha Wildner  */
2430d02842fSSascha Wildner void
2440d02842fSSascha Wildner AcpiDbSetScope (
2450d02842fSSascha Wildner     char                    *Name);
2460d02842fSSascha Wildner 
2470d02842fSSascha Wildner void
2480d02842fSSascha Wildner AcpiDbDumpNamespace (
2490d02842fSSascha Wildner     char                    *StartArg,
2500d02842fSSascha Wildner     char                    *DepthArg);
2510d02842fSSascha Wildner 
2520d02842fSSascha Wildner void
2530d02842fSSascha Wildner AcpiDbDumpNamespacePaths (
2540d02842fSSascha Wildner     void);
2550d02842fSSascha Wildner 
2560d02842fSSascha Wildner void
2570d02842fSSascha Wildner AcpiDbDumpNamespaceByOwner (
2580d02842fSSascha Wildner     char                    *OwnerArg,
2590d02842fSSascha Wildner     char                    *DepthArg);
2600d02842fSSascha Wildner 
2610d02842fSSascha Wildner ACPI_STATUS
2620d02842fSSascha Wildner AcpiDbFindNameInNamespace (
2630d02842fSSascha Wildner     char                    *NameArg);
2640d02842fSSascha Wildner 
2650d02842fSSascha Wildner void
2660d02842fSSascha Wildner AcpiDbCheckPredefinedNames (
2670d02842fSSascha Wildner     void);
2680d02842fSSascha Wildner 
2690d02842fSSascha Wildner ACPI_STATUS
2700d02842fSSascha Wildner AcpiDbDisplayObjects (
2710d02842fSSascha Wildner     char                    *ObjTypeArg,
2720d02842fSSascha Wildner     char                    *DisplayCountArg);
2730d02842fSSascha Wildner 
2740d02842fSSascha Wildner void
2750d02842fSSascha Wildner AcpiDbCheckIntegrity (
2760d02842fSSascha Wildner     void);
2770d02842fSSascha Wildner 
2780d02842fSSascha Wildner void
2790d02842fSSascha Wildner AcpiDbFindReferences (
2800d02842fSSascha Wildner     char                    *ObjectArg);
2810d02842fSSascha Wildner 
2820d02842fSSascha Wildner void
2830d02842fSSascha Wildner AcpiDbGetBusInfo (
2840d02842fSSascha Wildner     void);
2850d02842fSSascha Wildner 
2860d02842fSSascha Wildner 
2870d02842fSSascha Wildner /*
2880d02842fSSascha Wildner  * dbdisply - debug display commands
2890d02842fSSascha Wildner  */
2900d02842fSSascha Wildner void
2910d02842fSSascha Wildner AcpiDbDisplayMethodInfo (
2920d02842fSSascha Wildner     ACPI_PARSE_OBJECT       *Op);
2930d02842fSSascha Wildner 
2940d02842fSSascha Wildner void
2950d02842fSSascha Wildner AcpiDbDecodeAndDisplayObject (
2960d02842fSSascha Wildner     char                    *Target,
2970d02842fSSascha Wildner     char                    *OutputType);
2980d02842fSSascha Wildner 
299820c5b08SSascha Wildner ACPI_DBR_DEPENDENT_RETURN_VOID (
3000d02842fSSascha Wildner void
3010d02842fSSascha Wildner AcpiDbDisplayResultObject (
3020d02842fSSascha Wildner     ACPI_OPERAND_OBJECT     *ObjDesc,
303820c5b08SSascha Wildner     ACPI_WALK_STATE         *WalkState))
3040d02842fSSascha Wildner 
3050d02842fSSascha Wildner ACPI_STATUS
3060d02842fSSascha Wildner AcpiDbDisplayAllMethods (
3070d02842fSSascha Wildner     char                    *DisplayCountArg);
3080d02842fSSascha Wildner 
3090d02842fSSascha Wildner void
3100d02842fSSascha Wildner AcpiDbDisplayArguments (
3110d02842fSSascha Wildner     void);
3120d02842fSSascha Wildner 
3130d02842fSSascha Wildner void
3140d02842fSSascha Wildner AcpiDbDisplayLocals (
3150d02842fSSascha Wildner     void);
3160d02842fSSascha Wildner 
3170d02842fSSascha Wildner void
3180d02842fSSascha Wildner AcpiDbDisplayResults (
3190d02842fSSascha Wildner     void);
3200d02842fSSascha Wildner 
3210d02842fSSascha Wildner void
3220d02842fSSascha Wildner AcpiDbDisplayCallingTree (
3230d02842fSSascha Wildner     void);
3240d02842fSSascha Wildner 
3250d02842fSSascha Wildner void
3260d02842fSSascha Wildner AcpiDbDisplayObjectType (
3270d02842fSSascha Wildner     char                    *ObjectArg);
3280d02842fSSascha Wildner 
329820c5b08SSascha Wildner ACPI_DBR_DEPENDENT_RETURN_VOID (
3300d02842fSSascha Wildner void
3310d02842fSSascha Wildner AcpiDbDisplayArgumentObject (
3320d02842fSSascha Wildner     ACPI_OPERAND_OBJECT     *ObjDesc,
333820c5b08SSascha Wildner     ACPI_WALK_STATE         *WalkState))
3340d02842fSSascha Wildner 
3350d02842fSSascha Wildner 
3360d02842fSSascha Wildner /*
3370d02842fSSascha Wildner  * dbexec - debugger control method execution
3380d02842fSSascha Wildner  */
3390d02842fSSascha Wildner void
3400d02842fSSascha Wildner AcpiDbExecute (
3410d02842fSSascha Wildner     char                    *Name,
3420d02842fSSascha Wildner     char                    **Args,
3430d02842fSSascha Wildner     ACPI_OBJECT_TYPE        *Types,
3440d02842fSSascha Wildner     UINT32                  Flags);
3450d02842fSSascha Wildner 
3460d02842fSSascha Wildner void
3470d02842fSSascha Wildner AcpiDbCreateExecutionThreads (
3480d02842fSSascha Wildner     char                    *NumThreadsArg,
3490d02842fSSascha Wildner     char                    *NumLoopsArg,
3500d02842fSSascha Wildner     char                    *MethodNameArg);
3510d02842fSSascha Wildner 
3520d02842fSSascha Wildner void
3530d02842fSSascha Wildner AcpiDbDeleteObjects (
3540d02842fSSascha Wildner     UINT32                  Count,
3550d02842fSSascha Wildner     ACPI_OBJECT             *Objects);
3560d02842fSSascha Wildner 
3570d02842fSSascha Wildner #ifdef ACPI_DBG_TRACK_ALLOCATIONS
3580d02842fSSascha Wildner UINT32
3590d02842fSSascha Wildner AcpiDbGetCacheInfo (
3600d02842fSSascha Wildner     ACPI_MEMORY_LIST        *Cache);
3610d02842fSSascha Wildner #endif
3620d02842fSSascha Wildner 
3630d02842fSSascha Wildner 
3640d02842fSSascha Wildner /*
3650d02842fSSascha Wildner  * dbfileio - Debugger file I/O commands
3660d02842fSSascha Wildner  */
3670d02842fSSascha Wildner ACPI_OBJECT_TYPE
3680d02842fSSascha Wildner AcpiDbMatchArgument (
3690d02842fSSascha Wildner     char                    *UserArgument,
3700d02842fSSascha Wildner     ACPI_DB_ARGUMENT_INFO   *Arguments);
3710d02842fSSascha Wildner 
3720d02842fSSascha Wildner void
3730d02842fSSascha Wildner AcpiDbCloseDebugFile (
3740d02842fSSascha Wildner     void);
3750d02842fSSascha Wildner 
3760d02842fSSascha Wildner void
3770d02842fSSascha Wildner AcpiDbOpenDebugFile (
3780d02842fSSascha Wildner     char                    *Name);
3790d02842fSSascha Wildner 
3800d02842fSSascha Wildner ACPI_STATUS
3810d02842fSSascha Wildner AcpiDbLoadAcpiTable (
3820d02842fSSascha Wildner     char                    *Filename);
3830d02842fSSascha Wildner 
3840d02842fSSascha Wildner ACPI_STATUS
385820c5b08SSascha Wildner AcpiDbLoadTables (
386820c5b08SSascha Wildner     ACPI_NEW_TABLE_DESC     *ListHead);
3870d02842fSSascha Wildner 
3880d02842fSSascha Wildner 
3890d02842fSSascha Wildner /*
3900d02842fSSascha Wildner  * dbhistry - debugger HISTORY command
3910d02842fSSascha Wildner  */
3920d02842fSSascha Wildner void
3930d02842fSSascha Wildner AcpiDbAddToHistory (
3940d02842fSSascha Wildner     char                    *CommandLine);
3950d02842fSSascha Wildner 
3960d02842fSSascha Wildner void
3970d02842fSSascha Wildner AcpiDbDisplayHistory (
3980d02842fSSascha Wildner     void);
3990d02842fSSascha Wildner 
4000d02842fSSascha Wildner char *
4010d02842fSSascha Wildner AcpiDbGetFromHistory (
4020d02842fSSascha Wildner     char                    *CommandNumArg);
4030d02842fSSascha Wildner 
4040d02842fSSascha Wildner char *
4050d02842fSSascha Wildner AcpiDbGetHistoryByIndex (
4060d02842fSSascha Wildner     UINT32                  CommanddNum);
4070d02842fSSascha Wildner 
4080d02842fSSascha Wildner 
4090d02842fSSascha Wildner /*
4100d02842fSSascha Wildner  * dbinput - user front-end to the AML debugger
4110d02842fSSascha Wildner  */
4120d02842fSSascha Wildner ACPI_STATUS
4130d02842fSSascha Wildner AcpiDbCommandDispatch (
4140d02842fSSascha Wildner     char                    *InputBuffer,
4150d02842fSSascha Wildner     ACPI_WALK_STATE         *WalkState,
4160d02842fSSascha Wildner     ACPI_PARSE_OBJECT       *Op);
4170d02842fSSascha Wildner 
4180d02842fSSascha Wildner void ACPI_SYSTEM_XFACE
4190d02842fSSascha Wildner AcpiDbExecuteThread (
4200d02842fSSascha Wildner     void                    *Context);
4210d02842fSSascha Wildner 
4220d02842fSSascha Wildner ACPI_STATUS
4230d02842fSSascha Wildner AcpiDbUserCommands (
4240d02842fSSascha Wildner     char                    Prompt,
4250d02842fSSascha Wildner     ACPI_PARSE_OBJECT       *Op);
4260d02842fSSascha Wildner 
4270d02842fSSascha Wildner char *
4280d02842fSSascha Wildner AcpiDbGetNextToken (
4290d02842fSSascha Wildner     char                    *String,
4300d02842fSSascha Wildner     char                    **Next,
4310d02842fSSascha Wildner     ACPI_OBJECT_TYPE        *ReturnType);
4320d02842fSSascha Wildner 
4330d02842fSSascha Wildner 
4340d02842fSSascha Wildner /*
435267c04fdSSascha Wildner  * dbobject
436267c04fdSSascha Wildner  */
437267c04fdSSascha Wildner void
438267c04fdSSascha Wildner AcpiDbDecodeInternalObject (
439267c04fdSSascha Wildner     ACPI_OPERAND_OBJECT     *ObjDesc);
440267c04fdSSascha Wildner 
441267c04fdSSascha Wildner void
442267c04fdSSascha Wildner AcpiDbDisplayInternalObject (
443267c04fdSSascha Wildner     ACPI_OPERAND_OBJECT     *ObjDesc,
444267c04fdSSascha Wildner     ACPI_WALK_STATE         *WalkState);
445267c04fdSSascha Wildner 
446267c04fdSSascha Wildner void
447267c04fdSSascha Wildner AcpiDbDecodeArguments (
448267c04fdSSascha Wildner     ACPI_WALK_STATE         *WalkState);
449267c04fdSSascha Wildner 
450267c04fdSSascha Wildner void
451267c04fdSSascha Wildner AcpiDbDecodeLocals (
452267c04fdSSascha Wildner     ACPI_WALK_STATE         *WalkState);
453267c04fdSSascha Wildner 
454267c04fdSSascha Wildner void
455267c04fdSSascha Wildner AcpiDbDumpMethodInfo (
456267c04fdSSascha Wildner     ACPI_STATUS             Status,
457267c04fdSSascha Wildner     ACPI_WALK_STATE         *WalkState);
458267c04fdSSascha Wildner 
459267c04fdSSascha Wildner 
460267c04fdSSascha Wildner /*
4610d02842fSSascha Wildner  * dbstats - Generation and display of ACPI table statistics
4620d02842fSSascha Wildner  */
4630d02842fSSascha Wildner void
4640d02842fSSascha Wildner AcpiDbGenerateStatistics (
4650d02842fSSascha Wildner     ACPI_PARSE_OBJECT       *Root,
4660d02842fSSascha Wildner     BOOLEAN                 IsMethod);
4670d02842fSSascha Wildner 
4680d02842fSSascha Wildner ACPI_STATUS
4690d02842fSSascha Wildner AcpiDbDisplayStatistics (
4700d02842fSSascha Wildner     char                    *TypeArg);
4710d02842fSSascha Wildner 
4720d02842fSSascha Wildner 
4730d02842fSSascha Wildner /*
4740d02842fSSascha Wildner  * dbutils - AML debugger utilities
4750d02842fSSascha Wildner  */
4760d02842fSSascha Wildner void
4770d02842fSSascha Wildner AcpiDbSetOutputDestination (
4780d02842fSSascha Wildner     UINT32                  Where);
4790d02842fSSascha Wildner 
4800d02842fSSascha Wildner void
4810d02842fSSascha Wildner AcpiDbDumpExternalObject (
4820d02842fSSascha Wildner     ACPI_OBJECT             *ObjDesc,
4830d02842fSSascha Wildner     UINT32                  Level);
4840d02842fSSascha Wildner 
4850d02842fSSascha Wildner void
4860d02842fSSascha Wildner AcpiDbPrepNamestring (
4870d02842fSSascha Wildner     char                    *Name);
4880d02842fSSascha Wildner 
4890d02842fSSascha Wildner ACPI_NAMESPACE_NODE *
4900d02842fSSascha Wildner AcpiDbLocalNsLookup (
4910d02842fSSascha Wildner     char                    *Name);
4920d02842fSSascha Wildner 
4930d02842fSSascha Wildner void
4940d02842fSSascha Wildner AcpiDbUint32ToHexString (
4950d02842fSSascha Wildner     UINT32                  Value,
4960d02842fSSascha Wildner     char                    *Buffer);
4970d02842fSSascha Wildner 
4980d02842fSSascha Wildner #endif  /* __ACDEBUG_H__ */
499