1/******************************************************************************
2 *
3 * Name: acdisasm.h - AML disassembler
4 *
5 *****************************************************************************/
6
7/******************************************************************************
8 *
9 * 1. Copyright Notice
10 *
11 * Some or all of this work - Copyright (c) 1999 - 2012, Intel Corp.
12 * All rights reserved.
13 *
14 * 2. License
15 *
16 * 2.1. This is your license from Intel Corp. under its intellectual property
17 * rights. You may have additional license terms from the party that provided
18 * you this software, covering your right to use that party's intellectual
19 * property rights.
20 *
21 * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
22 * copy of the source code appearing in this file ("Covered Code") an
23 * irrevocable, perpetual, worldwide license under Intel's copyrights in the
24 * base code distributed originally by Intel ("Original Intel Code") to copy,
25 * make derivatives, distribute, use and display any portion of the Covered
26 * Code in any form, with the right to sublicense such rights; and
27 *
28 * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
29 * license (with the right to sublicense), under only those claims of Intel
30 * patents that are infringed by the Original Intel Code, to make, use, sell,
31 * offer to sell, and import the Covered Code and derivative works thereof
32 * solely to the minimum extent necessary to exercise the above copyright
33 * license, and in no event shall the patent license extend to any additions
34 * to or modifications of the Original Intel Code. No other license or right
35 * is granted directly or by implication, estoppel or otherwise;
36 *
37 * The above copyright and patent license is granted only if the following
38 * conditions are met:
39 *
40 * 3. Conditions
41 *
42 * 3.1. Redistribution of Source with Rights to Further Distribute Source.
43 * Redistribution of source code of any substantial portion of the Covered
44 * Code or modification with rights to further distribute source must include
45 * the above Copyright Notice, the above License, this list of Conditions,
46 * and the following Disclaimer and Export Compliance provision. In addition,
47 * Licensee must cause all Covered Code to which Licensee contributes to
48 * contain a file documenting the changes Licensee made to create that Covered
49 * Code and the date of any change. Licensee must include in that file the
50 * documentation of any changes made by any predecessor Licensee. Licensee
51 * must include a prominent statement that the modification is derived,
52 * directly or indirectly, from Original Intel Code.
53 *
54 * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
55 * Redistribution of source code of any substantial portion of the Covered
56 * Code or modification without rights to further distribute source must
57 * include the following Disclaimer and Export Compliance provision in the
58 * documentation and/or other materials provided with distribution. In
59 * addition, Licensee may not authorize further sublicense of source of any
60 * portion of the Covered Code, and must include terms to the effect that the
61 * license from Licensee to its licensee is limited to the intellectual
62 * property embodied in the software Licensee provides to its licensee, and
63 * not to intellectual property embodied in modifications its licensee may
64 * make.
65 *
66 * 3.3. Redistribution of Executable. Redistribution in executable form of any
67 * substantial portion of the Covered Code or modification must reproduce the
68 * above Copyright Notice, and the following Disclaimer and Export Compliance
69 * provision in the documentation and/or other materials provided with the
70 * distribution.
71 *
72 * 3.4. Intel retains all right, title, and interest in and to the Original
73 * Intel Code.
74 *
75 * 3.5. Neither the name Intel nor any other trademark owned or controlled by
76 * Intel shall be used in advertising or otherwise to promote the sale, use or
77 * other dealings in products derived from or relating to the Covered Code
78 * without prior written authorization from Intel.
79 *
80 * 4. Disclaimer and Export Compliance
81 *
82 * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
83 * HERE. ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
84 * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT, ASSISTANCE,
85 * INSTALLATION, TRAINING OR OTHER SERVICES. INTEL WILL NOT PROVIDE ANY
86 * UPDATES, ENHANCEMENTS OR EXTENSIONS. INTEL SPECIFICALLY DISCLAIMS ANY
87 * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
88 * PARTICULAR PURPOSE.
89 *
90 * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
91 * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
92 * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
93 * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
94 * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
95 * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. THESE LIMITATIONS
96 * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
97 * LIMITED REMEDY.
98 *
99 * 4.3. Licensee shall not export, either directly or indirectly, any of this
100 * software or system incorporating such software without first obtaining any
101 * required license or other approval from the U. S. Department of Commerce or
102 * any other agency or department of the United States Government. In the
103 * event Licensee exports any such software from the United States or
104 * re-exports any such software from a foreign destination, Licensee shall
105 * ensure that the distribution and export/re-export of the software is in
106 * compliance with all laws, regulations, orders, or other restrictions of the
107 * U.S. Export Administration Regulations. Licensee agrees that neither it nor
108 * any of its subsidiaries will export/re-export any technical data, process,
109 * software, or service, directly or indirectly, to any country for which the
110 * United States government or any agency thereof requires an export license,
111 * other governmental approval, or letter of assurance, without first obtaining
112 * such license, approval or letter.
113 *
114 *****************************************************************************/
115
116#ifndef __ACDISASM_H__
117#define __ACDISASM_H__
118
119#include "amlresrc.h"
120
121
122#define BLOCK_NONE              0
123#define BLOCK_PAREN             1
124#define BLOCK_BRACE             2
125#define BLOCK_COMMA_LIST        4
126#define ACPI_DEFAULT_RESNAME    *(UINT32 *) "__RD"
127
128/*
129 * Raw table data header. Used by disassembler and data table compiler.
130 * Do not change.
131 */
132#define ACPI_RAW_TABLE_DATA_HEADER      "Raw Table Data"
133
134
135typedef const struct acpi_dmtable_info
136{
137    UINT8                       Opcode;
138    UINT16                      Offset;
139    char                        *Name;
140    UINT8                       Flags;
141
142} ACPI_DMTABLE_INFO;
143
144#define DT_LENGTH                       0x01    /* Field is a subtable length */
145#define DT_FLAG                         0x02    /* Field is a flag value */
146#define DT_NON_ZERO                     0x04    /* Field must be non-zero */
147
148/* TBD: Not used at this time */
149
150#define DT_OPTIONAL                     0x08
151#define DT_COUNT                        0x10
152
153/*
154 * Values for Opcode above.
155 * Note: 0-7 must not change, they are used as a flag shift value. Other
156 * than those, new values can be added wherever appropriate.
157 */
158typedef enum
159{
160    /* Simple Data Types */
161
162    ACPI_DMT_FLAG0          = 0,
163    ACPI_DMT_FLAG1          = 1,
164    ACPI_DMT_FLAG2          = 2,
165    ACPI_DMT_FLAG3          = 3,
166    ACPI_DMT_FLAG4          = 4,
167    ACPI_DMT_FLAG5          = 5,
168    ACPI_DMT_FLAG6          = 6,
169    ACPI_DMT_FLAG7          = 7,
170    ACPI_DMT_FLAGS0,
171    ACPI_DMT_FLAGS1,
172    ACPI_DMT_FLAGS2,
173    ACPI_DMT_FLAGS4,
174    ACPI_DMT_UINT8,
175    ACPI_DMT_UINT16,
176    ACPI_DMT_UINT24,
177    ACPI_DMT_UINT32,
178    ACPI_DMT_UINT40,
179    ACPI_DMT_UINT48,
180    ACPI_DMT_UINT56,
181    ACPI_DMT_UINT64,
182    ACPI_DMT_BUF7,
183    ACPI_DMT_BUF16,
184    ACPI_DMT_BUF128,
185    ACPI_DMT_SIG,
186    ACPI_DMT_STRING,
187    ACPI_DMT_NAME4,
188    ACPI_DMT_NAME6,
189    ACPI_DMT_NAME8,
190
191    /* Types that are decoded to strings and miscellaneous */
192
193    ACPI_DMT_ACCWIDTH,
194    ACPI_DMT_CHKSUM,
195    ACPI_DMT_GAS,
196    ACPI_DMT_SPACEID,
197    ACPI_DMT_UNICODE,
198    ACPI_DMT_UUID,
199
200    /* Types used only for the Data Table Compiler */
201
202    ACPI_DMT_BUFFER,
203    ACPI_DMT_DEVICE_PATH,
204    ACPI_DMT_LABEL,
205    ACPI_DMT_PCI_PATH,
206
207    /* Types that are specific to particular ACPI tables */
208
209    ACPI_DMT_ASF,
210    ACPI_DMT_DMAR,
211    ACPI_DMT_EINJACT,
212    ACPI_DMT_EINJINST,
213    ACPI_DMT_ERSTACT,
214    ACPI_DMT_ERSTINST,
215    ACPI_DMT_FADTPM,
216    ACPI_DMT_HEST,
217    ACPI_DMT_HESTNTFY,
218    ACPI_DMT_HESTNTYP,
219    ACPI_DMT_IVRS,
220    ACPI_DMT_MADT,
221    ACPI_DMT_PMTT,
222    ACPI_DMT_SLIC,
223    ACPI_DMT_SRAT,
224
225    /* Special opcodes */
226
227    ACPI_DMT_EXTRA_TEXT,
228    ACPI_DMT_EXIT
229
230} ACPI_ENTRY_TYPES;
231
232typedef
233void (*ACPI_DMTABLE_HANDLER) (
234    ACPI_TABLE_HEADER       *Table);
235
236typedef
237ACPI_STATUS (*ACPI_CMTABLE_HANDLER) (
238    void                    **PFieldList);
239
240typedef struct acpi_dmtable_data
241{
242    char                    *Signature;
243    ACPI_DMTABLE_INFO       *TableInfo;
244    ACPI_DMTABLE_HANDLER    TableHandler;
245    ACPI_CMTABLE_HANDLER    CmTableHandler;
246    const unsigned char     *Template;
247    char                    *Name;
248
249} ACPI_DMTABLE_DATA;
250
251
252typedef struct acpi_op_walk_info
253{
254    UINT32                  Level;
255    UINT32                  LastLevel;
256    UINT32                  Count;
257    UINT32                  BitOffset;
258    UINT32                  Flags;
259    ACPI_WALK_STATE         *WalkState;
260
261} ACPI_OP_WALK_INFO;
262
263/*
264 * TBD - another copy of this is in asltypes.h, fix
265 */
266#ifndef ASL_WALK_CALLBACK_DEFINED
267typedef
268ACPI_STATUS (*ASL_WALK_CALLBACK) (
269    ACPI_PARSE_OBJECT           *Op,
270    UINT32                      Level,
271    void                        *Context);
272#define ASL_WALK_CALLBACK_DEFINED
273#endif
274
275typedef
276void (*ACPI_RESOURCE_HANDLER) (
277    AML_RESOURCE            *Resource,
278    UINT32                  Length,
279    UINT32                  Level);
280
281typedef struct acpi_resource_tag
282{
283    UINT32                  BitIndex;
284    char                    *Tag;
285
286} ACPI_RESOURCE_TAG;
287
288/* Strings used for decoding flags to ASL keywords */
289
290extern const char               *AcpiGbl_WordDecode[];
291extern const char               *AcpiGbl_IrqDecode[];
292extern const char               *AcpiGbl_LockRule[];
293extern const char               *AcpiGbl_AccessTypes[];
294extern const char               *AcpiGbl_UpdateRules[];
295extern const char               *AcpiGbl_MatchOps[];
296
297extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf0[];
298extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf1[];
299extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf1a[];
300extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf2[];
301extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf2a[];
302extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf3[];
303extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf4[];
304extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsfHdr[];
305extern ACPI_DMTABLE_INFO        AcpiDmTableInfoBoot[];
306extern ACPI_DMTABLE_INFO        AcpiDmTableInfoBert[];
307extern ACPI_DMTABLE_INFO        AcpiDmTableInfoBgrt[];
308extern ACPI_DMTABLE_INFO        AcpiDmTableInfoCpep[];
309extern ACPI_DMTABLE_INFO        AcpiDmTableInfoCpep0[];
310extern ACPI_DMTABLE_INFO        AcpiDmTableInfoCsrt0[];
311extern ACPI_DMTABLE_INFO        AcpiDmTableInfoCsrt1[];
312extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDbg2[];
313extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDbg2Device[];
314extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDbg2Addr[];
315extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDbg2Size[];
316extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDbg2Name[];
317extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDbgp[];
318extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmar[];
319extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmarHdr[];
320extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmarScope[];
321extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmar0[];
322extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmar1[];
323extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmar2[];
324extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmar3[];
325extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDrtm[];
326extern ACPI_DMTABLE_INFO        AcpiDmTableInfoEcdt[];
327extern ACPI_DMTABLE_INFO        AcpiDmTableInfoEinj[];
328extern ACPI_DMTABLE_INFO        AcpiDmTableInfoEinj0[];
329extern ACPI_DMTABLE_INFO        AcpiDmTableInfoErst[];
330extern ACPI_DMTABLE_INFO        AcpiDmTableInfoErst0[];
331extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFacs[];
332extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFadt1[];
333extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFadt2[];
334extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFadt3[];
335extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFadt5[];
336extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFpdt[];
337extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFpdtHdr[];
338extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFpdt0[];
339extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFpdt1[];
340extern ACPI_DMTABLE_INFO        AcpiDmTableInfoGas[];
341extern ACPI_DMTABLE_INFO        AcpiDmTableInfoGtdt[];
342extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHeader[];
343extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest[];
344extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest0[];
345extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest1[];
346extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest2[];
347extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest6[];
348extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest7[];
349extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest8[];
350extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest9[];
351extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHestNotify[];
352extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHestBank[];
353extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHpet[];
354extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs[];
355extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs0[];
356extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs1[];
357extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs4[];
358extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs8a[];
359extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs8b[];
360extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs8c[];
361extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrsHdr[];
362extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt[];
363extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt0[];
364extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt1[];
365extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt2[];
366extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt3[];
367extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt4[];
368extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt5[];
369extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt6[];
370extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt7[];
371extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt8[];
372extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt9[];
373extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt10[];
374extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt11[];
375extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt12[];
376extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadtHdr[];
377extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMcfg[];
378extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMcfg0[];
379extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMchi[];
380extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMpst[];
381extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMpst0[];
382extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMpst0A[];
383extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMpst0B[];
384extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMpst1[];
385extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMpst2[];
386extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMsct[];
387extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMsct0[];
388extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPmtt[];
389extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPmtt0[];
390extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPmtt1[];
391extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPmtt1a[];
392extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPmtt2[];
393extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPmttHdr[];
394extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPcct[];
395extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPcct0[];
396extern ACPI_DMTABLE_INFO        AcpiDmTableInfoRsdp1[];
397extern ACPI_DMTABLE_INFO        AcpiDmTableInfoRsdp2[];
398extern ACPI_DMTABLE_INFO        AcpiDmTableInfoS3pt[];
399extern ACPI_DMTABLE_INFO        AcpiDmTableInfoS3ptHdr[];
400extern ACPI_DMTABLE_INFO        AcpiDmTableInfoS3pt0[];
401extern ACPI_DMTABLE_INFO        AcpiDmTableInfoS3pt1[];
402extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSbst[];
403extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSlicHdr[];
404extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSlic0[];
405extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSlic1[];
406extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSlit[];
407extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSpcr[];
408extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSpmi[];
409extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSrat[];
410extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSratHdr[];
411extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSrat0[];
412extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSrat1[];
413extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSrat2[];
414extern ACPI_DMTABLE_INFO        AcpiDmTableInfoTcpa[];
415extern ACPI_DMTABLE_INFO        AcpiDmTableInfoUefi[];
416extern ACPI_DMTABLE_INFO        AcpiDmTableInfoWaet[];
417extern ACPI_DMTABLE_INFO        AcpiDmTableInfoWdat[];
418extern ACPI_DMTABLE_INFO        AcpiDmTableInfoWdat0[];
419extern ACPI_DMTABLE_INFO        AcpiDmTableInfoWddt[];
420extern ACPI_DMTABLE_INFO        AcpiDmTableInfoWdrt[];
421
422extern ACPI_DMTABLE_INFO        AcpiDmTableInfoGeneric[][2];
423
424
425/*
426 * dmtable
427 */
428extern ACPI_DMTABLE_DATA        AcpiDmTableData[];
429
430UINT8
431AcpiDmGenerateChecksum (
432    void                    *Table,
433    UINT32                  Length,
434    UINT8                   OriginalChecksum);
435
436ACPI_DMTABLE_DATA *
437AcpiDmGetTableData (
438    char                    *Signature);
439
440void
441AcpiDmDumpDataTable (
442    ACPI_TABLE_HEADER       *Table);
443
444ACPI_STATUS
445AcpiDmDumpTable (
446    UINT32                  TableLength,
447    UINT32                  TableOffset,
448    void                    *Table,
449    UINT32                  SubTableLength,
450    ACPI_DMTABLE_INFO        *Info);
451
452void
453AcpiDmLineHeader (
454    UINT32                  Offset,
455    UINT32                  ByteLength,
456    char                    *Name);
457
458void
459AcpiDmLineHeader2 (
460    UINT32                  Offset,
461    UINT32                  ByteLength,
462    char                    *Name,
463    UINT32                  Value);
464
465
466/*
467 * dmtbdump
468 */
469void
470AcpiDmDumpAsf (
471    ACPI_TABLE_HEADER       *Table);
472
473void
474AcpiDmDumpCpep (
475    ACPI_TABLE_HEADER       *Table);
476
477void
478AcpiDmDumpCsrt (
479    ACPI_TABLE_HEADER       *Table);
480
481void
482AcpiDmDumpDbg2 (
483    ACPI_TABLE_HEADER       *Table);
484
485void
486AcpiDmDumpDmar (
487    ACPI_TABLE_HEADER       *Table);
488
489void
490AcpiDmDumpEinj (
491    ACPI_TABLE_HEADER       *Table);
492
493void
494AcpiDmDumpErst (
495    ACPI_TABLE_HEADER       *Table);
496
497void
498AcpiDmDumpFadt (
499    ACPI_TABLE_HEADER       *Table);
500
501void
502AcpiDmDumpFpdt (
503    ACPI_TABLE_HEADER       *Table);
504
505void
506AcpiDmDumpHest (
507    ACPI_TABLE_HEADER       *Table);
508
509void
510AcpiDmDumpIvrs (
511    ACPI_TABLE_HEADER       *Table);
512
513void
514AcpiDmDumpMadt (
515    ACPI_TABLE_HEADER       *Table);
516
517void
518AcpiDmDumpMcfg (
519    ACPI_TABLE_HEADER       *Table);
520
521void
522AcpiDmDumpMpst (
523    ACPI_TABLE_HEADER       *Table);
524
525void
526AcpiDmDumpMsct (
527    ACPI_TABLE_HEADER       *Table);
528
529void
530AcpiDmDumpPcct (
531    ACPI_TABLE_HEADER       *Table);
532
533void
534AcpiDmDumpPmtt (
535    ACPI_TABLE_HEADER       *Table);
536
537UINT32
538AcpiDmDumpRsdp (
539    ACPI_TABLE_HEADER       *Table);
540
541void
542AcpiDmDumpRsdt (
543    ACPI_TABLE_HEADER       *Table);
544
545UINT32
546AcpiDmDumpS3pt (
547    ACPI_TABLE_HEADER       *Table);
548
549void
550AcpiDmDumpSlic (
551    ACPI_TABLE_HEADER       *Table);
552
553void
554AcpiDmDumpSlit (
555    ACPI_TABLE_HEADER       *Table);
556
557void
558AcpiDmDumpSrat (
559    ACPI_TABLE_HEADER       *Table);
560
561void
562AcpiDmDumpWdat (
563    ACPI_TABLE_HEADER       *Table);
564
565void
566AcpiDmDumpXsdt (
567    ACPI_TABLE_HEADER       *Table);
568
569
570/*
571 * dmwalk
572 */
573void
574AcpiDmDisassemble (
575    ACPI_WALK_STATE         *WalkState,
576    ACPI_PARSE_OBJECT       *Origin,
577    UINT32                  NumOpcodes);
578
579void
580AcpiDmWalkParseTree (
581    ACPI_PARSE_OBJECT       *Op,
582    ASL_WALK_CALLBACK       DescendingCallback,
583    ASL_WALK_CALLBACK       AscendingCallback,
584    void                    *Context);
585
586
587/*
588 * dmopcode
589 */
590void
591AcpiDmDisassembleOneOp (
592    ACPI_WALK_STATE         *WalkState,
593    ACPI_OP_WALK_INFO       *Info,
594    ACPI_PARSE_OBJECT       *Op);
595
596void
597AcpiDmDecodeInternalObject (
598    ACPI_OPERAND_OBJECT     *ObjDesc);
599
600UINT32
601AcpiDmListType (
602    ACPI_PARSE_OBJECT       *Op);
603
604void
605AcpiDmMethodFlags (
606    ACPI_PARSE_OBJECT       *Op);
607
608void
609AcpiDmPredefinedDescription (
610    ACPI_PARSE_OBJECT       *Op);
611
612void
613AcpiDmFieldPredefinedDescription (
614    ACPI_PARSE_OBJECT       *Op);
615
616void
617AcpiDmFieldFlags (
618    ACPI_PARSE_OBJECT       *Op);
619
620void
621AcpiDmAddressSpace (
622    UINT8                   SpaceId);
623
624void
625AcpiDmRegionFlags (
626    ACPI_PARSE_OBJECT       *Op);
627
628void
629AcpiDmMatchOp (
630    ACPI_PARSE_OBJECT       *Op);
631
632
633/*
634 * dmnames
635 */
636UINT32
637AcpiDmDumpName (
638    UINT32                  Name);
639
640ACPI_STATUS
641AcpiPsDisplayObjectPathname (
642    ACPI_WALK_STATE         *WalkState,
643    ACPI_PARSE_OBJECT       *Op);
644
645void
646AcpiDmNamestring (
647    char                    *Name);
648
649
650/*
651 * dmobject
652 */
653void
654AcpiDmDisplayInternalObject (
655    ACPI_OPERAND_OBJECT     *ObjDesc,
656    ACPI_WALK_STATE         *WalkState);
657
658void
659AcpiDmDisplayArguments (
660    ACPI_WALK_STATE         *WalkState);
661
662void
663AcpiDmDisplayLocals (
664    ACPI_WALK_STATE         *WalkState);
665
666void
667AcpiDmDumpMethodInfo (
668    ACPI_STATUS             Status,
669    ACPI_WALK_STATE         *WalkState,
670    ACPI_PARSE_OBJECT       *Op);
671
672
673/*
674 * dmbuffer
675 */
676void
677AcpiDmDisasmByteList (
678    UINT32                  Level,
679    UINT8                   *ByteData,
680    UINT32                  ByteCount);
681
682void
683AcpiDmByteList (
684    ACPI_OP_WALK_INFO       *Info,
685    ACPI_PARSE_OBJECT       *Op);
686
687void
688AcpiDmIsEisaId (
689    ACPI_PARSE_OBJECT       *Op);
690
691void
692AcpiDmEisaId (
693    UINT32                  EncodedId);
694
695BOOLEAN
696AcpiDmIsUnicodeBuffer (
697    ACPI_PARSE_OBJECT       *Op);
698
699BOOLEAN
700AcpiDmIsStringBuffer (
701    ACPI_PARSE_OBJECT       *Op);
702
703BOOLEAN
704AcpiDmIsPldBuffer (
705    ACPI_PARSE_OBJECT       *Op);
706
707
708/*
709 * dmextern
710 */
711
712ACPI_STATUS
713AcpiDmAddToExternalFileList (
714    char                    *PathList);
715
716void
717AcpiDmClearExternalFileList (
718    void);
719
720void
721AcpiDmAddToExternalList (
722    ACPI_PARSE_OBJECT       *Op,
723    char                    *Path,
724    UINT8                   Type,
725    UINT32                  Value);
726
727void
728AcpiDmAddExternalsToNamespace (
729    void);
730
731UINT32
732AcpiDmGetExternalMethodCount (
733    void);
734
735void
736AcpiDmClearExternalList (
737    void);
738
739void
740AcpiDmEmitExternals (
741    void);
742
743
744/*
745 * dmresrc
746 */
747void
748AcpiDmDumpInteger8 (
749    UINT8                   Value,
750    char                    *Name);
751
752void
753AcpiDmDumpInteger16 (
754    UINT16                  Value,
755    char                    *Name);
756
757void
758AcpiDmDumpInteger32 (
759    UINT32                  Value,
760    char                    *Name);
761
762void
763AcpiDmDumpInteger64 (
764    UINT64                  Value,
765    char                    *Name);
766
767void
768AcpiDmResourceTemplate (
769    ACPI_OP_WALK_INFO       *Info,
770    ACPI_PARSE_OBJECT       *Op,
771    UINT8                   *ByteData,
772    UINT32                  ByteCount);
773
774ACPI_STATUS
775AcpiDmIsResourceTemplate (
776    ACPI_PARSE_OBJECT       *Op);
777
778void
779AcpiDmBitList (
780    UINT16                  Mask);
781
782void
783AcpiDmDescriptorName (
784    void);
785
786
787/*
788 * dmresrcl
789 */
790void
791AcpiDmWordDescriptor (
792    AML_RESOURCE            *Resource,
793    UINT32                  Length,
794    UINT32                  Level);
795
796void
797AcpiDmDwordDescriptor (
798    AML_RESOURCE            *Resource,
799    UINT32                  Length,
800    UINT32                  Level);
801
802void
803AcpiDmExtendedDescriptor (
804    AML_RESOURCE            *Resource,
805    UINT32                  Length,
806    UINT32                  Level);
807
808void
809AcpiDmQwordDescriptor (
810    AML_RESOURCE            *Resource,
811    UINT32                  Length,
812    UINT32                  Level);
813
814void
815AcpiDmMemory24Descriptor (
816    AML_RESOURCE            *Resource,
817    UINT32                  Length,
818    UINT32                  Level);
819
820void
821AcpiDmMemory32Descriptor (
822    AML_RESOURCE            *Resource,
823    UINT32                  Length,
824    UINT32                  Level);
825
826void
827AcpiDmFixedMemory32Descriptor (
828    AML_RESOURCE            *Resource,
829    UINT32                  Length,
830    UINT32                  Level);
831
832void
833AcpiDmGenericRegisterDescriptor (
834    AML_RESOURCE            *Resource,
835    UINT32                  Length,
836    UINT32                  Level);
837
838void
839AcpiDmInterruptDescriptor (
840    AML_RESOURCE            *Resource,
841    UINT32                  Length,
842    UINT32                  Level);
843
844void
845AcpiDmVendorLargeDescriptor (
846    AML_RESOURCE            *Resource,
847    UINT32                  Length,
848    UINT32                  Level);
849
850void
851AcpiDmGpioDescriptor (
852    AML_RESOURCE            *Resource,
853    UINT32                  Length,
854    UINT32                  Level);
855
856void
857AcpiDmSerialBusDescriptor (
858    AML_RESOURCE            *Resource,
859    UINT32                  Length,
860    UINT32                  Level);
861
862void
863AcpiDmVendorCommon (
864    char                    *Name,
865    UINT8                   *ByteData,
866    UINT32                  Length,
867    UINT32                  Level);
868
869
870/*
871 * dmresrcs
872 */
873void
874AcpiDmIrqDescriptor (
875    AML_RESOURCE            *Resource,
876    UINT32                  Length,
877    UINT32                  Level);
878
879void
880AcpiDmDmaDescriptor (
881    AML_RESOURCE            *Resource,
882    UINT32                  Length,
883    UINT32                  Level);
884
885void
886AcpiDmFixedDmaDescriptor (
887    AML_RESOURCE            *Resource,
888    UINT32                  Length,
889    UINT32                  Level);
890
891void
892AcpiDmIoDescriptor (
893    AML_RESOURCE            *Resource,
894    UINT32                  Length,
895    UINT32                  Level);
896
897void
898AcpiDmFixedIoDescriptor (
899    AML_RESOURCE            *Resource,
900    UINT32                  Length,
901    UINT32                  Level);
902
903void
904AcpiDmStartDependentDescriptor (
905    AML_RESOURCE            *Resource,
906    UINT32                  Length,
907    UINT32                  Level);
908
909void
910AcpiDmEndDependentDescriptor (
911    AML_RESOURCE            *Resource,
912    UINT32                  Length,
913    UINT32                  Level);
914
915void
916AcpiDmVendorSmallDescriptor (
917    AML_RESOURCE            *Resource,
918    UINT32                  Length,
919    UINT32                  Level);
920
921
922/*
923 * dmutils
924 */
925void
926AcpiDmDecodeAttribute (
927    UINT8                   Attribute);
928
929void
930AcpiDmIndent (
931    UINT32                  Level);
932
933BOOLEAN
934AcpiDmCommaIfListMember (
935    ACPI_PARSE_OBJECT       *Op);
936
937void
938AcpiDmCommaIfFieldMember (
939    ACPI_PARSE_OBJECT       *Op);
940
941
942/*
943 * dmrestag
944 */
945void
946AcpiDmFindResources (
947    ACPI_PARSE_OBJECT       *Root);
948
949void
950AcpiDmCheckResourceReference (
951    ACPI_PARSE_OBJECT       *Op,
952    ACPI_WALK_STATE         *WalkState);
953
954
955/*
956 * acdisasm
957 */
958void
959AdDisassemblerHeader (
960    char                    *Filename);
961
962
963#endif  /* __ACDISASM_H__ */
964