acdisasm.h revision 209746
1100966Siwasaki/******************************************************************************
2100966Siwasaki *
3100966Siwasaki * Name: acdisasm.h - AML disassembler
4100966Siwasaki *
5100966Siwasaki *****************************************************************************/
6100966Siwasaki
7100966Siwasaki/******************************************************************************
8100966Siwasaki *
9100966Siwasaki * 1. Copyright Notice
10100966Siwasaki *
11202771Sjkim * Some or all of this work - Copyright (c) 1999 - 2010, 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
119193341Sjkim#include <contrib/dev/acpica/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
128128212Snjl
129167802Sjkimtypedef const struct acpi_dmtable_info
130167802Sjkim{
131167802Sjkim    UINT8                       Opcode;
132167802Sjkim    UINT8                       Offset;
133167802Sjkim    char                        *Name;
134209746Sjkim    UINT8                       Flags;
135100966Siwasaki
136167802Sjkim} ACPI_DMTABLE_INFO;
137100966Siwasaki
138209746Sjkim#define DT_LENGTH                       0x01    /* Field is a subtable length */
139209746Sjkim#define DT_FLAG                         0x02    /* Field is a flag value */
140209746Sjkim#define DT_NON_ZERO                     0x04    /* Field must be non-zero */
141209746Sjkim
142209746Sjkim/* TBD: Not used at this time */
143209746Sjkim
144209746Sjkim#define DT_OPTIONAL                     0x08
145209746Sjkim#define DT_COUNT                        0x10
146209746Sjkim
147167802Sjkim/*
148167802Sjkim * Values for Opcode above.
149167802Sjkim * Note: 0-7 must not change, used as a flag shift value
150167802Sjkim */
151167802Sjkim#define ACPI_DMT_FLAG0                  0
152167802Sjkim#define ACPI_DMT_FLAG1                  1
153167802Sjkim#define ACPI_DMT_FLAG2                  2
154167802Sjkim#define ACPI_DMT_FLAG3                  3
155167802Sjkim#define ACPI_DMT_FLAG4                  4
156167802Sjkim#define ACPI_DMT_FLAG5                  5
157167802Sjkim#define ACPI_DMT_FLAG6                  6
158167802Sjkim#define ACPI_DMT_FLAG7                  7
159167802Sjkim#define ACPI_DMT_FLAGS0                 8
160167802Sjkim#define ACPI_DMT_FLAGS2                 9
161167802Sjkim#define ACPI_DMT_UINT8                  10
162167802Sjkim#define ACPI_DMT_UINT16                 11
163167802Sjkim#define ACPI_DMT_UINT24                 12
164167802Sjkim#define ACPI_DMT_UINT32                 13
165167802Sjkim#define ACPI_DMT_UINT56                 14
166167802Sjkim#define ACPI_DMT_UINT64                 15
167167802Sjkim#define ACPI_DMT_STRING                 16
168167802Sjkim#define ACPI_DMT_NAME4                  17
169167802Sjkim#define ACPI_DMT_NAME6                  18
170167802Sjkim#define ACPI_DMT_NAME8                  19
171167802Sjkim#define ACPI_DMT_CHKSUM                 20
172167802Sjkim#define ACPI_DMT_SPACEID                21
173167802Sjkim#define ACPI_DMT_GAS                    22
174193267Sjkim#define ACPI_DMT_ASF                    23
175193267Sjkim#define ACPI_DMT_DMAR                   24
176193267Sjkim#define ACPI_DMT_HEST                   25
177193267Sjkim#define ACPI_DMT_HESTNTFY               26
178193267Sjkim#define ACPI_DMT_HESTNTYP               27
179193267Sjkim#define ACPI_DMT_MADT                   28
180193267Sjkim#define ACPI_DMT_SRAT                   29
181193267Sjkim#define ACPI_DMT_EXIT                   30
182193267Sjkim#define ACPI_DMT_SIG                    31
183193267Sjkim#define ACPI_DMT_FADTPM                 32
184197104Sjkim#define ACPI_DMT_BUF16                  33
185197104Sjkim#define ACPI_DMT_IVRS                   34
186209746Sjkim#define ACPI_DMT_BUFFER                 35
187209746Sjkim#define ACPI_DMT_PCI_PATH               36
188209746Sjkim#define ACPI_DMT_EINJACT                37
189209746Sjkim#define ACPI_DMT_EINJINST               38
190209746Sjkim#define ACPI_DMT_ERSTACT                39
191209746Sjkim#define ACPI_DMT_ERSTINST               40
192167802Sjkim
193197104Sjkim
194167802Sjkimtypedef
195193267Sjkimvoid (*ACPI_DMTABLE_HANDLER) (
196167802Sjkim    ACPI_TABLE_HEADER       *Table);
197167802Sjkim
198209746Sjkimtypedef
199209746SjkimACPI_STATUS (*ACPI_CMTABLE_HANDLER) (
200209746Sjkim    void                    **PFieldList);
201209746Sjkim
202167802Sjkimtypedef struct acpi_dmtable_data
203167802Sjkim{
204167802Sjkim    char                    *Signature;
205193267Sjkim    ACPI_DMTABLE_INFO       *TableInfo;
206193267Sjkim    ACPI_DMTABLE_HANDLER    TableHandler;
207209746Sjkim    ACPI_CMTABLE_HANDLER    CmTableHandler;
208209746Sjkim    const unsigned char     *Template;
209167802Sjkim    char                    *Name;
210167802Sjkim
211167802Sjkim} ACPI_DMTABLE_DATA;
212167802Sjkim
213167802Sjkim
214100966Siwasakitypedef struct acpi_op_walk_info
215100966Siwasaki{
216100966Siwasaki    UINT32                  Level;
217167802Sjkim    UINT32                  LastLevel;
218167802Sjkim    UINT32                  Count;
219100966Siwasaki    UINT32                  BitOffset;
220167802Sjkim    UINT32                  Flags;
221151937Sjkim    ACPI_WALK_STATE         *WalkState;
222100966Siwasaki
223100966Siwasaki} ACPI_OP_WALK_INFO;
224100966Siwasaki
225209746Sjkim/*
226209746Sjkim * TBD - another copy of this is in asltypes.h, fix
227209746Sjkim */
228209746Sjkim#ifndef ASL_WALK_CALLBACK_DEFINED
229100966Siwasakitypedef
230100966SiwasakiACPI_STATUS (*ASL_WALK_CALLBACK) (
231100966Siwasaki    ACPI_PARSE_OBJECT           *Op,
232100966Siwasaki    UINT32                      Level,
233100966Siwasaki    void                        *Context);
234209746Sjkim#define ASL_WALK_CALLBACK_DEFINED
235209746Sjkim#endif
236100966Siwasaki
237209746Sjkim
238167802Sjkimtypedef struct acpi_resource_tag
239167802Sjkim{
240167802Sjkim    UINT32                  BitIndex;
241167802Sjkim    char                    *Tag;
242100966Siwasaki
243167802Sjkim} ACPI_RESOURCE_TAG;
244167802Sjkim
245167802Sjkim/* Strings used for decoding flags to ASL keywords */
246167802Sjkim
247167802Sjkimextern const char               *AcpiGbl_WordDecode[];
248167802Sjkimextern const char               *AcpiGbl_IrqDecode[];
249167802Sjkimextern const char               *AcpiGbl_LockRule[];
250167802Sjkimextern const char               *AcpiGbl_AccessTypes[];
251167802Sjkimextern const char               *AcpiGbl_UpdateRules[];
252167802Sjkimextern const char               *AcpiGbl_MatchOps[];
253167802Sjkim
254167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf0[];
255167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf1[];
256167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf1a[];
257167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf2[];
258167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf2a[];
259167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf3[];
260167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf4[];
261167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsfHdr[];
262167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoBoot[];
263193267Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoBert[];
264167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoCpep[];
265167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoCpep0[];
266167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoDbgp[];
267167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmar[];
268167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmarHdr[];
269167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmarScope[];
270167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmar0[];
271167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmar1[];
272193267Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmar2[];
273197104Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmar3[];
274167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoEcdt[];
275193267Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoEinj[];
276193267Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoEinj0[];
277193267Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoErst[];
278209746Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoErst0[];
279167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoFacs[];
280167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoFadt1[];
281167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoFadt2[];
282193267Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoFadt3[];
283167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoGas[];
284167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoHeader[];
285193267Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest[];
286193267Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest0[];
287193267Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest1[];
288197104Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest2[];
289193267Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest6[];
290193267Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest7[];
291193267Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest8[];
292193267Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest9[];
293193267Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoHestNotify[];
294197104Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoHestBank[];
295167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoHpet[];
296197104Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs[];
297197104Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs0[];
298197104Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs1[];
299197104Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs4[];
300197104Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs8a[];
301197104Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs8b[];
302197104Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs8c[];
303197104Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrsHdr[];
304167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt[];
305167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt0[];
306167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt1[];
307167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt2[];
308167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt3[];
309167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt4[];
310167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt5[];
311167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt6[];
312167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt7[];
313167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt8[];
314193267Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt9[];
315193267Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt10[];
316167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadtHdr[];
317167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoMcfg[];
318167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoMcfg0[];
319204773Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoMchi[];
320197104Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoMsct[];
321197104Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoMsct0[];
322167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoRsdp1[];
323167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoRsdp2[];
324167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoSbst[];
325193267Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoSlic[];
326167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoSlit[];
327167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoSpcr[];
328167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoSpmi[];
329167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoSrat[];
330193267Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoSratHdr[];
331167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoSrat0[];
332167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoSrat1[];
333193267Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoSrat2[];
334167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoTcpa[];
335197104Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoUefi[];
336197104Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoWaet[];
337197104Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoWdat[];
338197104Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoWdat0[];
339209746Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoWddt[];
340167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoWdrt[];
341167802Sjkim
342167802Sjkim
343100966Siwasaki/*
344167802Sjkim * dmtable
345167802Sjkim */
346209746Sjkimextern ACPI_DMTABLE_DATA        AcpiDmTableData[];
347209746Sjkim
348209746SjkimUINT8
349209746SjkimAcpiDmGenerateChecksum (
350209746Sjkim    void                    *Table,
351209746Sjkim    UINT32                  Length,
352209746Sjkim    UINT8                   OriginalChecksum);
353209746Sjkim
354209746SjkimACPI_DMTABLE_DATA *
355209746SjkimAcpiDmGetTableData (
356209746Sjkim    char                    *Signature);
357209746Sjkim
358167802Sjkimvoid
359167802SjkimAcpiDmDumpDataTable (
360167802Sjkim    ACPI_TABLE_HEADER       *Table);
361167802Sjkim
362193267SjkimACPI_STATUS
363167802SjkimAcpiDmDumpTable (
364167802Sjkim    UINT32                  TableLength,
365167802Sjkim    UINT32                  TableOffset,
366167802Sjkim    void                    *Table,
367167802Sjkim    UINT32                  SubTableLength,
368167802Sjkim    ACPI_DMTABLE_INFO        *Info);
369167802Sjkim
370167802Sjkimvoid
371167802SjkimAcpiDmLineHeader (
372167802Sjkim    UINT32                  Offset,
373167802Sjkim    UINT32                  ByteLength,
374167802Sjkim    char                    *Name);
375167802Sjkim
376167802Sjkimvoid
377167802SjkimAcpiDmLineHeader2 (
378167802Sjkim    UINT32                  Offset,
379167802Sjkim    UINT32                  ByteLength,
380167802Sjkim    char                    *Name,
381167802Sjkim    UINT32                  Value);
382167802Sjkim
383167802Sjkim
384167802Sjkim/*
385167802Sjkim * dmtbdump
386167802Sjkim */
387167802Sjkimvoid
388167802SjkimAcpiDmDumpAsf (
389167802Sjkim    ACPI_TABLE_HEADER       *Table);
390167802Sjkim
391167802Sjkimvoid
392167802SjkimAcpiDmDumpCpep (
393167802Sjkim    ACPI_TABLE_HEADER       *Table);
394167802Sjkim
395167802Sjkimvoid
396167802SjkimAcpiDmDumpDmar (
397167802Sjkim    ACPI_TABLE_HEADER       *Table);
398167802Sjkim
399167802Sjkimvoid
400193267SjkimAcpiDmDumpEinj (
401193267Sjkim    ACPI_TABLE_HEADER       *Table);
402193267Sjkim
403193267Sjkimvoid
404193267SjkimAcpiDmDumpErst (
405193267Sjkim    ACPI_TABLE_HEADER       *Table);
406193267Sjkim
407193267Sjkimvoid
408167802SjkimAcpiDmDumpFadt (
409167802Sjkim    ACPI_TABLE_HEADER       *Table);
410167802Sjkim
411167802Sjkimvoid
412193267SjkimAcpiDmDumpHest (
413167802Sjkim    ACPI_TABLE_HEADER       *Table);
414167802Sjkim
415167802Sjkimvoid
416197104SjkimAcpiDmDumpIvrs (
417197104Sjkim    ACPI_TABLE_HEADER       *Table);
418197104Sjkim
419197104Sjkimvoid
420167802SjkimAcpiDmDumpMcfg (
421167802Sjkim    ACPI_TABLE_HEADER       *Table);
422167802Sjkim
423167802Sjkimvoid
424167802SjkimAcpiDmDumpMadt (
425167802Sjkim    ACPI_TABLE_HEADER       *Table);
426167802Sjkim
427197104Sjkimvoid
428197104SjkimAcpiDmDumpMsct (
429197104Sjkim    ACPI_TABLE_HEADER       *Table);
430197104Sjkim
431167802SjkimUINT32
432167802SjkimAcpiDmDumpRsdp (
433167802Sjkim    ACPI_TABLE_HEADER       *Table);
434167802Sjkim
435167802Sjkimvoid
436167802SjkimAcpiDmDumpRsdt (
437167802Sjkim    ACPI_TABLE_HEADER       *Table);
438167802Sjkim
439167802Sjkimvoid
440167802SjkimAcpiDmDumpSlit (
441167802Sjkim    ACPI_TABLE_HEADER       *Table);
442167802Sjkim
443167802Sjkimvoid
444193267SjkimAcpiDmDumpSrat (
445193267Sjkim    ACPI_TABLE_HEADER       *Table);
446193267Sjkim
447193267Sjkimvoid
448197104SjkimAcpiDmDumpWdat (
449197104Sjkim    ACPI_TABLE_HEADER       *Table);
450197104Sjkim
451197104Sjkimvoid
452167802SjkimAcpiDmDumpXsdt (
453167802Sjkim    ACPI_TABLE_HEADER       *Table);
454167802Sjkim
455167802Sjkim
456167802Sjkim/*
457100966Siwasaki * dmwalk
458100966Siwasaki */
459100966Siwasakivoid
460100966SiwasakiAcpiDmDisassemble (
461100966Siwasaki    ACPI_WALK_STATE         *WalkState,
462100966Siwasaki    ACPI_PARSE_OBJECT       *Origin,
463100966Siwasaki    UINT32                  NumOpcodes);
464100966Siwasaki
465167802Sjkimvoid
466167802SjkimAcpiDmWalkParseTree (
467167802Sjkim    ACPI_PARSE_OBJECT       *Op,
468167802Sjkim    ASL_WALK_CALLBACK       DescendingCallback,
469167802Sjkim    ASL_WALK_CALLBACK       AscendingCallback,
470167802Sjkim    void                    *Context);
471100966Siwasaki
472167802Sjkim
473151937Sjkim/*
474151937Sjkim * dmopcode
475151937Sjkim */
476100966Siwasakivoid
477100966SiwasakiAcpiDmDisassembleOneOp (
478100966Siwasaki    ACPI_WALK_STATE         *WalkState,
479102550Siwasaki    ACPI_OP_WALK_INFO       *Info,
480100966Siwasaki    ACPI_PARSE_OBJECT       *Op);
481100966Siwasaki
482100966Siwasakivoid
483100966SiwasakiAcpiDmDecodeInternalObject (
484100966Siwasaki    ACPI_OPERAND_OBJECT     *ObjDesc);
485100966Siwasaki
486100966SiwasakiUINT32
487100966SiwasakiAcpiDmListType (
488100966Siwasaki    ACPI_PARSE_OBJECT       *Op);
489100966Siwasaki
490100966Siwasakivoid
491100966SiwasakiAcpiDmMethodFlags (
492100966Siwasaki    ACPI_PARSE_OBJECT       *Op);
493100966Siwasaki
494100966Siwasakivoid
495100966SiwasakiAcpiDmFieldFlags (
496100966Siwasaki    ACPI_PARSE_OBJECT       *Op);
497100966Siwasaki
498100966Siwasakivoid
499100966SiwasakiAcpiDmAddressSpace (
500100966Siwasaki    UINT8                   SpaceId);
501100966Siwasaki
502100966Siwasakivoid
503100966SiwasakiAcpiDmRegionFlags (
504100966Siwasaki    ACPI_PARSE_OBJECT       *Op);
505100966Siwasaki
506100966Siwasakivoid
507100966SiwasakiAcpiDmMatchOp (
508100966Siwasaki    ACPI_PARSE_OBJECT       *Op);
509100966Siwasaki
510100966Siwasaki
511102550Siwasaki/*
512151937Sjkim * dmnames
513117521Snjl */
514151937SjkimUINT32
515151937SjkimAcpiDmDumpName (
516193267Sjkim    UINT32                  Name);
517117521Snjl
518151937SjkimACPI_STATUS
519151937SjkimAcpiPsDisplayObjectPathname (
520151937Sjkim    ACPI_WALK_STATE         *WalkState,
521151937Sjkim    ACPI_PARSE_OBJECT       *Op);
522151937Sjkim
523117521Snjlvoid
524151937SjkimAcpiDmNamestring (
525151937Sjkim    char                    *Name);
526117521Snjl
527151937Sjkim
528151937Sjkim/*
529151937Sjkim * dmobject
530151937Sjkim */
531117521Snjlvoid
532117521SnjlAcpiDmDisplayInternalObject (
533117521Snjl    ACPI_OPERAND_OBJECT     *ObjDesc,
534117521Snjl    ACPI_WALK_STATE         *WalkState);
535117521Snjl
536117521Snjlvoid
537117521SnjlAcpiDmDisplayArguments (
538117521Snjl    ACPI_WALK_STATE         *WalkState);
539117521Snjl
540117521Snjlvoid
541117521SnjlAcpiDmDisplayLocals (
542117521Snjl    ACPI_WALK_STATE         *WalkState);
543117521Snjl
544117521Snjlvoid
545117521SnjlAcpiDmDumpMethodInfo (
546117521Snjl    ACPI_STATUS             Status,
547117521Snjl    ACPI_WALK_STATE         *WalkState,
548117521Snjl    ACPI_PARSE_OBJECT       *Op);
549117521Snjl
550117521Snjl
551117521Snjl/*
552100966Siwasaki * dmbuffer
553100966Siwasaki */
554151937Sjkimvoid
555151937SjkimAcpiDmDisasmByteList (
556151937Sjkim    UINT32                  Level,
557151937Sjkim    UINT8                   *ByteData,
558151937Sjkim    UINT32                  ByteCount);
559100966Siwasaki
560100966Siwasakivoid
561151937SjkimAcpiDmByteList (
562151937Sjkim    ACPI_OP_WALK_INFO       *Info,
563100966Siwasaki    ACPI_PARSE_OBJECT       *Op);
564100966Siwasaki
565100966Siwasakivoid
566151937SjkimAcpiDmIsEisaId (
567151937Sjkim    ACPI_PARSE_OBJECT       *Op);
568151937Sjkim
569151937Sjkimvoid
570100966SiwasakiAcpiDmEisaId (
571100966Siwasaki    UINT32                  EncodedId);
572100966Siwasaki
573100966SiwasakiBOOLEAN
574100966SiwasakiAcpiDmIsUnicodeBuffer (
575100966Siwasaki    ACPI_PARSE_OBJECT       *Op);
576100966Siwasaki
577100966SiwasakiBOOLEAN
578100966SiwasakiAcpiDmIsStringBuffer (
579100966Siwasaki    ACPI_PARSE_OBJECT       *Op);
580100966Siwasaki
581100966Siwasaki
582100966Siwasaki/*
583198237Sjkim * dmextern
584198237Sjkim */
585198237Sjkimvoid
586198237SjkimAcpiDmAddToExternalList (
587198237Sjkim    ACPI_PARSE_OBJECT       *Op,
588198237Sjkim    char                    *Path,
589198237Sjkim    UINT8                   Type,
590198237Sjkim    UINT32                  Value);
591198237Sjkim
592198237Sjkimvoid
593198237SjkimAcpiDmAddExternalsToNamespace (
594198237Sjkim    void);
595198237Sjkim
596198237SjkimUINT32
597198237SjkimAcpiDmGetExternalMethodCount (
598198237Sjkim    void);
599198237Sjkim
600198237Sjkimvoid
601198237SjkimAcpiDmClearExternalList (
602198237Sjkim    void);
603198237Sjkim
604198237Sjkimvoid
605198237SjkimAcpiDmEmitExternals (
606198237Sjkim    void);
607198237Sjkim
608198237Sjkim
609198237Sjkim/*
610100966Siwasaki * dmresrc
611100966Siwasaki */
612151937Sjkimvoid
613151937SjkimAcpiDmDumpInteger8 (
614151937Sjkim    UINT8                   Value,
615151937Sjkim    char                    *Name);
616100966Siwasaki
617100966Siwasakivoid
618151937SjkimAcpiDmDumpInteger16 (
619151937Sjkim    UINT16                  Value,
620151937Sjkim    char                    *Name);
621100966Siwasaki
622100966Siwasakivoid
623151937SjkimAcpiDmDumpInteger32 (
624151937Sjkim    UINT32                  Value,
625151937Sjkim    char                    *Name);
626100966Siwasaki
627100966Siwasakivoid
628151937SjkimAcpiDmDumpInteger64 (
629151937Sjkim    UINT64                  Value,
630151937Sjkim    char                    *Name);
631151937Sjkim
632151937Sjkimvoid
633151937SjkimAcpiDmResourceTemplate (
634102550Siwasaki    ACPI_OP_WALK_INFO       *Info,
635167802Sjkim    ACPI_PARSE_OBJECT       *Op,
636100966Siwasaki    UINT8                   *ByteData,
637100966Siwasaki    UINT32                  ByteCount);
638100966Siwasaki
639167802SjkimACPI_STATUS
640151937SjkimAcpiDmIsResourceTemplate (
641100966Siwasaki    ACPI_PARSE_OBJECT       *Op);
642100966Siwasaki
643100966Siwasakivoid
644100966SiwasakiAcpiDmBitList (
645100966Siwasaki    UINT16                  Mask);
646100966Siwasaki
647107325Siwasakivoid
648167802SjkimAcpiDmDescriptorName (
649167802Sjkim    void);
650151937Sjkim
651167802Sjkim
652100966Siwasaki/*
653100966Siwasaki * dmresrcl
654100966Siwasaki */
655100966Siwasakivoid
656100966SiwasakiAcpiDmWordDescriptor (
657151937Sjkim    AML_RESOURCE            *Resource,
658100966Siwasaki    UINT32                  Length,
659100966Siwasaki    UINT32                  Level);
660100966Siwasaki
661100966Siwasakivoid
662100966SiwasakiAcpiDmDwordDescriptor (
663151937Sjkim    AML_RESOURCE            *Resource,
664100966Siwasaki    UINT32                  Length,
665100966Siwasaki    UINT32                  Level);
666100966Siwasaki
667100966Siwasakivoid
668151937SjkimAcpiDmExtendedDescriptor (
669151937Sjkim    AML_RESOURCE            *Resource,
670151937Sjkim    UINT32                  Length,
671151937Sjkim    UINT32                  Level);
672151937Sjkim
673151937Sjkimvoid
674100966SiwasakiAcpiDmQwordDescriptor (
675151937Sjkim    AML_RESOURCE            *Resource,
676100966Siwasaki    UINT32                  Length,
677100966Siwasaki    UINT32                  Level);
678100966Siwasaki
679100966Siwasakivoid
680100966SiwasakiAcpiDmMemory24Descriptor (
681151937Sjkim    AML_RESOURCE            *Resource,
682100966Siwasaki    UINT32                  Length,
683100966Siwasaki    UINT32                  Level);
684100966Siwasaki
685100966Siwasakivoid
686100966SiwasakiAcpiDmMemory32Descriptor (
687151937Sjkim    AML_RESOURCE            *Resource,
688100966Siwasaki    UINT32                  Length,
689100966Siwasaki    UINT32                  Level);
690100966Siwasaki
691100966Siwasakivoid
692151937SjkimAcpiDmFixedMemory32Descriptor (
693151937Sjkim    AML_RESOURCE            *Resource,
694100966Siwasaki    UINT32                  Length,
695100966Siwasaki    UINT32                  Level);
696100966Siwasaki
697100966Siwasakivoid
698100966SiwasakiAcpiDmGenericRegisterDescriptor (
699151937Sjkim    AML_RESOURCE            *Resource,
700100966Siwasaki    UINT32                  Length,
701100966Siwasaki    UINT32                  Level);
702100966Siwasaki
703100966Siwasakivoid
704100966SiwasakiAcpiDmInterruptDescriptor (
705151937Sjkim    AML_RESOURCE            *Resource,
706100966Siwasaki    UINT32                  Length,
707100966Siwasaki    UINT32                  Level);
708100966Siwasaki
709100966Siwasakivoid
710100966SiwasakiAcpiDmVendorLargeDescriptor (
711151937Sjkim    AML_RESOURCE            *Resource,
712100966Siwasaki    UINT32                  Length,
713100966Siwasaki    UINT32                  Level);
714100966Siwasaki
715151937Sjkimvoid
716151937SjkimAcpiDmVendorCommon (
717151937Sjkim    char                    *Name,
718151937Sjkim    UINT8                   *ByteData,
719151937Sjkim    UINT32                  Length,
720151937Sjkim    UINT32                  Level);
721100966Siwasaki
722151937Sjkim
723100966Siwasaki/*
724100966Siwasaki * dmresrcs
725100966Siwasaki */
726100966Siwasakivoid
727100966SiwasakiAcpiDmIrqDescriptor (
728151937Sjkim    AML_RESOURCE            *Resource,
729100966Siwasaki    UINT32                  Length,
730100966Siwasaki    UINT32                  Level);
731100966Siwasaki
732100966Siwasakivoid
733100966SiwasakiAcpiDmDmaDescriptor (
734151937Sjkim    AML_RESOURCE            *Resource,
735100966Siwasaki    UINT32                  Length,
736100966Siwasaki    UINT32                  Level);
737100966Siwasaki
738100966Siwasakivoid
739100966SiwasakiAcpiDmIoDescriptor (
740151937Sjkim    AML_RESOURCE            *Resource,
741100966Siwasaki    UINT32                  Length,
742100966Siwasaki    UINT32                  Level);
743100966Siwasaki
744100966Siwasakivoid
745100966SiwasakiAcpiDmFixedIoDescriptor (
746151937Sjkim    AML_RESOURCE            *Resource,
747100966Siwasaki    UINT32                  Length,
748100966Siwasaki    UINT32                  Level);
749100966Siwasaki
750100966Siwasakivoid
751100966SiwasakiAcpiDmStartDependentDescriptor (
752151937Sjkim    AML_RESOURCE            *Resource,
753100966Siwasaki    UINT32                  Length,
754100966Siwasaki    UINT32                  Level);
755100966Siwasaki
756100966Siwasakivoid
757100966SiwasakiAcpiDmEndDependentDescriptor (
758151937Sjkim    AML_RESOURCE            *Resource,
759100966Siwasaki    UINT32                  Length,
760100966Siwasaki    UINT32                  Level);
761100966Siwasaki
762100966Siwasakivoid
763100966SiwasakiAcpiDmVendorSmallDescriptor (
764151937Sjkim    AML_RESOURCE            *Resource,
765100966Siwasaki    UINT32                  Length,
766100966Siwasaki    UINT32                  Level);
767100966Siwasaki
768100966Siwasaki
769128212Snjl/*
770128212Snjl * dmutils
771128212Snjl */
772128212Snjlvoid
773198237SjkimAcpiDmDecodeAttribute (
774198237Sjkim    UINT8                   Attribute);
775128212Snjl
776198237Sjkimvoid
777198237SjkimAcpiDmIndent (
778198237Sjkim    UINT32                  Level);
779198237Sjkim
780198237SjkimBOOLEAN
781198237SjkimAcpiDmCommaIfListMember (
782198237Sjkim    ACPI_PARSE_OBJECT       *Op);
783198237Sjkim
784198237Sjkimvoid
785198237SjkimAcpiDmCommaIfFieldMember (
786198237Sjkim    ACPI_PARSE_OBJECT       *Op);
787198237Sjkim
788198237Sjkim
789167802Sjkim/*
790167802Sjkim * dmrestag
791167802Sjkim */
792167802Sjkimvoid
793167802SjkimAcpiDmFindResources (
794167802Sjkim    ACPI_PARSE_OBJECT       *Root);
795167802Sjkim
796167802Sjkimvoid
797167802SjkimAcpiDmCheckResourceReference (
798167802Sjkim    ACPI_PARSE_OBJECT       *Op,
799167802Sjkim    ACPI_WALK_STATE         *WalkState);
800167802Sjkim
801209746Sjkim
802209746Sjkim/*
803209746Sjkim * acdisasm
804209746Sjkim */
805209746Sjkimvoid
806209746SjkimAdDisassemblerHeader (
807209746Sjkim    char                    *Filename);
808209746Sjkim
809209746Sjkim
810100966Siwasaki#endif  /* __ACDISASM_H__ */
811