]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - sys/contrib/dev/acpica/include/acdebug.h
MFV: less v451.
[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 CommandInfo
51 {
52     char                    *Name;          /* Command Name */
53     UINT8                   MinArgs;        /* Minimum arguments required */
54
55 } COMMAND_INFO;
56
57 typedef struct ArgumentInfo
58 {
59     char                    *Name;          /* Argument Name */
60
61 } ARGUMENT_INFO;
62
63 typedef struct acpi_execute_walk
64 {
65     UINT32                  Count;
66     UINT32                  MaxCount;
67
68 } ACPI_EXECUTE_WALK;
69
70
71 #define PARAM_LIST(pl)                  pl
72 #define DBTEST_OUTPUT_LEVEL(lvl)        if (AcpiGbl_DbOpt_verbose)
73 #define VERBOSE_PRINT(fp)               DBTEST_OUTPUT_LEVEL(lvl) {\
74                                             AcpiOsPrintf PARAM_LIST(fp);}
75
76 #define EX_NO_SINGLE_STEP               1
77 #define EX_SINGLE_STEP                  2
78
79
80 /*
81  * dbxface - external debugger interfaces
82  */
83 ACPI_STATUS
84 AcpiDbInitialize (
85     void);
86
87 void
88 AcpiDbTerminate (
89     void);
90
91 ACPI_STATUS
92 AcpiDbSingleStep (
93     ACPI_WALK_STATE         *WalkState,
94     ACPI_PARSE_OBJECT       *Op,
95     UINT32                  OpType);
96
97
98 /*
99  * dbcmds - debug commands and output routines
100  */
101 ACPI_NAMESPACE_NODE *
102 AcpiDbConvertToNode (
103     char                    *InString);
104
105 void
106 AcpiDbDisplayTableInfo (
107     char                    *TableArg);
108
109 void
110 AcpiDbDisplayTemplate (
111     char                    *BufferArg);
112
113 void
114 AcpiDbUnloadAcpiTable (
115     char                    *Name);
116
117 void
118 AcpiDbSendNotify (
119     char                    *Name,
120     UINT32                  Value);
121
122 void
123 AcpiDbDisplayInterfaces (
124     char                    *ActionArg,
125     char                    *InterfaceNameArg);
126
127 ACPI_STATUS
128 AcpiDbSleep (
129     char                    *ObjectArg);
130
131 void
132 AcpiDbDisplayLocks (
133     void);
134
135 void
136 AcpiDbDisplayResources (
137     char                    *ObjectArg);
138
139 ACPI_HW_DEPENDENT_RETURN_VOID (
140 void
141 AcpiDbDisplayGpes (
142     void))
143
144 void
145 AcpiDbDisplayHandlers (
146     void);
147
148 ACPI_HW_DEPENDENT_RETURN_VOID (
149 void
150 AcpiDbGenerateGpe (
151     char                    *GpeArg,
152     char                    *BlockArg))
153
154
155 /*
156  * dbmethod - control method commands
157  */
158 void
159 AcpiDbSetMethodBreakpoint (
160     char                    *Location,
161     ACPI_WALK_STATE         *WalkState,
162     ACPI_PARSE_OBJECT       *Op);
163
164 void
165 AcpiDbSetMethodCallBreakpoint (
166     ACPI_PARSE_OBJECT       *Op);
167
168 void
169 AcpiDbSetMethodData (
170     char                    *TypeArg,
171     char                    *IndexArg,
172     char                    *ValueArg);
173
174 ACPI_STATUS
175 AcpiDbDisassembleMethod (
176     char                    *Name);
177
178 void
179 AcpiDbDisassembleAml (
180     char                    *Statements,
181     ACPI_PARSE_OBJECT       *Op);
182
183 void
184 AcpiDbBatchExecute (
185     char                    *CountArg);
186
187
188 /*
189  * dbnames - namespace commands
190  */
191 void
192 AcpiDbSetScope (
193     char                    *Name);
194
195 void
196 AcpiDbDumpNamespace (
197     char                    *StartArg,
198     char                    *DepthArg);
199
200 void
201 AcpiDbDumpNamespaceByOwner (
202     char                    *OwnerArg,
203     char                    *DepthArg);
204
205 ACPI_STATUS
206 AcpiDbFindNameInNamespace (
207     char                    *NameArg);
208
209 void
210 AcpiDbCheckPredefinedNames (
211     void);
212
213 ACPI_STATUS
214 AcpiDbDisplayObjects (
215     char                    *ObjTypeArg,
216     char                    *DisplayCountArg);
217
218 void
219 AcpiDbCheckIntegrity (
220     void);
221
222 void
223 AcpiDbFindReferences (
224     char                    *ObjectArg);
225
226 void
227 AcpiDbGetBusInfo (
228     void);
229
230
231 /*
232  * dbdisply - debug display commands
233  */
234 void
235 AcpiDbDisplayMethodInfo (
236     ACPI_PARSE_OBJECT       *Op);
237
238 void
239 AcpiDbDecodeAndDisplayObject (
240     char                    *Target,
241     char                    *OutputType);
242
243 void
244 AcpiDbDisplayResultObject (
245     ACPI_OPERAND_OBJECT     *ObjDesc,
246     ACPI_WALK_STATE         *WalkState);
247
248 ACPI_STATUS
249 AcpiDbDisplayAllMethods (
250     char                    *DisplayCountArg);
251
252 void
253 AcpiDbDisplayArguments (
254     void);
255
256 void
257 AcpiDbDisplayLocals (
258     void);
259
260 void
261 AcpiDbDisplayResults (
262     void);
263
264 void
265 AcpiDbDisplayCallingTree (
266     void);
267
268 void
269 AcpiDbDisplayObjectType (
270     char                    *ObjectArg);
271
272 void
273 AcpiDbDisplayArgumentObject (
274     ACPI_OPERAND_OBJECT     *ObjDesc,
275     ACPI_WALK_STATE         *WalkState);
276
277
278 /*
279  * dbexec - debugger control method execution
280  */
281 void
282 AcpiDbExecute (
283     char                    *Name,
284     char                    **Args,
285     ACPI_OBJECT_TYPE        *Types,
286     UINT32                  Flags);
287
288 void
289 AcpiDbCreateExecutionThreads (
290     char                    *NumThreadsArg,
291     char                    *NumLoopsArg,
292     char                    *MethodNameArg);
293
294 #ifdef ACPI_DBG_TRACK_ALLOCATIONS
295 UINT32
296 AcpiDbGetCacheInfo (
297     ACPI_MEMORY_LIST        *Cache);
298 #endif
299
300
301 /*
302  * dbfileio - Debugger file I/O commands
303  */
304 ACPI_OBJECT_TYPE
305 AcpiDbMatchArgument (
306     char                    *UserArgument,
307     ARGUMENT_INFO           *Arguments);
308
309 void
310 AcpiDbCloseDebugFile (
311     void);
312
313 void
314 AcpiDbOpenDebugFile (
315     char                    *Name);
316
317 ACPI_STATUS
318 AcpiDbLoadAcpiTable (
319     char                    *Filename);
320
321 ACPI_STATUS
322 AcpiDbGetTableFromFile (
323     char                    *Filename,
324     ACPI_TABLE_HEADER       **Table);
325
326 ACPI_STATUS
327 AcpiDbReadTableFromFile (
328     char                    *Filename,
329     ACPI_TABLE_HEADER       **Table);
330
331
332 /*
333  * dbhistry - debugger HISTORY command
334  */
335 void
336 AcpiDbAddToHistory (
337     char                    *CommandLine);
338
339 void
340 AcpiDbDisplayHistory (
341     void);
342
343 char *
344 AcpiDbGetFromHistory (
345     char                    *CommandNumArg);
346
347
348 /*
349  * dbinput - user front-end to the AML debugger
350  */
351 ACPI_STATUS
352 AcpiDbCommandDispatch (
353     char                    *InputBuffer,
354     ACPI_WALK_STATE         *WalkState,
355     ACPI_PARSE_OBJECT       *Op);
356
357 void ACPI_SYSTEM_XFACE
358 AcpiDbExecuteThread (
359     void                    *Context);
360
361 ACPI_STATUS
362 AcpiDbUserCommands (
363     char                    Prompt,
364     ACPI_PARSE_OBJECT       *Op);
365
366 char *
367 AcpiDbGetNextToken (
368     char                    *String,
369     char                    **Next,
370     ACPI_OBJECT_TYPE        *ReturnType);
371
372
373 /*
374  * dbstats - Generation and display of ACPI table statistics
375  */
376 void
377 AcpiDbGenerateStatistics (
378     ACPI_PARSE_OBJECT       *Root,
379     BOOLEAN                 IsMethod);
380
381 ACPI_STATUS
382 AcpiDbDisplayStatistics (
383     char                    *TypeArg);
384
385
386 /*
387  * dbutils - AML debugger utilities
388  */
389 void
390 AcpiDbSetOutputDestination (
391     UINT32                  Where);
392
393 void
394 AcpiDbDumpExternalObject (
395     ACPI_OBJECT             *ObjDesc,
396     UINT32                  Level);
397
398 void
399 AcpiDbPrepNamestring (
400     char                    *Name);
401
402 ACPI_NAMESPACE_NODE *
403 AcpiDbLocalNsLookup (
404     char                    *Name);
405
406 void
407 AcpiDbUint32ToHexString (
408     UINT32                  Value,
409     char                    *Buffer);
410
411 #endif  /* __ACDEBUG_H__ */