xref: /freebsd/sys/contrib/dev/acpica/include/acdisasm.h (revision 12f110aa1ad3c9d0ead55bf80f2f994b4b845ffb)
1 /******************************************************************************
2  *
3  * Name: acdisasm.h - AML disassembler
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 __ACDISASM_H__
45 #define __ACDISASM_H__
46 
47 #include <contrib/dev/acpica/include/amlresrc.h>
48 
49 
50 #define BLOCK_NONE              0
51 #define BLOCK_PAREN             1
52 #define BLOCK_BRACE             2
53 #define BLOCK_COMMA_LIST        4
54 #define ACPI_DEFAULT_RESNAME    *(UINT32 *) "__RD"
55 
56 /*
57  * Raw table data header. Used by disassembler and data table compiler.
58  * Do not change.
59  */
60 #define ACPI_RAW_TABLE_DATA_HEADER      "Raw Table Data"
61 
62 
63 typedef const struct acpi_dmtable_info
64 {
65     UINT8                       Opcode;
66     UINT16                      Offset;
67     char                        *Name;
68     UINT8                       Flags;
69 
70 } ACPI_DMTABLE_INFO;
71 
72 #define DT_LENGTH                       0x01    /* Field is a subtable length */
73 #define DT_FLAG                         0x02    /* Field is a flag value */
74 #define DT_NON_ZERO                     0x04    /* Field must be non-zero */
75 
76 /* TBD: Not used at this time */
77 
78 #define DT_OPTIONAL                     0x08
79 #define DT_COUNT                        0x10
80 
81 /*
82  * Values for Opcode above.
83  * Note: 0-7 must not change, they are used as a flag shift value. Other
84  * than those, new values can be added wherever appropriate.
85  */
86 typedef enum
87 {
88     /* Simple Data Types */
89 
90     ACPI_DMT_FLAG0          = 0,
91     ACPI_DMT_FLAG1          = 1,
92     ACPI_DMT_FLAG2          = 2,
93     ACPI_DMT_FLAG3          = 3,
94     ACPI_DMT_FLAG4          = 4,
95     ACPI_DMT_FLAG5          = 5,
96     ACPI_DMT_FLAG6          = 6,
97     ACPI_DMT_FLAG7          = 7,
98     ACPI_DMT_FLAGS0,
99     ACPI_DMT_FLAGS1,
100     ACPI_DMT_FLAGS2,
101     ACPI_DMT_FLAGS4,
102     ACPI_DMT_UINT8,
103     ACPI_DMT_UINT16,
104     ACPI_DMT_UINT24,
105     ACPI_DMT_UINT32,
106     ACPI_DMT_UINT40,
107     ACPI_DMT_UINT48,
108     ACPI_DMT_UINT56,
109     ACPI_DMT_UINT64,
110     ACPI_DMT_BUF7,
111     ACPI_DMT_BUF16,
112     ACPI_DMT_BUF128,
113     ACPI_DMT_SIG,
114     ACPI_DMT_STRING,
115     ACPI_DMT_NAME4,
116     ACPI_DMT_NAME6,
117     ACPI_DMT_NAME8,
118 
119     /* Types that are decoded to strings and miscellaneous */
120 
121     ACPI_DMT_ACCWIDTH,
122     ACPI_DMT_CHKSUM,
123     ACPI_DMT_GAS,
124     ACPI_DMT_SPACEID,
125     ACPI_DMT_UNICODE,
126     ACPI_DMT_UUID,
127 
128     /* Types used only for the Data Table Compiler */
129 
130     ACPI_DMT_BUFFER,
131     ACPI_DMT_DEVICE_PATH,
132     ACPI_DMT_LABEL,
133     ACPI_DMT_PCI_PATH,
134 
135     /* Types that are specific to particular ACPI tables */
136 
137     ACPI_DMT_ASF,
138     ACPI_DMT_DMAR,
139     ACPI_DMT_EINJACT,
140     ACPI_DMT_EINJINST,
141     ACPI_DMT_ERSTACT,
142     ACPI_DMT_ERSTINST,
143     ACPI_DMT_FADTPM,
144     ACPI_DMT_HEST,
145     ACPI_DMT_HESTNTFY,
146     ACPI_DMT_HESTNTYP,
147     ACPI_DMT_IVRS,
148     ACPI_DMT_MADT,
149     ACPI_DMT_PMTT,
150     ACPI_DMT_SLIC,
151     ACPI_DMT_SRAT,
152 
153     /* Special opcodes */
154 
155     ACPI_DMT_EXTRA_TEXT,
156     ACPI_DMT_EXIT
157 
158 } ACPI_ENTRY_TYPES;
159 
160 typedef
161 void (*ACPI_DMTABLE_HANDLER) (
162     ACPI_TABLE_HEADER       *Table);
163 
164 typedef
165 ACPI_STATUS (*ACPI_CMTABLE_HANDLER) (
166     void                    **PFieldList);
167 
168 typedef struct acpi_dmtable_data
169 {
170     char                    *Signature;
171     ACPI_DMTABLE_INFO       *TableInfo;
172     ACPI_DMTABLE_HANDLER    TableHandler;
173     ACPI_CMTABLE_HANDLER    CmTableHandler;
174     const unsigned char     *Template;
175     char                    *Name;
176 
177 } ACPI_DMTABLE_DATA;
178 
179 
180 typedef struct acpi_op_walk_info
181 {
182     UINT32                  Level;
183     UINT32                  LastLevel;
184     UINT32                  Count;
185     UINT32                  BitOffset;
186     UINT32                  Flags;
187     ACPI_WALK_STATE         *WalkState;
188 
189 } ACPI_OP_WALK_INFO;
190 
191 /*
192  * TBD - another copy of this is in asltypes.h, fix
193  */
194 #ifndef ASL_WALK_CALLBACK_DEFINED
195 typedef
196 ACPI_STATUS (*ASL_WALK_CALLBACK) (
197     ACPI_PARSE_OBJECT           *Op,
198     UINT32                      Level,
199     void                        *Context);
200 #define ASL_WALK_CALLBACK_DEFINED
201 #endif
202 
203 typedef
204 void (*ACPI_RESOURCE_HANDLER) (
205     AML_RESOURCE            *Resource,
206     UINT32                  Length,
207     UINT32                  Level);
208 
209 typedef struct acpi_resource_tag
210 {
211     UINT32                  BitIndex;
212     char                    *Tag;
213 
214 } ACPI_RESOURCE_TAG;
215 
216 /* Strings used for decoding flags to ASL keywords */
217 
218 extern const char               *AcpiGbl_WordDecode[];
219 extern const char               *AcpiGbl_IrqDecode[];
220 extern const char               *AcpiGbl_LockRule[];
221 extern const char               *AcpiGbl_AccessTypes[];
222 extern const char               *AcpiGbl_UpdateRules[];
223 extern const char               *AcpiGbl_MatchOps[];
224 
225 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf0[];
226 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf1[];
227 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf1a[];
228 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf2[];
229 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf2a[];
230 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf3[];
231 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf4[];
232 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsfHdr[];
233 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoBoot[];
234 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoBert[];
235 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoBgrt[];
236 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoCpep[];
237 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoCpep0[];
238 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoCsrt0[];
239 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoCsrt1[];
240 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDbg2[];
241 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDbg2Device[];
242 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDbg2Addr[];
243 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDbg2Size[];
244 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDbg2Name[];
245 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDbgp[];
246 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmar[];
247 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmarHdr[];
248 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmarScope[];
249 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmar0[];
250 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmar1[];
251 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmar2[];
252 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmar3[];
253 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDrtm[];
254 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoEcdt[];
255 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoEinj[];
256 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoEinj0[];
257 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoErst[];
258 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoErst0[];
259 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFacs[];
260 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFadt1[];
261 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFadt2[];
262 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFadt3[];
263 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFadt5[];
264 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFpdt[];
265 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFpdtHdr[];
266 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFpdt0[];
267 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFpdt1[];
268 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoGas[];
269 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoGtdt[];
270 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHeader[];
271 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest[];
272 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest0[];
273 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest1[];
274 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest2[];
275 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest6[];
276 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest7[];
277 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest8[];
278 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest9[];
279 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHestNotify[];
280 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHestBank[];
281 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHpet[];
282 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs[];
283 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs0[];
284 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs1[];
285 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs4[];
286 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs8a[];
287 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs8b[];
288 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs8c[];
289 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrsHdr[];
290 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt[];
291 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt0[];
292 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt1[];
293 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt2[];
294 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt3[];
295 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt4[];
296 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt5[];
297 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt6[];
298 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt7[];
299 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt8[];
300 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt9[];
301 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt10[];
302 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt11[];
303 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt12[];
304 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadtHdr[];
305 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMcfg[];
306 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMcfg0[];
307 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMchi[];
308 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMpst[];
309 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMpst0[];
310 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMpst0A[];
311 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMpst0B[];
312 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMpst1[];
313 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMpst2[];
314 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMsct[];
315 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMsct0[];
316 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPmtt[];
317 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPmtt0[];
318 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPmtt1[];
319 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPmtt1a[];
320 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPmtt2[];
321 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPmttHdr[];
322 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPcct[];
323 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPcct0[];
324 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoRsdp1[];
325 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoRsdp2[];
326 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoS3pt[];
327 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoS3ptHdr[];
328 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoS3pt0[];
329 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoS3pt1[];
330 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSbst[];
331 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSlicHdr[];
332 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSlic0[];
333 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSlic1[];
334 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSlit[];
335 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSpcr[];
336 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSpmi[];
337 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSrat[];
338 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSratHdr[];
339 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSrat0[];
340 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSrat1[];
341 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSrat2[];
342 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoTcpa[];
343 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoUefi[];
344 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoWaet[];
345 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoWdat[];
346 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoWdat0[];
347 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoWddt[];
348 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoWdrt[];
349 
350 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoGeneric[][2];
351 
352 
353 /*
354  * dmtable
355  */
356 extern ACPI_DMTABLE_DATA        AcpiDmTableData[];
357 
358 UINT8
359 AcpiDmGenerateChecksum (
360     void                    *Table,
361     UINT32                  Length,
362     UINT8                   OriginalChecksum);
363 
364 ACPI_DMTABLE_DATA *
365 AcpiDmGetTableData (
366     char                    *Signature);
367 
368 void
369 AcpiDmDumpDataTable (
370     ACPI_TABLE_HEADER       *Table);
371 
372 ACPI_STATUS
373 AcpiDmDumpTable (
374     UINT32                  TableLength,
375     UINT32                  TableOffset,
376     void                    *Table,
377     UINT32                  SubTableLength,
378     ACPI_DMTABLE_INFO        *Info);
379 
380 void
381 AcpiDmLineHeader (
382     UINT32                  Offset,
383     UINT32                  ByteLength,
384     char                    *Name);
385 
386 void
387 AcpiDmLineHeader2 (
388     UINT32                  Offset,
389     UINT32                  ByteLength,
390     char                    *Name,
391     UINT32                  Value);
392 
393 
394 /*
395  * dmtbdump
396  */
397 void
398 AcpiDmDumpAsf (
399     ACPI_TABLE_HEADER       *Table);
400 
401 void
402 AcpiDmDumpCpep (
403     ACPI_TABLE_HEADER       *Table);
404 
405 void
406 AcpiDmDumpCsrt (
407     ACPI_TABLE_HEADER       *Table);
408 
409 void
410 AcpiDmDumpDbg2 (
411     ACPI_TABLE_HEADER       *Table);
412 
413 void
414 AcpiDmDumpDmar (
415     ACPI_TABLE_HEADER       *Table);
416 
417 void
418 AcpiDmDumpEinj (
419     ACPI_TABLE_HEADER       *Table);
420 
421 void
422 AcpiDmDumpErst (
423     ACPI_TABLE_HEADER       *Table);
424 
425 void
426 AcpiDmDumpFadt (
427     ACPI_TABLE_HEADER       *Table);
428 
429 void
430 AcpiDmDumpFpdt (
431     ACPI_TABLE_HEADER       *Table);
432 
433 void
434 AcpiDmDumpHest (
435     ACPI_TABLE_HEADER       *Table);
436 
437 void
438 AcpiDmDumpIvrs (
439     ACPI_TABLE_HEADER       *Table);
440 
441 void
442 AcpiDmDumpMadt (
443     ACPI_TABLE_HEADER       *Table);
444 
445 void
446 AcpiDmDumpMcfg (
447     ACPI_TABLE_HEADER       *Table);
448 
449 void
450 AcpiDmDumpMpst (
451     ACPI_TABLE_HEADER       *Table);
452 
453 void
454 AcpiDmDumpMsct (
455     ACPI_TABLE_HEADER       *Table);
456 
457 void
458 AcpiDmDumpPcct (
459     ACPI_TABLE_HEADER       *Table);
460 
461 void
462 AcpiDmDumpPmtt (
463     ACPI_TABLE_HEADER       *Table);
464 
465 UINT32
466 AcpiDmDumpRsdp (
467     ACPI_TABLE_HEADER       *Table);
468 
469 void
470 AcpiDmDumpRsdt (
471     ACPI_TABLE_HEADER       *Table);
472 
473 UINT32
474 AcpiDmDumpS3pt (
475     ACPI_TABLE_HEADER       *Table);
476 
477 void
478 AcpiDmDumpSlic (
479     ACPI_TABLE_HEADER       *Table);
480 
481 void
482 AcpiDmDumpSlit (
483     ACPI_TABLE_HEADER       *Table);
484 
485 void
486 AcpiDmDumpSrat (
487     ACPI_TABLE_HEADER       *Table);
488 
489 void
490 AcpiDmDumpWdat (
491     ACPI_TABLE_HEADER       *Table);
492 
493 void
494 AcpiDmDumpXsdt (
495     ACPI_TABLE_HEADER       *Table);
496 
497 
498 /*
499  * dmwalk
500  */
501 void
502 AcpiDmDisassemble (
503     ACPI_WALK_STATE         *WalkState,
504     ACPI_PARSE_OBJECT       *Origin,
505     UINT32                  NumOpcodes);
506 
507 void
508 AcpiDmWalkParseTree (
509     ACPI_PARSE_OBJECT       *Op,
510     ASL_WALK_CALLBACK       DescendingCallback,
511     ASL_WALK_CALLBACK       AscendingCallback,
512     void                    *Context);
513 
514 
515 /*
516  * dmopcode
517  */
518 void
519 AcpiDmDisassembleOneOp (
520     ACPI_WALK_STATE         *WalkState,
521     ACPI_OP_WALK_INFO       *Info,
522     ACPI_PARSE_OBJECT       *Op);
523 
524 void
525 AcpiDmDecodeInternalObject (
526     ACPI_OPERAND_OBJECT     *ObjDesc);
527 
528 UINT32
529 AcpiDmListType (
530     ACPI_PARSE_OBJECT       *Op);
531 
532 void
533 AcpiDmMethodFlags (
534     ACPI_PARSE_OBJECT       *Op);
535 
536 void
537 AcpiDmPredefinedDescription (
538     ACPI_PARSE_OBJECT       *Op);
539 
540 void
541 AcpiDmFieldPredefinedDescription (
542     ACPI_PARSE_OBJECT       *Op);
543 
544 void
545 AcpiDmFieldFlags (
546     ACPI_PARSE_OBJECT       *Op);
547 
548 void
549 AcpiDmAddressSpace (
550     UINT8                   SpaceId);
551 
552 void
553 AcpiDmRegionFlags (
554     ACPI_PARSE_OBJECT       *Op);
555 
556 void
557 AcpiDmMatchOp (
558     ACPI_PARSE_OBJECT       *Op);
559 
560 
561 /*
562  * dmnames
563  */
564 UINT32
565 AcpiDmDumpName (
566     UINT32                  Name);
567 
568 ACPI_STATUS
569 AcpiPsDisplayObjectPathname (
570     ACPI_WALK_STATE         *WalkState,
571     ACPI_PARSE_OBJECT       *Op);
572 
573 void
574 AcpiDmNamestring (
575     char                    *Name);
576 
577 
578 /*
579  * dmobject
580  */
581 void
582 AcpiDmDisplayInternalObject (
583     ACPI_OPERAND_OBJECT     *ObjDesc,
584     ACPI_WALK_STATE         *WalkState);
585 
586 void
587 AcpiDmDisplayArguments (
588     ACPI_WALK_STATE         *WalkState);
589 
590 void
591 AcpiDmDisplayLocals (
592     ACPI_WALK_STATE         *WalkState);
593 
594 void
595 AcpiDmDumpMethodInfo (
596     ACPI_STATUS             Status,
597     ACPI_WALK_STATE         *WalkState,
598     ACPI_PARSE_OBJECT       *Op);
599 
600 
601 /*
602  * dmbuffer
603  */
604 void
605 AcpiDmDisasmByteList (
606     UINT32                  Level,
607     UINT8                   *ByteData,
608     UINT32                  ByteCount);
609 
610 void
611 AcpiDmByteList (
612     ACPI_OP_WALK_INFO       *Info,
613     ACPI_PARSE_OBJECT       *Op);
614 
615 void
616 AcpiDmIsEisaId (
617     ACPI_PARSE_OBJECT       *Op);
618 
619 void
620 AcpiDmEisaId (
621     UINT32                  EncodedId);
622 
623 BOOLEAN
624 AcpiDmIsUnicodeBuffer (
625     ACPI_PARSE_OBJECT       *Op);
626 
627 BOOLEAN
628 AcpiDmIsStringBuffer (
629     ACPI_PARSE_OBJECT       *Op);
630 
631 BOOLEAN
632 AcpiDmIsPldBuffer (
633     ACPI_PARSE_OBJECT       *Op);
634 
635 
636 /*
637  * dmdeferred
638  */
639 ACPI_STATUS
640 AcpiDmParseDeferredOps (
641     ACPI_PARSE_OBJECT       *Root);
642 
643 
644 /*
645  * dmextern
646  */
647 ACPI_STATUS
648 AcpiDmAddToExternalFileList (
649     char                    *PathList);
650 
651 void
652 AcpiDmClearExternalFileList (
653     void);
654 
655 void
656 AcpiDmAddToExternalList (
657     ACPI_PARSE_OBJECT       *Op,
658     char                    *Path,
659     UINT8                   Type,
660     UINT32                  Value);
661 
662 void
663 AcpiDmAddExternalsToNamespace (
664     void);
665 
666 UINT32
667 AcpiDmGetExternalMethodCount (
668     void);
669 
670 void
671 AcpiDmClearExternalList (
672     void);
673 
674 void
675 AcpiDmEmitExternals (
676     void);
677 
678 
679 /*
680  * dmresrc
681  */
682 void
683 AcpiDmDumpInteger8 (
684     UINT8                   Value,
685     char                    *Name);
686 
687 void
688 AcpiDmDumpInteger16 (
689     UINT16                  Value,
690     char                    *Name);
691 
692 void
693 AcpiDmDumpInteger32 (
694     UINT32                  Value,
695     char                    *Name);
696 
697 void
698 AcpiDmDumpInteger64 (
699     UINT64                  Value,
700     char                    *Name);
701 
702 void
703 AcpiDmResourceTemplate (
704     ACPI_OP_WALK_INFO       *Info,
705     ACPI_PARSE_OBJECT       *Op,
706     UINT8                   *ByteData,
707     UINT32                  ByteCount);
708 
709 ACPI_STATUS
710 AcpiDmIsResourceTemplate (
711     ACPI_WALK_STATE         *WalkState,
712     ACPI_PARSE_OBJECT       *Op);
713 
714 void
715 AcpiDmBitList (
716     UINT16                  Mask);
717 
718 void
719 AcpiDmDescriptorName (
720     void);
721 
722 
723 /*
724  * dmresrcl
725  */
726 void
727 AcpiDmWordDescriptor (
728     AML_RESOURCE            *Resource,
729     UINT32                  Length,
730     UINT32                  Level);
731 
732 void
733 AcpiDmDwordDescriptor (
734     AML_RESOURCE            *Resource,
735     UINT32                  Length,
736     UINT32                  Level);
737 
738 void
739 AcpiDmExtendedDescriptor (
740     AML_RESOURCE            *Resource,
741     UINT32                  Length,
742     UINT32                  Level);
743 
744 void
745 AcpiDmQwordDescriptor (
746     AML_RESOURCE            *Resource,
747     UINT32                  Length,
748     UINT32                  Level);
749 
750 void
751 AcpiDmMemory24Descriptor (
752     AML_RESOURCE            *Resource,
753     UINT32                  Length,
754     UINT32                  Level);
755 
756 void
757 AcpiDmMemory32Descriptor (
758     AML_RESOURCE            *Resource,
759     UINT32                  Length,
760     UINT32                  Level);
761 
762 void
763 AcpiDmFixedMemory32Descriptor (
764     AML_RESOURCE            *Resource,
765     UINT32                  Length,
766     UINT32                  Level);
767 
768 void
769 AcpiDmGenericRegisterDescriptor (
770     AML_RESOURCE            *Resource,
771     UINT32                  Length,
772     UINT32                  Level);
773 
774 void
775 AcpiDmInterruptDescriptor (
776     AML_RESOURCE            *Resource,
777     UINT32                  Length,
778     UINT32                  Level);
779 
780 void
781 AcpiDmVendorLargeDescriptor (
782     AML_RESOURCE            *Resource,
783     UINT32                  Length,
784     UINT32                  Level);
785 
786 void
787 AcpiDmGpioDescriptor (
788     AML_RESOURCE            *Resource,
789     UINT32                  Length,
790     UINT32                  Level);
791 
792 void
793 AcpiDmSerialBusDescriptor (
794     AML_RESOURCE            *Resource,
795     UINT32                  Length,
796     UINT32                  Level);
797 
798 void
799 AcpiDmVendorCommon (
800     char                    *Name,
801     UINT8                   *ByteData,
802     UINT32                  Length,
803     UINT32                  Level);
804 
805 
806 /*
807  * dmresrcs
808  */
809 void
810 AcpiDmIrqDescriptor (
811     AML_RESOURCE            *Resource,
812     UINT32                  Length,
813     UINT32                  Level);
814 
815 void
816 AcpiDmDmaDescriptor (
817     AML_RESOURCE            *Resource,
818     UINT32                  Length,
819     UINT32                  Level);
820 
821 void
822 AcpiDmFixedDmaDescriptor (
823     AML_RESOURCE            *Resource,
824     UINT32                  Length,
825     UINT32                  Level);
826 
827 void
828 AcpiDmIoDescriptor (
829     AML_RESOURCE            *Resource,
830     UINT32                  Length,
831     UINT32                  Level);
832 
833 void
834 AcpiDmFixedIoDescriptor (
835     AML_RESOURCE            *Resource,
836     UINT32                  Length,
837     UINT32                  Level);
838 
839 void
840 AcpiDmStartDependentDescriptor (
841     AML_RESOURCE            *Resource,
842     UINT32                  Length,
843     UINT32                  Level);
844 
845 void
846 AcpiDmEndDependentDescriptor (
847     AML_RESOURCE            *Resource,
848     UINT32                  Length,
849     UINT32                  Level);
850 
851 void
852 AcpiDmVendorSmallDescriptor (
853     AML_RESOURCE            *Resource,
854     UINT32                  Length,
855     UINT32                  Level);
856 
857 
858 /*
859  * dmutils
860  */
861 void
862 AcpiDmDecodeAttribute (
863     UINT8                   Attribute);
864 
865 void
866 AcpiDmIndent (
867     UINT32                  Level);
868 
869 BOOLEAN
870 AcpiDmCommaIfListMember (
871     ACPI_PARSE_OBJECT       *Op);
872 
873 void
874 AcpiDmCommaIfFieldMember (
875     ACPI_PARSE_OBJECT       *Op);
876 
877 
878 /*
879  * dmrestag
880  */
881 void
882 AcpiDmFindResources (
883     ACPI_PARSE_OBJECT       *Root);
884 
885 void
886 AcpiDmCheckResourceReference (
887     ACPI_PARSE_OBJECT       *Op,
888     ACPI_WALK_STATE         *WalkState);
889 
890 
891 /*
892  * acdisasm
893  */
894 void
895 AdDisassemblerHeader (
896     char                    *Filename);
897 
898 
899 #endif  /* __ACDISASM_H__ */
900