acdisasm.h revision 193267
1100966Siwasaki/******************************************************************************
2100966Siwasaki *
3100966Siwasaki * Name: acdisasm.h - AML disassembler
4100966Siwasaki *
5100966Siwasaki *****************************************************************************/
6100966Siwasaki
7100966Siwasaki/******************************************************************************
8100966Siwasaki *
9100966Siwasaki * 1. Copyright Notice
10100966Siwasaki *
11193267Sjkim * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp.
12100966Siwasaki * All rights reserved.
13100966Siwasaki *
14100966Siwasaki * 2. License
15100966Siwasaki *
16100966Siwasaki * 2.1. This is your license from Intel Corp. under its intellectual property
17100966Siwasaki * rights.  You may have additional license terms from the party that provided
18100966Siwasaki * you this software, covering your right to use that party's intellectual
19100966Siwasaki * property rights.
20100966Siwasaki *
21100966Siwasaki * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
22100966Siwasaki * copy of the source code appearing in this file ("Covered Code") an
23100966Siwasaki * irrevocable, perpetual, worldwide license under Intel's copyrights in the
24100966Siwasaki * base code distributed originally by Intel ("Original Intel Code") to copy,
25100966Siwasaki * make derivatives, distribute, use and display any portion of the Covered
26100966Siwasaki * Code in any form, with the right to sublicense such rights; and
27100966Siwasaki *
28100966Siwasaki * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
29100966Siwasaki * license (with the right to sublicense), under only those claims of Intel
30100966Siwasaki * patents that are infringed by the Original Intel Code, to make, use, sell,
31100966Siwasaki * offer to sell, and import the Covered Code and derivative works thereof
32100966Siwasaki * solely to the minimum extent necessary to exercise the above copyright
33100966Siwasaki * license, and in no event shall the patent license extend to any additions
34100966Siwasaki * to or modifications of the Original Intel Code.  No other license or right
35100966Siwasaki * is granted directly or by implication, estoppel or otherwise;
36100966Siwasaki *
37100966Siwasaki * The above copyright and patent license is granted only if the following
38100966Siwasaki * conditions are met:
39100966Siwasaki *
40100966Siwasaki * 3. Conditions
41100966Siwasaki *
42100966Siwasaki * 3.1. Redistribution of Source with Rights to Further Distribute Source.
43100966Siwasaki * Redistribution of source code of any substantial portion of the Covered
44100966Siwasaki * Code or modification with rights to further distribute source must include
45100966Siwasaki * the above Copyright Notice, the above License, this list of Conditions,
46100966Siwasaki * and the following Disclaimer and Export Compliance provision.  In addition,
47100966Siwasaki * Licensee must cause all Covered Code to which Licensee contributes to
48100966Siwasaki * contain a file documenting the changes Licensee made to create that Covered
49100966Siwasaki * Code and the date of any change.  Licensee must include in that file the
50100966Siwasaki * documentation of any changes made by any predecessor Licensee.  Licensee
51100966Siwasaki * must include a prominent statement that the modification is derived,
52100966Siwasaki * directly or indirectly, from Original Intel Code.
53100966Siwasaki *
54100966Siwasaki * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
55100966Siwasaki * Redistribution of source code of any substantial portion of the Covered
56100966Siwasaki * Code or modification without rights to further distribute source must
57100966Siwasaki * include the following Disclaimer and Export Compliance provision in the
58100966Siwasaki * documentation and/or other materials provided with distribution.  In
59100966Siwasaki * addition, Licensee may not authorize further sublicense of source of any
60100966Siwasaki * portion of the Covered Code, and must include terms to the effect that the
61100966Siwasaki * license from Licensee to its licensee is limited to the intellectual
62100966Siwasaki * property embodied in the software Licensee provides to its licensee, and
63100966Siwasaki * not to intellectual property embodied in modifications its licensee may
64100966Siwasaki * make.
65100966Siwasaki *
66100966Siwasaki * 3.3. Redistribution of Executable. Redistribution in executable form of any
67100966Siwasaki * substantial portion of the Covered Code or modification must reproduce the
68100966Siwasaki * above Copyright Notice, and the following Disclaimer and Export Compliance
69100966Siwasaki * provision in the documentation and/or other materials provided with the
70100966Siwasaki * distribution.
71100966Siwasaki *
72100966Siwasaki * 3.4. Intel retains all right, title, and interest in and to the Original
73100966Siwasaki * Intel Code.
74100966Siwasaki *
75100966Siwasaki * 3.5. Neither the name Intel nor any other trademark owned or controlled by
76100966Siwasaki * Intel shall be used in advertising or otherwise to promote the sale, use or
77100966Siwasaki * other dealings in products derived from or relating to the Covered Code
78100966Siwasaki * without prior written authorization from Intel.
79100966Siwasaki *
80100966Siwasaki * 4. Disclaimer and Export Compliance
81100966Siwasaki *
82100966Siwasaki * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
83100966Siwasaki * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
84100966Siwasaki * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
85100966Siwasaki * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
86100966Siwasaki * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
87100966Siwasaki * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
88100966Siwasaki * PARTICULAR PURPOSE.
89100966Siwasaki *
90100966Siwasaki * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
91100966Siwasaki * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
92100966Siwasaki * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
93100966Siwasaki * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
94100966Siwasaki * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
95100966Siwasaki * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
96100966Siwasaki * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
97100966Siwasaki * LIMITED REMEDY.
98100966Siwasaki *
99100966Siwasaki * 4.3. Licensee shall not export, either directly or indirectly, any of this
100100966Siwasaki * software or system incorporating such software without first obtaining any
101100966Siwasaki * required license or other approval from the U. S. Department of Commerce or
102100966Siwasaki * any other agency or department of the United States Government.  In the
103100966Siwasaki * event Licensee exports any such software from the United States or
104100966Siwasaki * re-exports any such software from a foreign destination, Licensee shall
105100966Siwasaki * ensure that the distribution and export/re-export of the software is in
106100966Siwasaki * compliance with all laws, regulations, orders, or other restrictions of the
107100966Siwasaki * U.S. Export Administration Regulations. Licensee agrees that neither it nor
108100966Siwasaki * any of its subsidiaries will export/re-export any technical data, process,
109100966Siwasaki * software, or service, directly or indirectly, to any country for which the
110100966Siwasaki * United States government or any agency thereof requires an export license,
111100966Siwasaki * other governmental approval, or letter of assurance, without first obtaining
112100966Siwasaki * such license, approval or letter.
113100966Siwasaki *
114100966Siwasaki *****************************************************************************/
115100966Siwasaki
116100966Siwasaki#ifndef __ACDISASM_H__
117100966Siwasaki#define __ACDISASM_H__
118100966Siwasaki
119193251Sjkim#include "amlresrc.h"
120100966Siwasaki
121100966Siwasaki
122100966Siwasaki#define BLOCK_NONE              0
123100966Siwasaki#define BLOCK_PAREN             1
124100966Siwasaki#define BLOCK_BRACE             2
125100966Siwasaki#define BLOCK_COMMA_LIST        4
126167802Sjkim#define ACPI_DEFAULT_RESNAME    *(UINT32 *) "__RD"
127100966Siwasaki
128128212Snjltypedef struct acpi_external_list
129128212Snjl{
130128212Snjl    char                        *Path;
131167802Sjkim    char                        *InternalPath;
132128212Snjl    struct acpi_external_list   *Next;
133167802Sjkim    UINT32                      Value;
134167802Sjkim    UINT16                      Length;
135167802Sjkim    UINT8                       Type;
136128212Snjl
137128212Snjl} ACPI_EXTERNAL_LIST;
138128212Snjl
139128212Snjlextern ACPI_EXTERNAL_LIST       *AcpiGbl_ExternalList;
140151937Sjkim
141167802Sjkimtypedef const struct acpi_dmtable_info
142167802Sjkim{
143167802Sjkim    UINT8                       Opcode;
144167802Sjkim    UINT8                       Offset;
145167802Sjkim    char                        *Name;
146100966Siwasaki
147167802Sjkim} ACPI_DMTABLE_INFO;
148100966Siwasaki
149167802Sjkim/*
150167802Sjkim * Values for Opcode above.
151167802Sjkim * Note: 0-7 must not change, used as a flag shift value
152167802Sjkim */
153167802Sjkim#define ACPI_DMT_FLAG0                  0
154167802Sjkim#define ACPI_DMT_FLAG1                  1
155167802Sjkim#define ACPI_DMT_FLAG2                  2
156167802Sjkim#define ACPI_DMT_FLAG3                  3
157167802Sjkim#define ACPI_DMT_FLAG4                  4
158167802Sjkim#define ACPI_DMT_FLAG5                  5
159167802Sjkim#define ACPI_DMT_FLAG6                  6
160167802Sjkim#define ACPI_DMT_FLAG7                  7
161167802Sjkim#define ACPI_DMT_FLAGS0                 8
162167802Sjkim#define ACPI_DMT_FLAGS2                 9
163167802Sjkim#define ACPI_DMT_UINT8                  10
164167802Sjkim#define ACPI_DMT_UINT16                 11
165167802Sjkim#define ACPI_DMT_UINT24                 12
166167802Sjkim#define ACPI_DMT_UINT32                 13
167167802Sjkim#define ACPI_DMT_UINT56                 14
168167802Sjkim#define ACPI_DMT_UINT64                 15
169167802Sjkim#define ACPI_DMT_STRING                 16
170167802Sjkim#define ACPI_DMT_NAME4                  17
171167802Sjkim#define ACPI_DMT_NAME6                  18
172167802Sjkim#define ACPI_DMT_NAME8                  19
173167802Sjkim#define ACPI_DMT_CHKSUM                 20
174167802Sjkim#define ACPI_DMT_SPACEID                21
175167802Sjkim#define ACPI_DMT_GAS                    22
176193267Sjkim#define ACPI_DMT_ASF                    23
177193267Sjkim#define ACPI_DMT_DMAR                   24
178193267Sjkim#define ACPI_DMT_HEST                   25
179193267Sjkim#define ACPI_DMT_HESTNTFY               26
180193267Sjkim#define ACPI_DMT_HESTNTYP               27
181193267Sjkim#define ACPI_DMT_MADT                   28
182193267Sjkim#define ACPI_DMT_SRAT                   29
183193267Sjkim#define ACPI_DMT_EXIT                   30
184193267Sjkim#define ACPI_DMT_SIG                    31
185193267Sjkim#define ACPI_DMT_FADTPM                 32
186167802Sjkim
187167802Sjkimtypedef
188193267Sjkimvoid (*ACPI_DMTABLE_HANDLER) (
189167802Sjkim    ACPI_TABLE_HEADER       *Table);
190167802Sjkim
191167802Sjkimtypedef struct acpi_dmtable_data
192167802Sjkim{
193167802Sjkim    char                    *Signature;
194193267Sjkim    ACPI_DMTABLE_INFO       *TableInfo;
195193267Sjkim    ACPI_DMTABLE_HANDLER    TableHandler;
196167802Sjkim    char                    *Name;
197167802Sjkim
198167802Sjkim} ACPI_DMTABLE_DATA;
199167802Sjkim
200167802Sjkim
201100966Siwasakitypedef struct acpi_op_walk_info
202100966Siwasaki{
203100966Siwasaki    UINT32                  Level;
204167802Sjkim    UINT32                  LastLevel;
205167802Sjkim    UINT32                  Count;
206100966Siwasaki    UINT32                  BitOffset;
207167802Sjkim    UINT32                  Flags;
208151937Sjkim    ACPI_WALK_STATE         *WalkState;
209100966Siwasaki
210100966Siwasaki} ACPI_OP_WALK_INFO;
211100966Siwasaki
212100966Siwasakitypedef
213100966SiwasakiACPI_STATUS (*ASL_WALK_CALLBACK) (
214100966Siwasaki    ACPI_PARSE_OBJECT           *Op,
215100966Siwasaki    UINT32                      Level,
216100966Siwasaki    void                        *Context);
217100966Siwasaki
218167802Sjkimtypedef struct acpi_resource_tag
219167802Sjkim{
220167802Sjkim    UINT32                  BitIndex;
221167802Sjkim    char                    *Tag;
222100966Siwasaki
223167802Sjkim} ACPI_RESOURCE_TAG;
224167802Sjkim
225167802Sjkim/* Strings used for decoding flags to ASL keywords */
226167802Sjkim
227167802Sjkimextern const char               *AcpiGbl_WordDecode[];
228167802Sjkimextern const char               *AcpiGbl_IrqDecode[];
229167802Sjkimextern const char               *AcpiGbl_LockRule[];
230167802Sjkimextern const char               *AcpiGbl_AccessTypes[];
231167802Sjkimextern const char               *AcpiGbl_UpdateRules[];
232167802Sjkimextern const char               *AcpiGbl_MatchOps[];
233167802Sjkim
234167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf0[];
235167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf1[];
236167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf1a[];
237167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf2[];
238167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf2a[];
239167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf3[];
240167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf4[];
241167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsfHdr[];
242167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoBoot[];
243193267Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoBert[];
244167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoCpep[];
245167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoCpep0[];
246167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoDbgp[];
247167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmar[];
248167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmarHdr[];
249167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmarScope[];
250167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmar0[];
251167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmar1[];
252193267Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmar2[];
253167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoEcdt[];
254193267Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoEinj[];
255193267Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoEinj0[];
256193267Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoErst[];
257167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoFacs[];
258167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoFadt1[];
259167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoFadt2[];
260193267Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoFadt3[];
261167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoGas[];
262167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoHeader[];
263193267Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest[];
264193267Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest0[];
265193267Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest1[];
266193267Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest3[];
267193267Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest4[];
268193267Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest5[];
269193267Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest6[];
270193267Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest7[];
271193267Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest8[];
272193267Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest9[];
273193267Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoHestNotify[];
274167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoHpet[];
275167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt[];
276167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt0[];
277167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt1[];
278167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt2[];
279167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt3[];
280167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt4[];
281167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt5[];
282167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt6[];
283167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt7[];
284167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt8[];
285193267Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt9[];
286193267Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt10[];
287167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadtHdr[];
288167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoMcfg[];
289167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoMcfg0[];
290167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoRsdp1[];
291167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoRsdp2[];
292167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoSbst[];
293193267Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoSlic[];
294167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoSlit[];
295167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoSpcr[];
296167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoSpmi[];
297167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoSrat[];
298193267Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoSratHdr[];
299167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoSrat0[];
300167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoSrat1[];
301193267Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoSrat2[];
302167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoTcpa[];
303167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoWdrt[];
304167802Sjkim
305167802Sjkim
306100966Siwasaki/*
307167802Sjkim * dmtable
308167802Sjkim */
309167802Sjkimvoid
310167802SjkimAcpiDmDumpDataTable (
311167802Sjkim    ACPI_TABLE_HEADER       *Table);
312167802Sjkim
313193267SjkimACPI_STATUS
314167802SjkimAcpiDmDumpTable (
315167802Sjkim    UINT32                  TableLength,
316167802Sjkim    UINT32                  TableOffset,
317167802Sjkim    void                    *Table,
318167802Sjkim    UINT32                  SubTableLength,
319167802Sjkim    ACPI_DMTABLE_INFO        *Info);
320167802Sjkim
321167802Sjkimvoid
322167802SjkimAcpiDmLineHeader (
323167802Sjkim    UINT32                  Offset,
324167802Sjkim    UINT32                  ByteLength,
325167802Sjkim    char                    *Name);
326167802Sjkim
327167802Sjkimvoid
328167802SjkimAcpiDmLineHeader2 (
329167802Sjkim    UINT32                  Offset,
330167802Sjkim    UINT32                  ByteLength,
331167802Sjkim    char                    *Name,
332167802Sjkim    UINT32                  Value);
333167802Sjkim
334167802Sjkim
335167802Sjkim/*
336167802Sjkim * dmtbdump
337167802Sjkim */
338167802Sjkimvoid
339167802SjkimAcpiDmDumpAsf (
340167802Sjkim    ACPI_TABLE_HEADER       *Table);
341167802Sjkim
342167802Sjkimvoid
343167802SjkimAcpiDmDumpCpep (
344167802Sjkim    ACPI_TABLE_HEADER       *Table);
345167802Sjkim
346167802Sjkimvoid
347167802SjkimAcpiDmDumpDmar (
348167802Sjkim    ACPI_TABLE_HEADER       *Table);
349167802Sjkim
350167802Sjkimvoid
351193267SjkimAcpiDmDumpEinj (
352193267Sjkim    ACPI_TABLE_HEADER       *Table);
353193267Sjkim
354193267Sjkimvoid
355193267SjkimAcpiDmDumpErst (
356193267Sjkim    ACPI_TABLE_HEADER       *Table);
357193267Sjkim
358193267Sjkimvoid
359167802SjkimAcpiDmDumpFadt (
360167802Sjkim    ACPI_TABLE_HEADER       *Table);
361167802Sjkim
362167802Sjkimvoid
363193267SjkimAcpiDmDumpHest (
364167802Sjkim    ACPI_TABLE_HEADER       *Table);
365167802Sjkim
366167802Sjkimvoid
367167802SjkimAcpiDmDumpMcfg (
368167802Sjkim    ACPI_TABLE_HEADER       *Table);
369167802Sjkim
370167802Sjkimvoid
371167802SjkimAcpiDmDumpMadt (
372167802Sjkim    ACPI_TABLE_HEADER       *Table);
373167802Sjkim
374167802SjkimUINT32
375167802SjkimAcpiDmDumpRsdp (
376167802Sjkim    ACPI_TABLE_HEADER       *Table);
377167802Sjkim
378167802Sjkimvoid
379167802SjkimAcpiDmDumpRsdt (
380167802Sjkim    ACPI_TABLE_HEADER       *Table);
381167802Sjkim
382167802Sjkimvoid
383167802SjkimAcpiDmDumpSlit (
384167802Sjkim    ACPI_TABLE_HEADER       *Table);
385167802Sjkim
386167802Sjkimvoid
387193267SjkimAcpiDmDumpSrat (
388193267Sjkim    ACPI_TABLE_HEADER       *Table);
389193267Sjkim
390193267Sjkimvoid
391167802SjkimAcpiDmDumpXsdt (
392167802Sjkim    ACPI_TABLE_HEADER       *Table);
393167802Sjkim
394167802Sjkim
395167802Sjkim/*
396100966Siwasaki * dmwalk
397100966Siwasaki */
398100966Siwasakivoid
399100966SiwasakiAcpiDmDisassemble (
400100966Siwasaki    ACPI_WALK_STATE         *WalkState,
401100966Siwasaki    ACPI_PARSE_OBJECT       *Origin,
402100966Siwasaki    UINT32                  NumOpcodes);
403100966Siwasaki
404167802Sjkimvoid
405167802SjkimAcpiDmWalkParseTree (
406167802Sjkim    ACPI_PARSE_OBJECT       *Op,
407167802Sjkim    ASL_WALK_CALLBACK       DescendingCallback,
408167802Sjkim    ASL_WALK_CALLBACK       AscendingCallback,
409167802Sjkim    void                    *Context);
410100966Siwasaki
411167802Sjkim
412151937Sjkim/*
413151937Sjkim * dmopcode
414151937Sjkim */
415100966Siwasakivoid
416100966SiwasakiAcpiDmDisassembleOneOp (
417100966Siwasaki    ACPI_WALK_STATE         *WalkState,
418102550Siwasaki    ACPI_OP_WALK_INFO       *Info,
419100966Siwasaki    ACPI_PARSE_OBJECT       *Op);
420100966Siwasaki
421100966Siwasakivoid
422100966SiwasakiAcpiDmDecodeInternalObject (
423100966Siwasaki    ACPI_OPERAND_OBJECT     *ObjDesc);
424100966Siwasaki
425100966SiwasakiUINT32
426100966SiwasakiAcpiDmListType (
427100966Siwasaki    ACPI_PARSE_OBJECT       *Op);
428100966Siwasaki
429100966Siwasakivoid
430100966SiwasakiAcpiDmMethodFlags (
431100966Siwasaki    ACPI_PARSE_OBJECT       *Op);
432100966Siwasaki
433100966Siwasakivoid
434100966SiwasakiAcpiDmFieldFlags (
435100966Siwasaki    ACPI_PARSE_OBJECT       *Op);
436100966Siwasaki
437100966Siwasakivoid
438100966SiwasakiAcpiDmAddressSpace (
439100966Siwasaki    UINT8                   SpaceId);
440100966Siwasaki
441100966Siwasakivoid
442100966SiwasakiAcpiDmRegionFlags (
443100966Siwasaki    ACPI_PARSE_OBJECT       *Op);
444100966Siwasaki
445100966Siwasakivoid
446100966SiwasakiAcpiDmMatchOp (
447100966Siwasaki    ACPI_PARSE_OBJECT       *Op);
448100966Siwasaki
449100966SiwasakiBOOLEAN
450100966SiwasakiAcpiDmCommaIfListMember (
451100966Siwasaki    ACPI_PARSE_OBJECT       *Op);
452100966Siwasaki
453102550Siwasakivoid
454100966SiwasakiAcpiDmCommaIfFieldMember (
455100966Siwasaki    ACPI_PARSE_OBJECT       *Op);
456100966Siwasaki
457100966Siwasaki
458102550Siwasaki/*
459151937Sjkim * dmnames
460117521Snjl */
461151937SjkimUINT32
462151937SjkimAcpiDmDumpName (
463193267Sjkim    UINT32                  Name);
464117521Snjl
465151937SjkimACPI_STATUS
466151937SjkimAcpiPsDisplayObjectPathname (
467151937Sjkim    ACPI_WALK_STATE         *WalkState,
468151937Sjkim    ACPI_PARSE_OBJECT       *Op);
469151937Sjkim
470117521Snjlvoid
471151937SjkimAcpiDmNamestring (
472151937Sjkim    char                    *Name);
473117521Snjl
474151937Sjkim
475151937Sjkim/*
476151937Sjkim * dmobject
477151937Sjkim */
478117521Snjlvoid
479117521SnjlAcpiDmDisplayInternalObject (
480117521Snjl    ACPI_OPERAND_OBJECT     *ObjDesc,
481117521Snjl    ACPI_WALK_STATE         *WalkState);
482117521Snjl
483117521Snjlvoid
484117521SnjlAcpiDmDisplayArguments (
485117521Snjl    ACPI_WALK_STATE         *WalkState);
486117521Snjl
487117521Snjlvoid
488117521SnjlAcpiDmDisplayLocals (
489117521Snjl    ACPI_WALK_STATE         *WalkState);
490117521Snjl
491117521Snjlvoid
492117521SnjlAcpiDmDumpMethodInfo (
493117521Snjl    ACPI_STATUS             Status,
494117521Snjl    ACPI_WALK_STATE         *WalkState,
495117521Snjl    ACPI_PARSE_OBJECT       *Op);
496117521Snjl
497117521Snjl
498117521Snjl/*
499100966Siwasaki * dmbuffer
500100966Siwasaki */
501151937Sjkimvoid
502151937SjkimAcpiDmDisasmByteList (
503151937Sjkim    UINT32                  Level,
504151937Sjkim    UINT8                   *ByteData,
505151937Sjkim    UINT32                  ByteCount);
506100966Siwasaki
507100966Siwasakivoid
508151937SjkimAcpiDmByteList (
509151937Sjkim    ACPI_OP_WALK_INFO       *Info,
510100966Siwasaki    ACPI_PARSE_OBJECT       *Op);
511100966Siwasaki
512100966Siwasakivoid
513151937SjkimAcpiDmIsEisaId (
514151937Sjkim    ACPI_PARSE_OBJECT       *Op);
515151937Sjkim
516151937Sjkimvoid
517100966SiwasakiAcpiDmEisaId (
518100966Siwasaki    UINT32                  EncodedId);
519100966Siwasaki
520100966SiwasakiBOOLEAN
521100966SiwasakiAcpiDmIsUnicodeBuffer (
522100966Siwasaki    ACPI_PARSE_OBJECT       *Op);
523100966Siwasaki
524100966SiwasakiBOOLEAN
525100966SiwasakiAcpiDmIsStringBuffer (
526100966Siwasaki    ACPI_PARSE_OBJECT       *Op);
527100966Siwasaki
528100966Siwasaki
529100966Siwasaki/*
530100966Siwasaki * dmresrc
531100966Siwasaki */
532151937Sjkimvoid
533151937SjkimAcpiDmDumpInteger8 (
534151937Sjkim    UINT8                   Value,
535151937Sjkim    char                    *Name);
536100966Siwasaki
537100966Siwasakivoid
538151937SjkimAcpiDmDumpInteger16 (
539151937Sjkim    UINT16                  Value,
540151937Sjkim    char                    *Name);
541100966Siwasaki
542100966Siwasakivoid
543151937SjkimAcpiDmDumpInteger32 (
544151937Sjkim    UINT32                  Value,
545151937Sjkim    char                    *Name);
546100966Siwasaki
547100966Siwasakivoid
548151937SjkimAcpiDmDumpInteger64 (
549151937Sjkim    UINT64                  Value,
550151937Sjkim    char                    *Name);
551151937Sjkim
552151937Sjkimvoid
553151937SjkimAcpiDmResourceTemplate (
554102550Siwasaki    ACPI_OP_WALK_INFO       *Info,
555167802Sjkim    ACPI_PARSE_OBJECT       *Op,
556100966Siwasaki    UINT8                   *ByteData,
557100966Siwasaki    UINT32                  ByteCount);
558100966Siwasaki
559167802SjkimACPI_STATUS
560151937SjkimAcpiDmIsResourceTemplate (
561100966Siwasaki    ACPI_PARSE_OBJECT       *Op);
562100966Siwasaki
563100966Siwasakivoid
564100966SiwasakiAcpiDmIndent (
565100966Siwasaki    UINT32                  Level);
566100966Siwasaki
567100966Siwasakivoid
568100966SiwasakiAcpiDmBitList (
569100966Siwasaki    UINT16                  Mask);
570100966Siwasaki
571107325Siwasakivoid
572107325SiwasakiAcpiDmDecodeAttribute (
573107325Siwasaki    UINT8                   Attribute);
574100966Siwasaki
575167802Sjkimvoid
576167802SjkimAcpiDmDescriptorName (
577167802Sjkim    void);
578151937Sjkim
579167802Sjkim
580100966Siwasaki/*
581100966Siwasaki * dmresrcl
582100966Siwasaki */
583100966Siwasakivoid
584100966SiwasakiAcpiDmWordDescriptor (
585151937Sjkim    AML_RESOURCE            *Resource,
586100966Siwasaki    UINT32                  Length,
587100966Siwasaki    UINT32                  Level);
588100966Siwasaki
589100966Siwasakivoid
590100966SiwasakiAcpiDmDwordDescriptor (
591151937Sjkim    AML_RESOURCE            *Resource,
592100966Siwasaki    UINT32                  Length,
593100966Siwasaki    UINT32                  Level);
594100966Siwasaki
595100966Siwasakivoid
596151937SjkimAcpiDmExtendedDescriptor (
597151937Sjkim    AML_RESOURCE            *Resource,
598151937Sjkim    UINT32                  Length,
599151937Sjkim    UINT32                  Level);
600151937Sjkim
601151937Sjkimvoid
602100966SiwasakiAcpiDmQwordDescriptor (
603151937Sjkim    AML_RESOURCE            *Resource,
604100966Siwasaki    UINT32                  Length,
605100966Siwasaki    UINT32                  Level);
606100966Siwasaki
607100966Siwasakivoid
608100966SiwasakiAcpiDmMemory24Descriptor (
609151937Sjkim    AML_RESOURCE            *Resource,
610100966Siwasaki    UINT32                  Length,
611100966Siwasaki    UINT32                  Level);
612100966Siwasaki
613100966Siwasakivoid
614100966SiwasakiAcpiDmMemory32Descriptor (
615151937Sjkim    AML_RESOURCE            *Resource,
616100966Siwasaki    UINT32                  Length,
617100966Siwasaki    UINT32                  Level);
618100966Siwasaki
619100966Siwasakivoid
620151937SjkimAcpiDmFixedMemory32Descriptor (
621151937Sjkim    AML_RESOURCE            *Resource,
622100966Siwasaki    UINT32                  Length,
623100966Siwasaki    UINT32                  Level);
624100966Siwasaki
625100966Siwasakivoid
626100966SiwasakiAcpiDmGenericRegisterDescriptor (
627151937Sjkim    AML_RESOURCE            *Resource,
628100966Siwasaki    UINT32                  Length,
629100966Siwasaki    UINT32                  Level);
630100966Siwasaki
631100966Siwasakivoid
632100966SiwasakiAcpiDmInterruptDescriptor (
633151937Sjkim    AML_RESOURCE            *Resource,
634100966Siwasaki    UINT32                  Length,
635100966Siwasaki    UINT32                  Level);
636100966Siwasaki
637100966Siwasakivoid
638100966SiwasakiAcpiDmVendorLargeDescriptor (
639151937Sjkim    AML_RESOURCE            *Resource,
640100966Siwasaki    UINT32                  Length,
641100966Siwasaki    UINT32                  Level);
642100966Siwasaki
643151937Sjkimvoid
644151937SjkimAcpiDmVendorCommon (
645151937Sjkim    char                    *Name,
646151937Sjkim    UINT8                   *ByteData,
647151937Sjkim    UINT32                  Length,
648151937Sjkim    UINT32                  Level);
649100966Siwasaki
650151937Sjkim
651100966Siwasaki/*
652100966Siwasaki * dmresrcs
653100966Siwasaki */
654100966Siwasakivoid
655100966SiwasakiAcpiDmIrqDescriptor (
656151937Sjkim    AML_RESOURCE            *Resource,
657100966Siwasaki    UINT32                  Length,
658100966Siwasaki    UINT32                  Level);
659100966Siwasaki
660100966Siwasakivoid
661100966SiwasakiAcpiDmDmaDescriptor (
662151937Sjkim    AML_RESOURCE            *Resource,
663100966Siwasaki    UINT32                  Length,
664100966Siwasaki    UINT32                  Level);
665100966Siwasaki
666100966Siwasakivoid
667100966SiwasakiAcpiDmIoDescriptor (
668151937Sjkim    AML_RESOURCE            *Resource,
669100966Siwasaki    UINT32                  Length,
670100966Siwasaki    UINT32                  Level);
671100966Siwasaki
672100966Siwasakivoid
673100966SiwasakiAcpiDmFixedIoDescriptor (
674151937Sjkim    AML_RESOURCE            *Resource,
675100966Siwasaki    UINT32                  Length,
676100966Siwasaki    UINT32                  Level);
677100966Siwasaki
678100966Siwasakivoid
679100966SiwasakiAcpiDmStartDependentDescriptor (
680151937Sjkim    AML_RESOURCE            *Resource,
681100966Siwasaki    UINT32                  Length,
682100966Siwasaki    UINT32                  Level);
683100966Siwasaki
684100966Siwasakivoid
685100966SiwasakiAcpiDmEndDependentDescriptor (
686151937Sjkim    AML_RESOURCE            *Resource,
687100966Siwasaki    UINT32                  Length,
688100966Siwasaki    UINT32                  Level);
689100966Siwasaki
690100966Siwasakivoid
691100966SiwasakiAcpiDmVendorSmallDescriptor (
692151937Sjkim    AML_RESOURCE            *Resource,
693100966Siwasaki    UINT32                  Length,
694100966Siwasaki    UINT32                  Level);
695100966Siwasaki
696100966Siwasaki
697128212Snjl/*
698128212Snjl * dmutils
699128212Snjl */
700128212Snjlvoid
701128212SnjlAcpiDmAddToExternalList (
702167802Sjkim    char                    *Path,
703167802Sjkim    UINT8                   Type,
704167802Sjkim    UINT32                  Value);
705128212Snjl
706167802Sjkim/*
707167802Sjkim * dmrestag
708167802Sjkim */
709167802Sjkimvoid
710167802SjkimAcpiDmFindResources (
711167802Sjkim    ACPI_PARSE_OBJECT       *Root);
712167802Sjkim
713167802Sjkimvoid
714167802SjkimAcpiDmCheckResourceReference (
715167802Sjkim    ACPI_PARSE_OBJECT       *Op,
716167802Sjkim    ACPI_WALK_STATE         *WalkState);
717167802Sjkim
718100966Siwasaki#endif  /* __ACDISASM_H__ */
719