acdisasm.h revision 237412
1100966Siwasaki/******************************************************************************
2100966Siwasaki *
3100966Siwasaki * Name: acdisasm.h - AML disassembler
4100966Siwasaki *
5100966Siwasaki *****************************************************************************/
6100966Siwasaki
7217365Sjkim/*
8229989Sjkim * Copyright (C) 2000 - 2012, 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;
66229989Sjkim    UINT16                      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
522237412SjkimAcpiDmPredefinedDescription (
523237412Sjkim    ACPI_PARSE_OBJECT       *Op);
524237412Sjkim
525237412Sjkimvoid
526237412SjkimAcpiDmFieldPredefinedDescription (
527237412Sjkim    ACPI_PARSE_OBJECT       *Op);
528237412Sjkim
529237412Sjkimvoid
530100966SiwasakiAcpiDmFieldFlags (
531100966Siwasaki    ACPI_PARSE_OBJECT       *Op);
532100966Siwasaki
533100966Siwasakivoid
534100966SiwasakiAcpiDmAddressSpace (
535100966Siwasaki    UINT8                   SpaceId);
536100966Siwasaki
537100966Siwasakivoid
538100966SiwasakiAcpiDmRegionFlags (
539100966Siwasaki    ACPI_PARSE_OBJECT       *Op);
540100966Siwasaki
541100966Siwasakivoid
542100966SiwasakiAcpiDmMatchOp (
543100966Siwasaki    ACPI_PARSE_OBJECT       *Op);
544100966Siwasaki
545100966Siwasaki
546102550Siwasaki/*
547151937Sjkim * dmnames
548117521Snjl */
549151937SjkimUINT32
550151937SjkimAcpiDmDumpName (
551193267Sjkim    UINT32                  Name);
552117521Snjl
553151937SjkimACPI_STATUS
554151937SjkimAcpiPsDisplayObjectPathname (
555151937Sjkim    ACPI_WALK_STATE         *WalkState,
556151937Sjkim    ACPI_PARSE_OBJECT       *Op);
557151937Sjkim
558117521Snjlvoid
559151937SjkimAcpiDmNamestring (
560151937Sjkim    char                    *Name);
561117521Snjl
562151937Sjkim
563151937Sjkim/*
564151937Sjkim * dmobject
565151937Sjkim */
566117521Snjlvoid
567117521SnjlAcpiDmDisplayInternalObject (
568117521Snjl    ACPI_OPERAND_OBJECT     *ObjDesc,
569117521Snjl    ACPI_WALK_STATE         *WalkState);
570117521Snjl
571117521Snjlvoid
572117521SnjlAcpiDmDisplayArguments (
573117521Snjl    ACPI_WALK_STATE         *WalkState);
574117521Snjl
575117521Snjlvoid
576117521SnjlAcpiDmDisplayLocals (
577117521Snjl    ACPI_WALK_STATE         *WalkState);
578117521Snjl
579117521Snjlvoid
580117521SnjlAcpiDmDumpMethodInfo (
581117521Snjl    ACPI_STATUS             Status,
582117521Snjl    ACPI_WALK_STATE         *WalkState,
583117521Snjl    ACPI_PARSE_OBJECT       *Op);
584117521Snjl
585117521Snjl
586117521Snjl/*
587100966Siwasaki * dmbuffer
588100966Siwasaki */
589151937Sjkimvoid
590151937SjkimAcpiDmDisasmByteList (
591151937Sjkim    UINT32                  Level,
592151937Sjkim    UINT8                   *ByteData,
593151937Sjkim    UINT32                  ByteCount);
594100966Siwasaki
595100966Siwasakivoid
596151937SjkimAcpiDmByteList (
597151937Sjkim    ACPI_OP_WALK_INFO       *Info,
598100966Siwasaki    ACPI_PARSE_OBJECT       *Op);
599100966Siwasaki
600100966Siwasakivoid
601151937SjkimAcpiDmIsEisaId (
602151937Sjkim    ACPI_PARSE_OBJECT       *Op);
603151937Sjkim
604151937Sjkimvoid
605100966SiwasakiAcpiDmEisaId (
606100966Siwasaki    UINT32                  EncodedId);
607100966Siwasaki
608100966SiwasakiBOOLEAN
609100966SiwasakiAcpiDmIsUnicodeBuffer (
610100966Siwasaki    ACPI_PARSE_OBJECT       *Op);
611100966Siwasaki
612100966SiwasakiBOOLEAN
613100966SiwasakiAcpiDmIsStringBuffer (
614100966Siwasaki    ACPI_PARSE_OBJECT       *Op);
615100966Siwasaki
616100966Siwasaki
617100966Siwasaki/*
618198237Sjkim * dmextern
619198237Sjkim */
620210976Sjkim
621210976SjkimACPI_STATUS
622210976SjkimAcpiDmAddToExternalFileList (
623210976Sjkim    char                    *PathList);
624210976Sjkim
625198237Sjkimvoid
626210976SjkimAcpiDmClearExternalFileList (
627210976Sjkim    void);
628210976Sjkim
629210976Sjkimvoid
630198237SjkimAcpiDmAddToExternalList (
631198237Sjkim    ACPI_PARSE_OBJECT       *Op,
632198237Sjkim    char                    *Path,
633198237Sjkim    UINT8                   Type,
634198237Sjkim    UINT32                  Value);
635198237Sjkim
636198237Sjkimvoid
637198237SjkimAcpiDmAddExternalsToNamespace (
638198237Sjkim    void);
639198237Sjkim
640198237SjkimUINT32
641198237SjkimAcpiDmGetExternalMethodCount (
642198237Sjkim    void);
643198237Sjkim
644198237Sjkimvoid
645198237SjkimAcpiDmClearExternalList (
646198237Sjkim    void);
647198237Sjkim
648198237Sjkimvoid
649198237SjkimAcpiDmEmitExternals (
650198237Sjkim    void);
651198237Sjkim
652198237Sjkim
653198237Sjkim/*
654100966Siwasaki * dmresrc
655100966Siwasaki */
656151937Sjkimvoid
657151937SjkimAcpiDmDumpInteger8 (
658151937Sjkim    UINT8                   Value,
659151937Sjkim    char                    *Name);
660100966Siwasaki
661100966Siwasakivoid
662151937SjkimAcpiDmDumpInteger16 (
663151937Sjkim    UINT16                  Value,
664151937Sjkim    char                    *Name);
665100966Siwasaki
666100966Siwasakivoid
667151937SjkimAcpiDmDumpInteger32 (
668151937Sjkim    UINT32                  Value,
669151937Sjkim    char                    *Name);
670100966Siwasaki
671100966Siwasakivoid
672151937SjkimAcpiDmDumpInteger64 (
673151937Sjkim    UINT64                  Value,
674151937Sjkim    char                    *Name);
675151937Sjkim
676151937Sjkimvoid
677151937SjkimAcpiDmResourceTemplate (
678102550Siwasaki    ACPI_OP_WALK_INFO       *Info,
679167802Sjkim    ACPI_PARSE_OBJECT       *Op,
680100966Siwasaki    UINT8                   *ByteData,
681100966Siwasaki    UINT32                  ByteCount);
682100966Siwasaki
683167802SjkimACPI_STATUS
684151937SjkimAcpiDmIsResourceTemplate (
685100966Siwasaki    ACPI_PARSE_OBJECT       *Op);
686100966Siwasaki
687100966Siwasakivoid
688100966SiwasakiAcpiDmBitList (
689100966Siwasaki    UINT16                  Mask);
690100966Siwasaki
691107325Siwasakivoid
692167802SjkimAcpiDmDescriptorName (
693167802Sjkim    void);
694151937Sjkim
695167802Sjkim
696100966Siwasaki/*
697100966Siwasaki * dmresrcl
698100966Siwasaki */
699100966Siwasakivoid
700100966SiwasakiAcpiDmWordDescriptor (
701151937Sjkim    AML_RESOURCE            *Resource,
702100966Siwasaki    UINT32                  Length,
703100966Siwasaki    UINT32                  Level);
704100966Siwasaki
705100966Siwasakivoid
706100966SiwasakiAcpiDmDwordDescriptor (
707151937Sjkim    AML_RESOURCE            *Resource,
708100966Siwasaki    UINT32                  Length,
709100966Siwasaki    UINT32                  Level);
710100966Siwasaki
711100966Siwasakivoid
712151937SjkimAcpiDmExtendedDescriptor (
713151937Sjkim    AML_RESOURCE            *Resource,
714151937Sjkim    UINT32                  Length,
715151937Sjkim    UINT32                  Level);
716151937Sjkim
717151937Sjkimvoid
718100966SiwasakiAcpiDmQwordDescriptor (
719151937Sjkim    AML_RESOURCE            *Resource,
720100966Siwasaki    UINT32                  Length,
721100966Siwasaki    UINT32                  Level);
722100966Siwasaki
723100966Siwasakivoid
724100966SiwasakiAcpiDmMemory24Descriptor (
725151937Sjkim    AML_RESOURCE            *Resource,
726100966Siwasaki    UINT32                  Length,
727100966Siwasaki    UINT32                  Level);
728100966Siwasaki
729100966Siwasakivoid
730100966SiwasakiAcpiDmMemory32Descriptor (
731151937Sjkim    AML_RESOURCE            *Resource,
732100966Siwasaki    UINT32                  Length,
733100966Siwasaki    UINT32                  Level);
734100966Siwasaki
735100966Siwasakivoid
736151937SjkimAcpiDmFixedMemory32Descriptor (
737151937Sjkim    AML_RESOURCE            *Resource,
738100966Siwasaki    UINT32                  Length,
739100966Siwasaki    UINT32                  Level);
740100966Siwasaki
741100966Siwasakivoid
742100966SiwasakiAcpiDmGenericRegisterDescriptor (
743151937Sjkim    AML_RESOURCE            *Resource,
744100966Siwasaki    UINT32                  Length,
745100966Siwasaki    UINT32                  Level);
746100966Siwasaki
747100966Siwasakivoid
748100966SiwasakiAcpiDmInterruptDescriptor (
749151937Sjkim    AML_RESOURCE            *Resource,
750100966Siwasaki    UINT32                  Length,
751100966Siwasaki    UINT32                  Level);
752100966Siwasaki
753100966Siwasakivoid
754100966SiwasakiAcpiDmVendorLargeDescriptor (
755151937Sjkim    AML_RESOURCE            *Resource,
756100966Siwasaki    UINT32                  Length,
757100966Siwasaki    UINT32                  Level);
758100966Siwasaki
759151937Sjkimvoid
760228110SjkimAcpiDmGpioDescriptor (
761228110Sjkim    AML_RESOURCE            *Resource,
762228110Sjkim    UINT32                  Length,
763228110Sjkim    UINT32                  Level);
764228110Sjkim
765228110Sjkimvoid
766228110SjkimAcpiDmSerialBusDescriptor (
767228110Sjkim    AML_RESOURCE            *Resource,
768228110Sjkim    UINT32                  Length,
769228110Sjkim    UINT32                  Level);
770228110Sjkim
771228110Sjkimvoid
772151937SjkimAcpiDmVendorCommon (
773151937Sjkim    char                    *Name,
774151937Sjkim    UINT8                   *ByteData,
775151937Sjkim    UINT32                  Length,
776151937Sjkim    UINT32                  Level);
777100966Siwasaki
778151937Sjkim
779100966Siwasaki/*
780100966Siwasaki * dmresrcs
781100966Siwasaki */
782100966Siwasakivoid
783100966SiwasakiAcpiDmIrqDescriptor (
784151937Sjkim    AML_RESOURCE            *Resource,
785100966Siwasaki    UINT32                  Length,
786100966Siwasaki    UINT32                  Level);
787100966Siwasaki
788100966Siwasakivoid
789100966SiwasakiAcpiDmDmaDescriptor (
790151937Sjkim    AML_RESOURCE            *Resource,
791100966Siwasaki    UINT32                  Length,
792100966Siwasaki    UINT32                  Level);
793100966Siwasaki
794100966Siwasakivoid
795228110SjkimAcpiDmFixedDmaDescriptor (
796228110Sjkim    AML_RESOURCE            *Resource,
797228110Sjkim    UINT32                  Length,
798228110Sjkim    UINT32                  Level);
799228110Sjkim
800228110Sjkimvoid
801100966SiwasakiAcpiDmIoDescriptor (
802151937Sjkim    AML_RESOURCE            *Resource,
803100966Siwasaki    UINT32                  Length,
804100966Siwasaki    UINT32                  Level);
805100966Siwasaki
806100966Siwasakivoid
807100966SiwasakiAcpiDmFixedIoDescriptor (
808151937Sjkim    AML_RESOURCE            *Resource,
809100966Siwasaki    UINT32                  Length,
810100966Siwasaki    UINT32                  Level);
811100966Siwasaki
812100966Siwasakivoid
813100966SiwasakiAcpiDmStartDependentDescriptor (
814151937Sjkim    AML_RESOURCE            *Resource,
815100966Siwasaki    UINT32                  Length,
816100966Siwasaki    UINT32                  Level);
817100966Siwasaki
818100966Siwasakivoid
819100966SiwasakiAcpiDmEndDependentDescriptor (
820151937Sjkim    AML_RESOURCE            *Resource,
821100966Siwasaki    UINT32                  Length,
822100966Siwasaki    UINT32                  Level);
823100966Siwasaki
824100966Siwasakivoid
825100966SiwasakiAcpiDmVendorSmallDescriptor (
826151937Sjkim    AML_RESOURCE            *Resource,
827100966Siwasaki    UINT32                  Length,
828100966Siwasaki    UINT32                  Level);
829100966Siwasaki
830100966Siwasaki
831128212Snjl/*
832128212Snjl * dmutils
833128212Snjl */
834128212Snjlvoid
835198237SjkimAcpiDmDecodeAttribute (
836198237Sjkim    UINT8                   Attribute);
837128212Snjl
838198237Sjkimvoid
839198237SjkimAcpiDmIndent (
840198237Sjkim    UINT32                  Level);
841198237Sjkim
842198237SjkimBOOLEAN
843198237SjkimAcpiDmCommaIfListMember (
844198237Sjkim    ACPI_PARSE_OBJECT       *Op);
845198237Sjkim
846198237Sjkimvoid
847198237SjkimAcpiDmCommaIfFieldMember (
848198237Sjkim    ACPI_PARSE_OBJECT       *Op);
849198237Sjkim
850198237Sjkim
851167802Sjkim/*
852167802Sjkim * dmrestag
853167802Sjkim */
854167802Sjkimvoid
855167802SjkimAcpiDmFindResources (
856167802Sjkim    ACPI_PARSE_OBJECT       *Root);
857167802Sjkim
858167802Sjkimvoid
859167802SjkimAcpiDmCheckResourceReference (
860167802Sjkim    ACPI_PARSE_OBJECT       *Op,
861167802Sjkim    ACPI_WALK_STATE         *WalkState);
862167802Sjkim
863209746Sjkim
864209746Sjkim/*
865209746Sjkim * acdisasm
866209746Sjkim */
867209746Sjkimvoid
868209746SjkimAdDisassemblerHeader (
869209746Sjkim    char                    *Filename);
870209746Sjkim
871209746Sjkim
872100966Siwasaki#endif  /* __ACDISASM_H__ */
873