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