acdisasm.h revision 228110
1100966Siwasaki/******************************************************************************
2100966Siwasaki *
3100966Siwasaki * Name: acdisasm.h - AML disassembler
4100966Siwasaki *
5100966Siwasaki *****************************************************************************/
6100966Siwasaki
7217365Sjkim/*
8217365Sjkim * Copyright (C) 2000 - 2011, Intel Corp.
9100966Siwasaki * All rights reserved.
10100966Siwasaki *
11217365Sjkim * Redistribution and use in source and binary forms, with or without
12217365Sjkim * modification, are permitted provided that the following conditions
13217365Sjkim * are met:
14217365Sjkim * 1. Redistributions of source code must retain the above copyright
15217365Sjkim *    notice, this list of conditions, and the following disclaimer,
16217365Sjkim *    without modification.
17217365Sjkim * 2. Redistributions in binary form must reproduce at minimum a disclaimer
18217365Sjkim *    substantially similar to the "NO WARRANTY" disclaimer below
19217365Sjkim *    ("Disclaimer") and any redistribution must be conditioned upon
20217365Sjkim *    including a substantially similar Disclaimer requirement for further
21217365Sjkim *    binary redistribution.
22217365Sjkim * 3. Neither the names of the above-listed copyright holders nor the names
23217365Sjkim *    of any contributors may be used to endorse or promote products derived
24217365Sjkim *    from this software without specific prior written permission.
25100966Siwasaki *
26217365Sjkim * Alternatively, this software may be distributed under the terms of the
27217365Sjkim * GNU General Public License ("GPL") version 2 as published by the Free
28217365Sjkim * Software Foundation.
29100966Siwasaki *
30217365Sjkim * NO WARRANTY
31217365Sjkim * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
32217365Sjkim * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
33217365Sjkim * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
34217365Sjkim * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
35217365Sjkim * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
36217365Sjkim * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
37217365Sjkim * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
38217365Sjkim * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
39217365Sjkim * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
40217365Sjkim * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
41217365Sjkim * POSSIBILITY OF SUCH DAMAGES.
42217365Sjkim */
43100966Siwasaki
44100966Siwasaki#ifndef __ACDISASM_H__
45100966Siwasaki#define __ACDISASM_H__
46100966Siwasaki
47193341Sjkim#include <contrib/dev/acpica/include/amlresrc.h>
48100966Siwasaki
49100966Siwasaki
50100966Siwasaki#define BLOCK_NONE              0
51100966Siwasaki#define BLOCK_PAREN             1
52100966Siwasaki#define BLOCK_BRACE             2
53100966Siwasaki#define BLOCK_COMMA_LIST        4
54167802Sjkim#define ACPI_DEFAULT_RESNAME    *(UINT32 *) "__RD"
55100966Siwasaki
56217365Sjkim/*
57217365Sjkim * Raw table data header. Used by disassembler and data table compiler.
58217365Sjkim * Do not change.
59217365Sjkim */
60217365Sjkim#define ACPI_RAW_TABLE_DATA_HEADER      "Raw Table Data"
61128212Snjl
62217365Sjkim
63167802Sjkimtypedef const struct acpi_dmtable_info
64167802Sjkim{
65167802Sjkim    UINT8                       Opcode;
66167802Sjkim    UINT8                       Offset;
67167802Sjkim    char                        *Name;
68209746Sjkim    UINT8                       Flags;
69100966Siwasaki
70167802Sjkim} ACPI_DMTABLE_INFO;
71100966Siwasaki
72209746Sjkim#define DT_LENGTH                       0x01    /* Field is a subtable length */
73209746Sjkim#define DT_FLAG                         0x02    /* Field is a flag value */
74209746Sjkim#define DT_NON_ZERO                     0x04    /* Field must be non-zero */
75209746Sjkim
76209746Sjkim/* TBD: Not used at this time */
77209746Sjkim
78209746Sjkim#define DT_OPTIONAL                     0x08
79209746Sjkim#define DT_COUNT                        0x10
80209746Sjkim
81167802Sjkim/*
82167802Sjkim * Values for Opcode above.
83228110Sjkim * Note: 0-7 must not change, they are used as a flag shift value. Other
84228110Sjkim * than those, new values can be added wherever appropriate.
85167802Sjkim */
86228110Sjkimtypedef enum
87228110Sjkim{
88228110Sjkim    /* Simple Data Types */
89167802Sjkim
90228110Sjkim    ACPI_DMT_FLAG0          = 0,
91228110Sjkim    ACPI_DMT_FLAG1          = 1,
92228110Sjkim    ACPI_DMT_FLAG2          = 2,
93228110Sjkim    ACPI_DMT_FLAG3          = 3,
94228110Sjkim    ACPI_DMT_FLAG4          = 4,
95228110Sjkim    ACPI_DMT_FLAG5          = 5,
96228110Sjkim    ACPI_DMT_FLAG6          = 6,
97228110Sjkim    ACPI_DMT_FLAG7          = 7,
98228110Sjkim    ACPI_DMT_FLAGS0,
99228110Sjkim    ACPI_DMT_FLAGS1,
100228110Sjkim    ACPI_DMT_FLAGS2,
101228110Sjkim    ACPI_DMT_FLAGS4,
102228110Sjkim    ACPI_DMT_UINT8,
103228110Sjkim    ACPI_DMT_UINT16,
104228110Sjkim    ACPI_DMT_UINT24,
105228110Sjkim    ACPI_DMT_UINT32,
106228110Sjkim    ACPI_DMT_UINT40,
107228110Sjkim    ACPI_DMT_UINT48,
108228110Sjkim    ACPI_DMT_UINT56,
109228110Sjkim    ACPI_DMT_UINT64,
110228110Sjkim    ACPI_DMT_BUF7,
111228110Sjkim    ACPI_DMT_BUF16,
112228110Sjkim    ACPI_DMT_BUF128,
113228110Sjkim    ACPI_DMT_SIG,
114228110Sjkim    ACPI_DMT_STRING,
115228110Sjkim    ACPI_DMT_NAME4,
116228110Sjkim    ACPI_DMT_NAME6,
117228110Sjkim    ACPI_DMT_NAME8,
118228110Sjkim
119228110Sjkim    /* Types that are decoded to strings and miscellaneous */
120228110Sjkim
121228110Sjkim    ACPI_DMT_ACCWIDTH,
122228110Sjkim    ACPI_DMT_CHKSUM,
123228110Sjkim    ACPI_DMT_GAS,
124228110Sjkim    ACPI_DMT_SPACEID,
125228110Sjkim    ACPI_DMT_UNICODE,
126228110Sjkim    ACPI_DMT_UUID,
127228110Sjkim
128228110Sjkim    /* Types used only for the Data Table Compiler */
129228110Sjkim
130228110Sjkim    ACPI_DMT_BUFFER,
131228110Sjkim    ACPI_DMT_DEVICE_PATH,
132228110Sjkim    ACPI_DMT_LABEL,
133228110Sjkim    ACPI_DMT_PCI_PATH,
134228110Sjkim
135228110Sjkim    /* Types that are specific to particular ACPI tables */
136228110Sjkim
137228110Sjkim    ACPI_DMT_ASF,
138228110Sjkim    ACPI_DMT_DMAR,
139228110Sjkim    ACPI_DMT_EINJACT,
140228110Sjkim    ACPI_DMT_EINJINST,
141228110Sjkim    ACPI_DMT_ERSTACT,
142228110Sjkim    ACPI_DMT_ERSTINST,
143228110Sjkim    ACPI_DMT_FADTPM,
144228110Sjkim    ACPI_DMT_HEST,
145228110Sjkim    ACPI_DMT_HESTNTFY,
146228110Sjkim    ACPI_DMT_HESTNTYP,
147228110Sjkim    ACPI_DMT_IVRS,
148228110Sjkim    ACPI_DMT_MADT,
149228110Sjkim    ACPI_DMT_PMTT,
150228110Sjkim    ACPI_DMT_SLIC,
151228110Sjkim    ACPI_DMT_SRAT,
152228110Sjkim
153228110Sjkim    /* Special opcodes */
154228110Sjkim
155228110Sjkim    ACPI_DMT_EXTRA_TEXT,
156228110Sjkim    ACPI_DMT_EXIT
157228110Sjkim
158228110Sjkim} ACPI_ENTRY_TYPES;
159228110Sjkim
160167802Sjkimtypedef
161193267Sjkimvoid (*ACPI_DMTABLE_HANDLER) (
162167802Sjkim    ACPI_TABLE_HEADER       *Table);
163167802Sjkim
164209746Sjkimtypedef
165209746SjkimACPI_STATUS (*ACPI_CMTABLE_HANDLER) (
166209746Sjkim    void                    **PFieldList);
167209746Sjkim
168167802Sjkimtypedef struct acpi_dmtable_data
169167802Sjkim{
170167802Sjkim    char                    *Signature;
171193267Sjkim    ACPI_DMTABLE_INFO       *TableInfo;
172193267Sjkim    ACPI_DMTABLE_HANDLER    TableHandler;
173209746Sjkim    ACPI_CMTABLE_HANDLER    CmTableHandler;
174209746Sjkim    const unsigned char     *Template;
175167802Sjkim    char                    *Name;
176167802Sjkim
177167802Sjkim} ACPI_DMTABLE_DATA;
178167802Sjkim
179167802Sjkim
180100966Siwasakitypedef struct acpi_op_walk_info
181100966Siwasaki{
182100966Siwasaki    UINT32                  Level;
183167802Sjkim    UINT32                  LastLevel;
184167802Sjkim    UINT32                  Count;
185100966Siwasaki    UINT32                  BitOffset;
186167802Sjkim    UINT32                  Flags;
187151937Sjkim    ACPI_WALK_STATE         *WalkState;
188100966Siwasaki
189100966Siwasaki} ACPI_OP_WALK_INFO;
190100966Siwasaki
191209746Sjkim/*
192209746Sjkim * TBD - another copy of this is in asltypes.h, fix
193209746Sjkim */
194209746Sjkim#ifndef ASL_WALK_CALLBACK_DEFINED
195100966Siwasakitypedef
196100966SiwasakiACPI_STATUS (*ASL_WALK_CALLBACK) (
197100966Siwasaki    ACPI_PARSE_OBJECT           *Op,
198100966Siwasaki    UINT32                      Level,
199100966Siwasaki    void                        *Context);
200209746Sjkim#define ASL_WALK_CALLBACK_DEFINED
201209746Sjkim#endif
202100966Siwasaki
203228110Sjkimtypedef
204228110Sjkimvoid (*ACPI_RESOURCE_HANDLER) (
205228110Sjkim    AML_RESOURCE            *Resource,
206228110Sjkim    UINT32                  Length,
207228110Sjkim    UINT32                  Level);
208209746Sjkim
209167802Sjkimtypedef struct acpi_resource_tag
210167802Sjkim{
211167802Sjkim    UINT32                  BitIndex;
212167802Sjkim    char                    *Tag;
213100966Siwasaki
214167802Sjkim} ACPI_RESOURCE_TAG;
215167802Sjkim
216167802Sjkim/* Strings used for decoding flags to ASL keywords */
217167802Sjkim
218167802Sjkimextern const char               *AcpiGbl_WordDecode[];
219167802Sjkimextern const char               *AcpiGbl_IrqDecode[];
220167802Sjkimextern const char               *AcpiGbl_LockRule[];
221167802Sjkimextern const char               *AcpiGbl_AccessTypes[];
222167802Sjkimextern const char               *AcpiGbl_UpdateRules[];
223167802Sjkimextern const char               *AcpiGbl_MatchOps[];
224167802Sjkim
225167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf0[];
226167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf1[];
227167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf1a[];
228167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf2[];
229167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf2a[];
230167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf3[];
231167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf4[];
232167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsfHdr[];
233167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoBoot[];
234193267Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoBert[];
235228110Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoBgrt[];
236167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoCpep[];
237167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoCpep0[];
238167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoDbgp[];
239167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmar[];
240167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmarHdr[];
241167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmarScope[];
242167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmar0[];
243167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmar1[];
244193267Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmar2[];
245197104Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmar3[];
246228110Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoDrtm[];
247167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoEcdt[];
248193267Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoEinj[];
249193267Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoEinj0[];
250193267Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoErst[];
251209746Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoErst0[];
252167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoFacs[];
253167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoFadt1[];
254167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoFadt2[];
255193267Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoFadt3[];
256228110Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoFadt5[];
257228110Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoFpdt[];
258228110Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoFpdtHdr[];
259228110Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoFpdt0[];
260228110Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoFpdt1[];
261167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoGas[];
262228110Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoGtdt[];
263167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoHeader[];
264193267Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest[];
265193267Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest0[];
266193267Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest1[];
267197104Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest2[];
268193267Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest6[];
269193267Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest7[];
270193267Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest8[];
271193267Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest9[];
272193267Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoHestNotify[];
273197104Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoHestBank[];
274167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoHpet[];
275197104Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs[];
276197104Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs0[];
277197104Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs1[];
278197104Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs4[];
279197104Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs8a[];
280197104Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs8b[];
281197104Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs8c[];
282197104Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrsHdr[];
283167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt[];
284167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt0[];
285167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt1[];
286167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt2[];
287167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt3[];
288167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt4[];
289167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt5[];
290167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt6[];
291167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt7[];
292167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt8[];
293193267Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt9[];
294193267Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt10[];
295228110Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt11[];
296228110Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt12[];
297167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadtHdr[];
298167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoMcfg[];
299167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoMcfg0[];
300204773Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoMchi[];
301228110Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoMpst[];
302228110Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoMpst0[];
303228110Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoMpst0A[];
304228110Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoMpst0B[];
305228110Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoMpst1[];
306228110Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoMpst2[];
307197104Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoMsct[];
308197104Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoMsct0[];
309228110Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoPmtt[];
310228110Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoPmtt0[];
311228110Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoPmtt1[];
312228110Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoPmtt1a[];
313228110Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoPmtt2[];
314228110Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoPmttHdr[];
315228110Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoPcct[];
316228110Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoPcct0[];
317167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoRsdp1[];
318167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoRsdp2[];
319228110Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoS3pt[];
320228110Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoS3ptHdr[];
321228110Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoS3pt0[];
322228110Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoS3pt1[];
323167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoSbst[];
324219707Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoSlicHdr[];
325219707Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoSlic0[];
326219707Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoSlic1[];
327167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoSlit[];
328167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoSpcr[];
329167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoSpmi[];
330167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoSrat[];
331193267Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoSratHdr[];
332167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoSrat0[];
333167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoSrat1[];
334193267Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoSrat2[];
335167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoTcpa[];
336197104Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoUefi[];
337197104Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoWaet[];
338197104Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoWdat[];
339197104Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoWdat0[];
340209746Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoWddt[];
341167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoWdrt[];
342167802Sjkim
343217365Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoGeneric[][2];
344167802Sjkim
345217365Sjkim
346100966Siwasaki/*
347167802Sjkim * dmtable
348167802Sjkim */
349209746Sjkimextern ACPI_DMTABLE_DATA        AcpiDmTableData[];
350209746Sjkim
351209746SjkimUINT8
352209746SjkimAcpiDmGenerateChecksum (
353209746Sjkim    void                    *Table,
354209746Sjkim    UINT32                  Length,
355209746Sjkim    UINT8                   OriginalChecksum);
356209746Sjkim
357209746SjkimACPI_DMTABLE_DATA *
358209746SjkimAcpiDmGetTableData (
359209746Sjkim    char                    *Signature);
360209746Sjkim
361167802Sjkimvoid
362167802SjkimAcpiDmDumpDataTable (
363167802Sjkim    ACPI_TABLE_HEADER       *Table);
364167802Sjkim
365193267SjkimACPI_STATUS
366167802SjkimAcpiDmDumpTable (
367167802Sjkim    UINT32                  TableLength,
368167802Sjkim    UINT32                  TableOffset,
369167802Sjkim    void                    *Table,
370167802Sjkim    UINT32                  SubTableLength,
371167802Sjkim    ACPI_DMTABLE_INFO        *Info);
372167802Sjkim
373167802Sjkimvoid
374167802SjkimAcpiDmLineHeader (
375167802Sjkim    UINT32                  Offset,
376167802Sjkim    UINT32                  ByteLength,
377167802Sjkim    char                    *Name);
378167802Sjkim
379167802Sjkimvoid
380167802SjkimAcpiDmLineHeader2 (
381167802Sjkim    UINT32                  Offset,
382167802Sjkim    UINT32                  ByteLength,
383167802Sjkim    char                    *Name,
384167802Sjkim    UINT32                  Value);
385167802Sjkim
386167802Sjkim
387167802Sjkim/*
388167802Sjkim * dmtbdump
389167802Sjkim */
390167802Sjkimvoid
391167802SjkimAcpiDmDumpAsf (
392167802Sjkim    ACPI_TABLE_HEADER       *Table);
393167802Sjkim
394167802Sjkimvoid
395167802SjkimAcpiDmDumpCpep (
396167802Sjkim    ACPI_TABLE_HEADER       *Table);
397167802Sjkim
398167802Sjkimvoid
399167802SjkimAcpiDmDumpDmar (
400167802Sjkim    ACPI_TABLE_HEADER       *Table);
401167802Sjkim
402167802Sjkimvoid
403193267SjkimAcpiDmDumpEinj (
404193267Sjkim    ACPI_TABLE_HEADER       *Table);
405193267Sjkim
406193267Sjkimvoid
407193267SjkimAcpiDmDumpErst (
408193267Sjkim    ACPI_TABLE_HEADER       *Table);
409193267Sjkim
410193267Sjkimvoid
411167802SjkimAcpiDmDumpFadt (
412167802Sjkim    ACPI_TABLE_HEADER       *Table);
413167802Sjkim
414167802Sjkimvoid
415228110SjkimAcpiDmDumpFpdt (
416228110Sjkim    ACPI_TABLE_HEADER       *Table);
417228110Sjkim
418228110Sjkimvoid
419193267SjkimAcpiDmDumpHest (
420167802Sjkim    ACPI_TABLE_HEADER       *Table);
421167802Sjkim
422167802Sjkimvoid
423197104SjkimAcpiDmDumpIvrs (
424197104Sjkim    ACPI_TABLE_HEADER       *Table);
425197104Sjkim
426197104Sjkimvoid
427228110SjkimAcpiDmDumpMadt (
428228110Sjkim    ACPI_TABLE_HEADER       *Table);
429228110Sjkim
430228110Sjkimvoid
431167802SjkimAcpiDmDumpMcfg (
432167802Sjkim    ACPI_TABLE_HEADER       *Table);
433167802Sjkim
434167802Sjkimvoid
435228110SjkimAcpiDmDumpMpst (
436167802Sjkim    ACPI_TABLE_HEADER       *Table);
437167802Sjkim
438197104Sjkimvoid
439197104SjkimAcpiDmDumpMsct (
440197104Sjkim    ACPI_TABLE_HEADER       *Table);
441197104Sjkim
442228110Sjkimvoid
443228110SjkimAcpiDmDumpPcct (
444228110Sjkim    ACPI_TABLE_HEADER       *Table);
445228110Sjkim
446228110Sjkimvoid
447228110SjkimAcpiDmDumpPmtt (
448228110Sjkim    ACPI_TABLE_HEADER       *Table);
449228110Sjkim
450167802SjkimUINT32
451167802SjkimAcpiDmDumpRsdp (
452167802Sjkim    ACPI_TABLE_HEADER       *Table);
453167802Sjkim
454167802Sjkimvoid
455167802SjkimAcpiDmDumpRsdt (
456167802Sjkim    ACPI_TABLE_HEADER       *Table);
457167802Sjkim
458228110SjkimUINT32
459228110SjkimAcpiDmDumpS3pt (
460228110Sjkim    ACPI_TABLE_HEADER       *Table);
461228110Sjkim
462167802Sjkimvoid
463219707SjkimAcpiDmDumpSlic (
464219707Sjkim    ACPI_TABLE_HEADER       *Table);
465219707Sjkim
466219707Sjkimvoid
467167802SjkimAcpiDmDumpSlit (
468167802Sjkim    ACPI_TABLE_HEADER       *Table);
469167802Sjkim
470167802Sjkimvoid
471193267SjkimAcpiDmDumpSrat (
472193267Sjkim    ACPI_TABLE_HEADER       *Table);
473193267Sjkim
474193267Sjkimvoid
475197104SjkimAcpiDmDumpWdat (
476197104Sjkim    ACPI_TABLE_HEADER       *Table);
477197104Sjkim
478197104Sjkimvoid
479167802SjkimAcpiDmDumpXsdt (
480167802Sjkim    ACPI_TABLE_HEADER       *Table);
481167802Sjkim
482167802Sjkim
483167802Sjkim/*
484100966Siwasaki * dmwalk
485100966Siwasaki */
486100966Siwasakivoid
487100966SiwasakiAcpiDmDisassemble (
488100966Siwasaki    ACPI_WALK_STATE         *WalkState,
489100966Siwasaki    ACPI_PARSE_OBJECT       *Origin,
490100966Siwasaki    UINT32                  NumOpcodes);
491100966Siwasaki
492167802Sjkimvoid
493167802SjkimAcpiDmWalkParseTree (
494167802Sjkim    ACPI_PARSE_OBJECT       *Op,
495167802Sjkim    ASL_WALK_CALLBACK       DescendingCallback,
496167802Sjkim    ASL_WALK_CALLBACK       AscendingCallback,
497167802Sjkim    void                    *Context);
498100966Siwasaki
499167802Sjkim
500151937Sjkim/*
501151937Sjkim * dmopcode
502151937Sjkim */
503100966Siwasakivoid
504100966SiwasakiAcpiDmDisassembleOneOp (
505100966Siwasaki    ACPI_WALK_STATE         *WalkState,
506102550Siwasaki    ACPI_OP_WALK_INFO       *Info,
507100966Siwasaki    ACPI_PARSE_OBJECT       *Op);
508100966Siwasaki
509100966Siwasakivoid
510100966SiwasakiAcpiDmDecodeInternalObject (
511100966Siwasaki    ACPI_OPERAND_OBJECT     *ObjDesc);
512100966Siwasaki
513100966SiwasakiUINT32
514100966SiwasakiAcpiDmListType (
515100966Siwasaki    ACPI_PARSE_OBJECT       *Op);
516100966Siwasaki
517100966Siwasakivoid
518100966SiwasakiAcpiDmMethodFlags (
519100966Siwasaki    ACPI_PARSE_OBJECT       *Op);
520100966Siwasaki
521100966Siwasakivoid
522100966SiwasakiAcpiDmFieldFlags (
523100966Siwasaki    ACPI_PARSE_OBJECT       *Op);
524100966Siwasaki
525100966Siwasakivoid
526100966SiwasakiAcpiDmAddressSpace (
527100966Siwasaki    UINT8                   SpaceId);
528100966Siwasaki
529100966Siwasakivoid
530100966SiwasakiAcpiDmRegionFlags (
531100966Siwasaki    ACPI_PARSE_OBJECT       *Op);
532100966Siwasaki
533100966Siwasakivoid
534100966SiwasakiAcpiDmMatchOp (
535100966Siwasaki    ACPI_PARSE_OBJECT       *Op);
536100966Siwasaki
537100966Siwasaki
538102550Siwasaki/*
539151937Sjkim * dmnames
540117521Snjl */
541151937SjkimUINT32
542151937SjkimAcpiDmDumpName (
543193267Sjkim    UINT32                  Name);
544117521Snjl
545151937SjkimACPI_STATUS
546151937SjkimAcpiPsDisplayObjectPathname (
547151937Sjkim    ACPI_WALK_STATE         *WalkState,
548151937Sjkim    ACPI_PARSE_OBJECT       *Op);
549151937Sjkim
550117521Snjlvoid
551151937SjkimAcpiDmNamestring (
552151937Sjkim    char                    *Name);
553117521Snjl
554151937Sjkim
555151937Sjkim/*
556151937Sjkim * dmobject
557151937Sjkim */
558117521Snjlvoid
559117521SnjlAcpiDmDisplayInternalObject (
560117521Snjl    ACPI_OPERAND_OBJECT     *ObjDesc,
561117521Snjl    ACPI_WALK_STATE         *WalkState);
562117521Snjl
563117521Snjlvoid
564117521SnjlAcpiDmDisplayArguments (
565117521Snjl    ACPI_WALK_STATE         *WalkState);
566117521Snjl
567117521Snjlvoid
568117521SnjlAcpiDmDisplayLocals (
569117521Snjl    ACPI_WALK_STATE         *WalkState);
570117521Snjl
571117521Snjlvoid
572117521SnjlAcpiDmDumpMethodInfo (
573117521Snjl    ACPI_STATUS             Status,
574117521Snjl    ACPI_WALK_STATE         *WalkState,
575117521Snjl    ACPI_PARSE_OBJECT       *Op);
576117521Snjl
577117521Snjl
578117521Snjl/*
579100966Siwasaki * dmbuffer
580100966Siwasaki */
581151937Sjkimvoid
582151937SjkimAcpiDmDisasmByteList (
583151937Sjkim    UINT32                  Level,
584151937Sjkim    UINT8                   *ByteData,
585151937Sjkim    UINT32                  ByteCount);
586100966Siwasaki
587100966Siwasakivoid
588151937SjkimAcpiDmByteList (
589151937Sjkim    ACPI_OP_WALK_INFO       *Info,
590100966Siwasaki    ACPI_PARSE_OBJECT       *Op);
591100966Siwasaki
592100966Siwasakivoid
593151937SjkimAcpiDmIsEisaId (
594151937Sjkim    ACPI_PARSE_OBJECT       *Op);
595151937Sjkim
596151937Sjkimvoid
597100966SiwasakiAcpiDmEisaId (
598100966Siwasaki    UINT32                  EncodedId);
599100966Siwasaki
600100966SiwasakiBOOLEAN
601100966SiwasakiAcpiDmIsUnicodeBuffer (
602100966Siwasaki    ACPI_PARSE_OBJECT       *Op);
603100966Siwasaki
604100966SiwasakiBOOLEAN
605100966SiwasakiAcpiDmIsStringBuffer (
606100966Siwasaki    ACPI_PARSE_OBJECT       *Op);
607100966Siwasaki
608100966Siwasaki
609100966Siwasaki/*
610198237Sjkim * dmextern
611198237Sjkim */
612210976Sjkim
613210976SjkimACPI_STATUS
614210976SjkimAcpiDmAddToExternalFileList (
615210976Sjkim    char                    *PathList);
616210976Sjkim
617198237Sjkimvoid
618210976SjkimAcpiDmClearExternalFileList (
619210976Sjkim    void);
620210976Sjkim
621210976Sjkimvoid
622198237SjkimAcpiDmAddToExternalList (
623198237Sjkim    ACPI_PARSE_OBJECT       *Op,
624198237Sjkim    char                    *Path,
625198237Sjkim    UINT8                   Type,
626198237Sjkim    UINT32                  Value);
627198237Sjkim
628198237Sjkimvoid
629198237SjkimAcpiDmAddExternalsToNamespace (
630198237Sjkim    void);
631198237Sjkim
632198237SjkimUINT32
633198237SjkimAcpiDmGetExternalMethodCount (
634198237Sjkim    void);
635198237Sjkim
636198237Sjkimvoid
637198237SjkimAcpiDmClearExternalList (
638198237Sjkim    void);
639198237Sjkim
640198237Sjkimvoid
641198237SjkimAcpiDmEmitExternals (
642198237Sjkim    void);
643198237Sjkim
644198237Sjkim
645198237Sjkim/*
646100966Siwasaki * dmresrc
647100966Siwasaki */
648151937Sjkimvoid
649151937SjkimAcpiDmDumpInteger8 (
650151937Sjkim    UINT8                   Value,
651151937Sjkim    char                    *Name);
652100966Siwasaki
653100966Siwasakivoid
654151937SjkimAcpiDmDumpInteger16 (
655151937Sjkim    UINT16                  Value,
656151937Sjkim    char                    *Name);
657100966Siwasaki
658100966Siwasakivoid
659151937SjkimAcpiDmDumpInteger32 (
660151937Sjkim    UINT32                  Value,
661151937Sjkim    char                    *Name);
662100966Siwasaki
663100966Siwasakivoid
664151937SjkimAcpiDmDumpInteger64 (
665151937Sjkim    UINT64                  Value,
666151937Sjkim    char                    *Name);
667151937Sjkim
668151937Sjkimvoid
669151937SjkimAcpiDmResourceTemplate (
670102550Siwasaki    ACPI_OP_WALK_INFO       *Info,
671167802Sjkim    ACPI_PARSE_OBJECT       *Op,
672100966Siwasaki    UINT8                   *ByteData,
673100966Siwasaki    UINT32                  ByteCount);
674100966Siwasaki
675167802SjkimACPI_STATUS
676151937SjkimAcpiDmIsResourceTemplate (
677100966Siwasaki    ACPI_PARSE_OBJECT       *Op);
678100966Siwasaki
679100966Siwasakivoid
680100966SiwasakiAcpiDmBitList (
681100966Siwasaki    UINT16                  Mask);
682100966Siwasaki
683107325Siwasakivoid
684167802SjkimAcpiDmDescriptorName (
685167802Sjkim    void);
686151937Sjkim
687167802Sjkim
688100966Siwasaki/*
689100966Siwasaki * dmresrcl
690100966Siwasaki */
691100966Siwasakivoid
692100966SiwasakiAcpiDmWordDescriptor (
693151937Sjkim    AML_RESOURCE            *Resource,
694100966Siwasaki    UINT32                  Length,
695100966Siwasaki    UINT32                  Level);
696100966Siwasaki
697100966Siwasakivoid
698100966SiwasakiAcpiDmDwordDescriptor (
699151937Sjkim    AML_RESOURCE            *Resource,
700100966Siwasaki    UINT32                  Length,
701100966Siwasaki    UINT32                  Level);
702100966Siwasaki
703100966Siwasakivoid
704151937SjkimAcpiDmExtendedDescriptor (
705151937Sjkim    AML_RESOURCE            *Resource,
706151937Sjkim    UINT32                  Length,
707151937Sjkim    UINT32                  Level);
708151937Sjkim
709151937Sjkimvoid
710100966SiwasakiAcpiDmQwordDescriptor (
711151937Sjkim    AML_RESOURCE            *Resource,
712100966Siwasaki    UINT32                  Length,
713100966Siwasaki    UINT32                  Level);
714100966Siwasaki
715100966Siwasakivoid
716100966SiwasakiAcpiDmMemory24Descriptor (
717151937Sjkim    AML_RESOURCE            *Resource,
718100966Siwasaki    UINT32                  Length,
719100966Siwasaki    UINT32                  Level);
720100966Siwasaki
721100966Siwasakivoid
722100966SiwasakiAcpiDmMemory32Descriptor (
723151937Sjkim    AML_RESOURCE            *Resource,
724100966Siwasaki    UINT32                  Length,
725100966Siwasaki    UINT32                  Level);
726100966Siwasaki
727100966Siwasakivoid
728151937SjkimAcpiDmFixedMemory32Descriptor (
729151937Sjkim    AML_RESOURCE            *Resource,
730100966Siwasaki    UINT32                  Length,
731100966Siwasaki    UINT32                  Level);
732100966Siwasaki
733100966Siwasakivoid
734100966SiwasakiAcpiDmGenericRegisterDescriptor (
735151937Sjkim    AML_RESOURCE            *Resource,
736100966Siwasaki    UINT32                  Length,
737100966Siwasaki    UINT32                  Level);
738100966Siwasaki
739100966Siwasakivoid
740100966SiwasakiAcpiDmInterruptDescriptor (
741151937Sjkim    AML_RESOURCE            *Resource,
742100966Siwasaki    UINT32                  Length,
743100966Siwasaki    UINT32                  Level);
744100966Siwasaki
745100966Siwasakivoid
746100966SiwasakiAcpiDmVendorLargeDescriptor (
747151937Sjkim    AML_RESOURCE            *Resource,
748100966Siwasaki    UINT32                  Length,
749100966Siwasaki    UINT32                  Level);
750100966Siwasaki
751151937Sjkimvoid
752228110SjkimAcpiDmGpioDescriptor (
753228110Sjkim    AML_RESOURCE            *Resource,
754228110Sjkim    UINT32                  Length,
755228110Sjkim    UINT32                  Level);
756228110Sjkim
757228110Sjkimvoid
758228110SjkimAcpiDmSerialBusDescriptor (
759228110Sjkim    AML_RESOURCE            *Resource,
760228110Sjkim    UINT32                  Length,
761228110Sjkim    UINT32                  Level);
762228110Sjkim
763228110Sjkimvoid
764151937SjkimAcpiDmVendorCommon (
765151937Sjkim    char                    *Name,
766151937Sjkim    UINT8                   *ByteData,
767151937Sjkim    UINT32                  Length,
768151937Sjkim    UINT32                  Level);
769100966Siwasaki
770151937Sjkim
771100966Siwasaki/*
772100966Siwasaki * dmresrcs
773100966Siwasaki */
774100966Siwasakivoid
775100966SiwasakiAcpiDmIrqDescriptor (
776151937Sjkim    AML_RESOURCE            *Resource,
777100966Siwasaki    UINT32                  Length,
778100966Siwasaki    UINT32                  Level);
779100966Siwasaki
780100966Siwasakivoid
781100966SiwasakiAcpiDmDmaDescriptor (
782151937Sjkim    AML_RESOURCE            *Resource,
783100966Siwasaki    UINT32                  Length,
784100966Siwasaki    UINT32                  Level);
785100966Siwasaki
786100966Siwasakivoid
787228110SjkimAcpiDmFixedDmaDescriptor (
788228110Sjkim    AML_RESOURCE            *Resource,
789228110Sjkim    UINT32                  Length,
790228110Sjkim    UINT32                  Level);
791228110Sjkim
792228110Sjkimvoid
793100966SiwasakiAcpiDmIoDescriptor (
794151937Sjkim    AML_RESOURCE            *Resource,
795100966Siwasaki    UINT32                  Length,
796100966Siwasaki    UINT32                  Level);
797100966Siwasaki
798100966Siwasakivoid
799100966SiwasakiAcpiDmFixedIoDescriptor (
800151937Sjkim    AML_RESOURCE            *Resource,
801100966Siwasaki    UINT32                  Length,
802100966Siwasaki    UINT32                  Level);
803100966Siwasaki
804100966Siwasakivoid
805100966SiwasakiAcpiDmStartDependentDescriptor (
806151937Sjkim    AML_RESOURCE            *Resource,
807100966Siwasaki    UINT32                  Length,
808100966Siwasaki    UINT32                  Level);
809100966Siwasaki
810100966Siwasakivoid
811100966SiwasakiAcpiDmEndDependentDescriptor (
812151937Sjkim    AML_RESOURCE            *Resource,
813100966Siwasaki    UINT32                  Length,
814100966Siwasaki    UINT32                  Level);
815100966Siwasaki
816100966Siwasakivoid
817100966SiwasakiAcpiDmVendorSmallDescriptor (
818151937Sjkim    AML_RESOURCE            *Resource,
819100966Siwasaki    UINT32                  Length,
820100966Siwasaki    UINT32                  Level);
821100966Siwasaki
822100966Siwasaki
823128212Snjl/*
824128212Snjl * dmutils
825128212Snjl */
826128212Snjlvoid
827198237SjkimAcpiDmDecodeAttribute (
828198237Sjkim    UINT8                   Attribute);
829128212Snjl
830198237Sjkimvoid
831198237SjkimAcpiDmIndent (
832198237Sjkim    UINT32                  Level);
833198237Sjkim
834198237SjkimBOOLEAN
835198237SjkimAcpiDmCommaIfListMember (
836198237Sjkim    ACPI_PARSE_OBJECT       *Op);
837198237Sjkim
838198237Sjkimvoid
839198237SjkimAcpiDmCommaIfFieldMember (
840198237Sjkim    ACPI_PARSE_OBJECT       *Op);
841198237Sjkim
842198237Sjkim
843167802Sjkim/*
844167802Sjkim * dmrestag
845167802Sjkim */
846167802Sjkimvoid
847167802SjkimAcpiDmFindResources (
848167802Sjkim    ACPI_PARSE_OBJECT       *Root);
849167802Sjkim
850167802Sjkimvoid
851167802SjkimAcpiDmCheckResourceReference (
852167802Sjkim    ACPI_PARSE_OBJECT       *Op,
853167802Sjkim    ACPI_WALK_STATE         *WalkState);
854167802Sjkim
855209746Sjkim
856209746Sjkim/*
857209746Sjkim * acdisasm
858209746Sjkim */
859209746Sjkimvoid
860209746SjkimAdDisassemblerHeader (
861209746Sjkim    char                    *Filename);
862209746Sjkim
863209746Sjkim
864100966Siwasaki#endif  /* __ACDISASM_H__ */
865