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