1100966Siwasaki/******************************************************************************
2100966Siwasaki *
3100966Siwasaki * Name: acdisasm.h - AML disassembler
4100966Siwasaki *
5100966Siwasaki *****************************************************************************/
6100966Siwasaki
7217365Sjkim/*
8306536Sjkim * Copyright (C) 2000 - 2016, 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
63284460Sjkimtypedef struct acpi_dmtable_info
64167802Sjkim{
65167802Sjkim    UINT8                       Opcode;
66229989Sjkim    UINT16                      Offset;
67167802Sjkim    char                        *Name;
68209746Sjkim    UINT8                       Flags;
69100966Siwasaki
70167802Sjkim} ACPI_DMTABLE_INFO;
71100966Siwasaki
72281075Sdim/* Values for Flags field above */
73281075Sdim
74209746Sjkim#define DT_LENGTH                       0x01    /* Field is a subtable length */
75209746Sjkim#define DT_FLAG                         0x02    /* Field is a flag value */
76209746Sjkim#define DT_NON_ZERO                     0x04    /* Field must be non-zero */
77281075Sdim#define DT_OPTIONAL                     0x08    /* Field is optional */
78281075Sdim#define DT_DESCRIBES_OPTIONAL           0x10    /* Field describes an optional field (length, etc.) */
79281075Sdim#define DT_COUNT                        0x20    /* Currently not used */
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,
111252279Sjkim    ACPI_DMT_BUF10,
112228110Sjkim    ACPI_DMT_BUF16,
113228110Sjkim    ACPI_DMT_BUF128,
114228110Sjkim    ACPI_DMT_SIG,
115228110Sjkim    ACPI_DMT_STRING,
116228110Sjkim    ACPI_DMT_NAME4,
117228110Sjkim    ACPI_DMT_NAME6,
118228110Sjkim    ACPI_DMT_NAME8,
119228110Sjkim
120228110Sjkim    /* Types that are decoded to strings and miscellaneous */
121228110Sjkim
122228110Sjkim    ACPI_DMT_ACCWIDTH,
123228110Sjkim    ACPI_DMT_CHKSUM,
124228110Sjkim    ACPI_DMT_GAS,
125228110Sjkim    ACPI_DMT_SPACEID,
126228110Sjkim    ACPI_DMT_UNICODE,
127228110Sjkim    ACPI_DMT_UUID,
128228110Sjkim
129228110Sjkim    /* Types used only for the Data Table Compiler */
130228110Sjkim
131228110Sjkim    ACPI_DMT_BUFFER,
132281687Sjkim    ACPI_DMT_RAW_BUFFER,  /* Large, multiple line buffer */
133228110Sjkim    ACPI_DMT_DEVICE_PATH,
134228110Sjkim    ACPI_DMT_LABEL,
135228110Sjkim    ACPI_DMT_PCI_PATH,
136228110Sjkim
137228110Sjkim    /* Types that are specific to particular ACPI tables */
138228110Sjkim
139228110Sjkim    ACPI_DMT_ASF,
140228110Sjkim    ACPI_DMT_DMAR,
141281075Sdim    ACPI_DMT_DMAR_SCOPE,
142228110Sjkim    ACPI_DMT_EINJACT,
143228110Sjkim    ACPI_DMT_EINJINST,
144228110Sjkim    ACPI_DMT_ERSTACT,
145228110Sjkim    ACPI_DMT_ERSTINST,
146228110Sjkim    ACPI_DMT_FADTPM,
147281075Sdim    ACPI_DMT_GTDT,
148228110Sjkim    ACPI_DMT_HEST,
149228110Sjkim    ACPI_DMT_HESTNTFY,
150228110Sjkim    ACPI_DMT_HESTNTYP,
151284460Sjkim    ACPI_DMT_IORTMEM,
152228110Sjkim    ACPI_DMT_IVRS,
153281075Sdim    ACPI_DMT_LPIT,
154228110Sjkim    ACPI_DMT_MADT,
155284460Sjkim    ACPI_DMT_NFIT,
156281075Sdim    ACPI_DMT_PCCT,
157228110Sjkim    ACPI_DMT_PMTT,
158228110Sjkim    ACPI_DMT_SLIC,
159228110Sjkim    ACPI_DMT_SRAT,
160228110Sjkim
161228110Sjkim    /* Special opcodes */
162228110Sjkim
163228110Sjkim    ACPI_DMT_EXTRA_TEXT,
164228110Sjkim    ACPI_DMT_EXIT
165228110Sjkim
166228110Sjkim} ACPI_ENTRY_TYPES;
167228110Sjkim
168167802Sjkimtypedef
169193267Sjkimvoid (*ACPI_DMTABLE_HANDLER) (
170167802Sjkim    ACPI_TABLE_HEADER       *Table);
171167802Sjkim
172209746Sjkimtypedef
173209746SjkimACPI_STATUS (*ACPI_CMTABLE_HANDLER) (
174209746Sjkim    void                    **PFieldList);
175209746Sjkim
176167802Sjkimtypedef struct acpi_dmtable_data
177167802Sjkim{
178167802Sjkim    char                    *Signature;
179193267Sjkim    ACPI_DMTABLE_INFO       *TableInfo;
180193267Sjkim    ACPI_DMTABLE_HANDLER    TableHandler;
181209746Sjkim    ACPI_CMTABLE_HANDLER    CmTableHandler;
182209746Sjkim    const unsigned char     *Template;
183167802Sjkim
184167802Sjkim} ACPI_DMTABLE_DATA;
185167802Sjkim
186167802Sjkim
187100966Siwasakitypedef struct acpi_op_walk_info
188100966Siwasaki{
189306536Sjkim    ACPI_WALK_STATE         *WalkState;
190306536Sjkim    ACPI_PARSE_OBJECT       *MappingOp;
191306536Sjkim    UINT8                   *PreviousAml;
192306536Sjkim    UINT8                   *StartAml;
193100966Siwasaki    UINT32                  Level;
194167802Sjkim    UINT32                  LastLevel;
195167802Sjkim    UINT32                  Count;
196100966Siwasaki    UINT32                  BitOffset;
197167802Sjkim    UINT32                  Flags;
198306536Sjkim    UINT32                  AmlOffset;
199100966Siwasaki
200100966Siwasaki} ACPI_OP_WALK_INFO;
201100966Siwasaki
202209746Sjkim/*
203209746Sjkim * TBD - another copy of this is in asltypes.h, fix
204209746Sjkim */
205209746Sjkim#ifndef ASL_WALK_CALLBACK_DEFINED
206100966Siwasakitypedef
207100966SiwasakiACPI_STATUS (*ASL_WALK_CALLBACK) (
208100966Siwasaki    ACPI_PARSE_OBJECT           *Op,
209100966Siwasaki    UINT32                      Level,
210100966Siwasaki    void                        *Context);
211209746Sjkim#define ASL_WALK_CALLBACK_DEFINED
212209746Sjkim#endif
213100966Siwasaki
214228110Sjkimtypedef
215228110Sjkimvoid (*ACPI_RESOURCE_HANDLER) (
216281075Sdim    ACPI_OP_WALK_INFO       *Info,
217228110Sjkim    AML_RESOURCE            *Resource,
218228110Sjkim    UINT32                  Length,
219228110Sjkim    UINT32                  Level);
220209746Sjkim
221167802Sjkimtypedef struct acpi_resource_tag
222167802Sjkim{
223167802Sjkim    UINT32                  BitIndex;
224167802Sjkim    char                    *Tag;
225100966Siwasaki
226167802Sjkim} ACPI_RESOURCE_TAG;
227167802Sjkim
228167802Sjkim/* Strings used for decoding flags to ASL keywords */
229167802Sjkim
230167802Sjkimextern const char               *AcpiGbl_WordDecode[];
231167802Sjkimextern const char               *AcpiGbl_IrqDecode[];
232167802Sjkimextern const char               *AcpiGbl_LockRule[];
233167802Sjkimextern const char               *AcpiGbl_AccessTypes[];
234167802Sjkimextern const char               *AcpiGbl_UpdateRules[];
235167802Sjkimextern const char               *AcpiGbl_MatchOps[];
236167802Sjkim
237167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf0[];
238167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf1[];
239167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf1a[];
240167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf2[];
241167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf2a[];
242167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf3[];
243167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf4[];
244167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsfHdr[];
245167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoBoot[];
246193267Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoBert[];
247228110Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoBgrt[];
248167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoCpep[];
249167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoCpep0[];
250239340Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoCsrt0[];
251239340Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoCsrt1[];
252245582Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoCsrt2[];
253284460Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoCsrt2a[];
254239340Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoDbg2[];
255239340Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoDbg2Device[];
256239340Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoDbg2Addr[];
257239340Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoDbg2Size[];
258239340Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoDbg2Name[];
259281075Sdimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoDbg2OemData[];
260167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoDbgp[];
261167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmar[];
262167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmarHdr[];
263167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmarScope[];
264167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmar0[];
265167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmar1[];
266193267Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmar2[];
267197104Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmar3[];
268281075Sdimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmar4[];
269228110Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoDrtm[];
270284460Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoDrtm0[];
271284460Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoDrtm0a[];
272284460Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoDrtm1[];
273284460Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoDrtm1a[];
274284460Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoDrtm2[];
275167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoEcdt[];
276193267Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoEinj[];
277193267Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoEinj0[];
278193267Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoErst[];
279209746Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoErst0[];
280167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoFacs[];
281167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoFadt1[];
282167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoFadt2[];
283193267Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoFadt3[];
284228110Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoFadt5[];
285284460Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoFadt6[];
286228110Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoFpdt[];
287228110Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoFpdtHdr[];
288228110Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoFpdt0[];
289228110Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoFpdt1[];
290167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoGas[];
291228110Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoGtdt[];
292281075Sdimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoGtdtHdr[];
293281075Sdimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoGtdt0[];
294281075Sdimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoGtdt0a[];
295281075Sdimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoGtdt1[];
296167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoHeader[];
297193267Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest[];
298193267Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest0[];
299193267Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest1[];
300197104Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest2[];
301193267Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest6[];
302193267Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest7[];
303193267Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest8[];
304193267Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest9[];
305306536Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest10[];
306193267Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoHestNotify[];
307197104Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoHestBank[];
308167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoHpet[];
309281075Sdimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoLpitHdr[];
310281075Sdimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoLpit0[];
311281075Sdimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoLpit1[];
312284460Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoIort[];
313284460Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoIort0[];
314284460Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoIort0a[];
315284460Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoIort1[];
316284460Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoIort1a[];
317284460Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoIort2[];
318284460Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoIort3[];
319284460Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoIort3a[];
320284460Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoIort3b[];
321284460Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoIort3c[];
322306536Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoIort4[];
323284460Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoIortAcc[];
324284460Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoIortHdr[];
325284460Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoIortMap[];
326284460Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoIortPad[];
327197104Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs[];
328197104Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs0[];
329197104Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs1[];
330197104Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs4[];
331197104Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs8a[];
332197104Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs8b[];
333197104Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs8c[];
334197104Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrsHdr[];
335167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt[];
336167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt0[];
337167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt1[];
338167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt2[];
339167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt3[];
340167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt4[];
341167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt5[];
342167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt6[];
343167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt7[];
344167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt8[];
345193267Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt9[];
346193267Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt10[];
347228110Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt11[];
348228110Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt12[];
349281075Sdimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt13[];
350281075Sdimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt14[];
351284460Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt15[];
352167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadtHdr[];
353167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoMcfg[];
354167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoMcfg0[];
355204773Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoMchi[];
356228110Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoMpst[];
357228110Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoMpst0[];
358228110Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoMpst0A[];
359228110Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoMpst0B[];
360228110Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoMpst1[];
361228110Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoMpst2[];
362197104Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoMsct[];
363197104Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoMsct0[];
364246849Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoMtmr[];
365246849Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoMtmr0[];
366284460Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoNfit[];
367284460Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoNfitHdr[];
368284460Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoNfit0[];
369284460Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoNfit1[];
370284460Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoNfit2[];
371284460Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoNfit2a[];
372284460Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoNfit3[];
373284460Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoNfit3a[];
374284460Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoNfit4[];
375284460Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoNfit5[];
376284460Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoNfit6[];
377284460Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoNfit6a[];
378228110Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoPmtt[];
379228110Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoPmtt0[];
380228110Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoPmtt1[];
381228110Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoPmtt1a[];
382228110Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoPmtt2[];
383228110Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoPmttHdr[];
384228110Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoPcct[];
385281075Sdimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoPcctHdr[];
386228110Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoPcct0[];
387281075Sdimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoPcct1[];
388306536Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoPcct2[];
389167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoRsdp1[];
390167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoRsdp2[];
391228110Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoS3pt[];
392228110Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoS3ptHdr[];
393228110Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoS3pt0[];
394228110Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoS3pt1[];
395167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoSbst[];
396281687Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoSlic[];
397167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoSlit[];
398167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoSpcr[];
399167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoSpmi[];
400167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoSrat[];
401193267Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoSratHdr[];
402167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoSrat0[];
403167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoSrat1[];
404193267Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoSrat2[];
405281075Sdimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoSrat3[];
406284460Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoStao[];
407284460Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoStaoStr[];
408306536Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoTcpaHdr[];
409306536Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoTcpaClient[];
410306536Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoTcpaServer[];
411245582Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoTpm2[];
412197104Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoUefi[];
413246849Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoVrtc[];
414246849Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoVrtc0[];
415197104Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoWaet[];
416197104Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoWdat[];
417197104Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoWdat0[];
418209746Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoWddt[];
419167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoWdrt[];
420284460Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoWpbt[];
421284460Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoWpbt0[];
422284460Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoXenv[];
423167802Sjkim
424217365Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoGeneric[][2];
425167802Sjkim
426100966Siwasaki/*
427284460Sjkim * dmtable and ahtable
428167802Sjkim */
429284460Sjkimextern const ACPI_DMTABLE_DATA  AcpiDmTableData[];
430284460Sjkimextern const AH_TABLE           AcpiSupportedTables[];
431209746Sjkim
432209746SjkimUINT8
433209746SjkimAcpiDmGenerateChecksum (
434209746Sjkim    void                    *Table,
435209746Sjkim    UINT32                  Length,
436209746Sjkim    UINT8                   OriginalChecksum);
437209746Sjkim
438284460Sjkimconst ACPI_DMTABLE_DATA *
439209746SjkimAcpiDmGetTableData (
440209746Sjkim    char                    *Signature);
441209746Sjkim
442167802Sjkimvoid
443167802SjkimAcpiDmDumpDataTable (
444167802Sjkim    ACPI_TABLE_HEADER       *Table);
445167802Sjkim
446193267SjkimACPI_STATUS
447167802SjkimAcpiDmDumpTable (
448167802Sjkim    UINT32                  TableLength,
449167802Sjkim    UINT32                  TableOffset,
450167802Sjkim    void                    *Table,
451167802Sjkim    UINT32                  SubTableLength,
452167802Sjkim    ACPI_DMTABLE_INFO        *Info);
453167802Sjkim
454167802Sjkimvoid
455167802SjkimAcpiDmLineHeader (
456167802Sjkim    UINT32                  Offset,
457167802Sjkim    UINT32                  ByteLength,
458167802Sjkim    char                    *Name);
459167802Sjkim
460167802Sjkimvoid
461167802SjkimAcpiDmLineHeader2 (
462167802Sjkim    UINT32                  Offset,
463167802Sjkim    UINT32                  ByteLength,
464167802Sjkim    char                    *Name,
465167802Sjkim    UINT32                  Value);
466167802Sjkim
467167802Sjkim
468167802Sjkim/*
469167802Sjkim * dmtbdump
470167802Sjkim */
471167802Sjkimvoid
472281687SjkimAcpiDmDumpBuffer (
473281687Sjkim    void                    *Table,
474281687Sjkim    UINT32                  BufferOffset,
475281687Sjkim    UINT32                  Length,
476281687Sjkim    UINT32                  AbsoluteOffset,
477284460Sjkim    char                    *Header);
478281687Sjkim
479281687Sjkimvoid
480284460SjkimAcpiDmDumpUnicode (
481284460Sjkim    void                    *Table,
482284460Sjkim    UINT32                  BufferOffset,
483284460Sjkim    UINT32                  ByteLength);
484284460Sjkim
485284460Sjkimvoid
486167802SjkimAcpiDmDumpAsf (
487167802Sjkim    ACPI_TABLE_HEADER       *Table);
488167802Sjkim
489167802Sjkimvoid
490167802SjkimAcpiDmDumpCpep (
491167802Sjkim    ACPI_TABLE_HEADER       *Table);
492167802Sjkim
493167802Sjkimvoid
494239340SjkimAcpiDmDumpCsrt (
495239340Sjkim    ACPI_TABLE_HEADER       *Table);
496239340Sjkim
497239340Sjkimvoid
498239340SjkimAcpiDmDumpDbg2 (
499239340Sjkim    ACPI_TABLE_HEADER       *Table);
500239340Sjkim
501239340Sjkimvoid
502167802SjkimAcpiDmDumpDmar (
503167802Sjkim    ACPI_TABLE_HEADER       *Table);
504167802Sjkim
505167802Sjkimvoid
506284460SjkimAcpiDmDumpDrtm (
507284460Sjkim    ACPI_TABLE_HEADER       *Table);
508284460Sjkim
509284460Sjkimvoid
510193267SjkimAcpiDmDumpEinj (
511193267Sjkim    ACPI_TABLE_HEADER       *Table);
512193267Sjkim
513193267Sjkimvoid
514193267SjkimAcpiDmDumpErst (
515193267Sjkim    ACPI_TABLE_HEADER       *Table);
516193267Sjkim
517193267Sjkimvoid
518167802SjkimAcpiDmDumpFadt (
519167802Sjkim    ACPI_TABLE_HEADER       *Table);
520167802Sjkim
521167802Sjkimvoid
522228110SjkimAcpiDmDumpFpdt (
523228110Sjkim    ACPI_TABLE_HEADER       *Table);
524228110Sjkim
525228110Sjkimvoid
526281075SdimAcpiDmDumpGtdt (
527281075Sdim    ACPI_TABLE_HEADER       *Table);
528281075Sdim
529281075Sdimvoid
530193267SjkimAcpiDmDumpHest (
531167802Sjkim    ACPI_TABLE_HEADER       *Table);
532167802Sjkim
533167802Sjkimvoid
534284460SjkimAcpiDmDumpIort (
535284460Sjkim    ACPI_TABLE_HEADER       *Table);
536284460Sjkim
537284460Sjkimvoid
538197104SjkimAcpiDmDumpIvrs (
539197104Sjkim    ACPI_TABLE_HEADER       *Table);
540197104Sjkim
541197104Sjkimvoid
542281075SdimAcpiDmDumpLpit (
543281075Sdim    ACPI_TABLE_HEADER       *Table);
544281075Sdim
545281075Sdimvoid
546228110SjkimAcpiDmDumpMadt (
547228110Sjkim    ACPI_TABLE_HEADER       *Table);
548228110Sjkim
549228110Sjkimvoid
550167802SjkimAcpiDmDumpMcfg (
551167802Sjkim    ACPI_TABLE_HEADER       *Table);
552167802Sjkim
553167802Sjkimvoid
554228110SjkimAcpiDmDumpMpst (
555167802Sjkim    ACPI_TABLE_HEADER       *Table);
556167802Sjkim
557197104Sjkimvoid
558197104SjkimAcpiDmDumpMsct (
559197104Sjkim    ACPI_TABLE_HEADER       *Table);
560197104Sjkim
561228110Sjkimvoid
562246849SjkimAcpiDmDumpMtmr (
563246849Sjkim    ACPI_TABLE_HEADER       *Table);
564246849Sjkim
565246849Sjkimvoid
566284460SjkimAcpiDmDumpNfit (
567284460Sjkim    ACPI_TABLE_HEADER       *Table);
568284460Sjkim
569284460Sjkimvoid
570228110SjkimAcpiDmDumpPcct (
571228110Sjkim    ACPI_TABLE_HEADER       *Table);
572228110Sjkim
573228110Sjkimvoid
574228110SjkimAcpiDmDumpPmtt (
575228110Sjkim    ACPI_TABLE_HEADER       *Table);
576228110Sjkim
577167802SjkimUINT32
578167802SjkimAcpiDmDumpRsdp (
579167802Sjkim    ACPI_TABLE_HEADER       *Table);
580167802Sjkim
581167802Sjkimvoid
582167802SjkimAcpiDmDumpRsdt (
583167802Sjkim    ACPI_TABLE_HEADER       *Table);
584167802Sjkim
585228110SjkimUINT32
586228110SjkimAcpiDmDumpS3pt (
587228110Sjkim    ACPI_TABLE_HEADER       *Table);
588228110Sjkim
589167802Sjkimvoid
590219707SjkimAcpiDmDumpSlic (
591219707Sjkim    ACPI_TABLE_HEADER       *Table);
592219707Sjkim
593219707Sjkimvoid
594167802SjkimAcpiDmDumpSlit (
595167802Sjkim    ACPI_TABLE_HEADER       *Table);
596167802Sjkim
597167802Sjkimvoid
598193267SjkimAcpiDmDumpSrat (
599193267Sjkim    ACPI_TABLE_HEADER       *Table);
600193267Sjkim
601193267Sjkimvoid
602284460SjkimAcpiDmDumpStao (
603284460Sjkim    ACPI_TABLE_HEADER       *Table);
604284460Sjkim
605284460Sjkimvoid
606306536SjkimAcpiDmDumpTcpa (
607306536Sjkim    ACPI_TABLE_HEADER       *Table);
608306536Sjkim
609306536Sjkimvoid
610246849SjkimAcpiDmDumpVrtc (
611246849Sjkim    ACPI_TABLE_HEADER       *Table);
612246849Sjkim
613246849Sjkimvoid
614197104SjkimAcpiDmDumpWdat (
615197104Sjkim    ACPI_TABLE_HEADER       *Table);
616197104Sjkim
617197104Sjkimvoid
618284460SjkimAcpiDmDumpWpbt (
619284460Sjkim    ACPI_TABLE_HEADER       *Table);
620284460Sjkim
621284460Sjkimvoid
622167802SjkimAcpiDmDumpXsdt (
623167802Sjkim    ACPI_TABLE_HEADER       *Table);
624167802Sjkim
625167802Sjkim
626167802Sjkim/*
627100966Siwasaki * dmwalk
628100966Siwasaki */
629100966Siwasakivoid
630100966SiwasakiAcpiDmDisassemble (
631100966Siwasaki    ACPI_WALK_STATE         *WalkState,
632100966Siwasaki    ACPI_PARSE_OBJECT       *Origin,
633100966Siwasaki    UINT32                  NumOpcodes);
634100966Siwasaki
635167802Sjkimvoid
636167802SjkimAcpiDmWalkParseTree (
637167802Sjkim    ACPI_PARSE_OBJECT       *Op,
638167802Sjkim    ASL_WALK_CALLBACK       DescendingCallback,
639167802Sjkim    ASL_WALK_CALLBACK       AscendingCallback,
640167802Sjkim    void                    *Context);
641100966Siwasaki
642167802Sjkim
643151937Sjkim/*
644151937Sjkim * dmopcode
645151937Sjkim */
646100966Siwasakivoid
647100966SiwasakiAcpiDmDisassembleOneOp (
648100966Siwasaki    ACPI_WALK_STATE         *WalkState,
649102550Siwasaki    ACPI_OP_WALK_INFO       *Info,
650100966Siwasaki    ACPI_PARSE_OBJECT       *Op);
651100966Siwasaki
652100966SiwasakiUINT32
653100966SiwasakiAcpiDmListType (
654100966Siwasaki    ACPI_PARSE_OBJECT       *Op);
655100966Siwasaki
656100966Siwasakivoid
657100966SiwasakiAcpiDmMethodFlags (
658100966Siwasaki    ACPI_PARSE_OBJECT       *Op);
659100966Siwasaki
660100966Siwasakivoid
661281075SdimAcpiDmDisplayTargetPathname (
662281075Sdim    ACPI_PARSE_OBJECT       *Op);
663281075Sdim
664281075Sdimvoid
665281075SdimAcpiDmNotifyDescription (
666281075Sdim    ACPI_PARSE_OBJECT       *Op);
667281075Sdim
668281075Sdimvoid
669237412SjkimAcpiDmPredefinedDescription (
670237412Sjkim    ACPI_PARSE_OBJECT       *Op);
671237412Sjkim
672237412Sjkimvoid
673237412SjkimAcpiDmFieldPredefinedDescription (
674237412Sjkim    ACPI_PARSE_OBJECT       *Op);
675237412Sjkim
676237412Sjkimvoid
677100966SiwasakiAcpiDmFieldFlags (
678100966Siwasaki    ACPI_PARSE_OBJECT       *Op);
679100966Siwasaki
680100966Siwasakivoid
681100966SiwasakiAcpiDmAddressSpace (
682100966Siwasaki    UINT8                   SpaceId);
683100966Siwasaki
684100966Siwasakivoid
685100966SiwasakiAcpiDmRegionFlags (
686100966Siwasaki    ACPI_PARSE_OBJECT       *Op);
687100966Siwasaki
688100966Siwasakivoid
689100966SiwasakiAcpiDmMatchOp (
690100966Siwasaki    ACPI_PARSE_OBJECT       *Op);
691100966Siwasaki
692100966Siwasaki
693102550Siwasaki/*
694151937Sjkim * dmnames
695117521Snjl */
696151937SjkimUINT32
697151937SjkimAcpiDmDumpName (
698193267Sjkim    UINT32                  Name);
699117521Snjl
700151937SjkimACPI_STATUS
701151937SjkimAcpiPsDisplayObjectPathname (
702151937Sjkim    ACPI_WALK_STATE         *WalkState,
703151937Sjkim    ACPI_PARSE_OBJECT       *Op);
704151937Sjkim
705117521Snjlvoid
706151937SjkimAcpiDmNamestring (
707151937Sjkim    char                    *Name);
708117521Snjl
709151937Sjkim
710151937Sjkim/*
711100966Siwasaki * dmbuffer
712100966Siwasaki */
713151937Sjkimvoid
714151937SjkimAcpiDmDisasmByteList (
715151937Sjkim    UINT32                  Level,
716151937Sjkim    UINT8                   *ByteData,
717151937Sjkim    UINT32                  ByteCount);
718100966Siwasaki
719100966Siwasakivoid
720151937SjkimAcpiDmByteList (
721151937Sjkim    ACPI_OP_WALK_INFO       *Info,
722100966Siwasaki    ACPI_PARSE_OBJECT       *Op);
723100966Siwasaki
724100966Siwasakivoid
725281075SdimAcpiDmCheckForHardwareId (
726151937Sjkim    ACPI_PARSE_OBJECT       *Op);
727151937Sjkim
728151937Sjkimvoid
729281075SdimAcpiDmDecompressEisaId (
730100966Siwasaki    UINT32                  EncodedId);
731100966Siwasaki
732100966SiwasakiBOOLEAN
733281075SdimAcpiDmIsUuidBuffer (
734281075Sdim    ACPI_PARSE_OBJECT       *Op);
735281075Sdim
736281075SdimBOOLEAN
737100966SiwasakiAcpiDmIsUnicodeBuffer (
738100966Siwasaki    ACPI_PARSE_OBJECT       *Op);
739100966Siwasaki
740100966SiwasakiBOOLEAN
741100966SiwasakiAcpiDmIsStringBuffer (
742100966Siwasaki    ACPI_PARSE_OBJECT       *Op);
743100966Siwasaki
744239340SjkimBOOLEAN
745239340SjkimAcpiDmIsPldBuffer (
746239340Sjkim    ACPI_PARSE_OBJECT       *Op);
747100966Siwasaki
748239340Sjkim
749100966Siwasaki/*
750243347Sjkim * dmdeferred
751243347Sjkim */
752243347SjkimACPI_STATUS
753243347SjkimAcpiDmParseDeferredOps (
754243347Sjkim    ACPI_PARSE_OBJECT       *Root);
755243347Sjkim
756243347Sjkim
757243347Sjkim/*
758198237Sjkim * dmextern
759198237Sjkim */
760210976SjkimACPI_STATUS
761210976SjkimAcpiDmAddToExternalFileList (
762210976Sjkim    char                    *PathList);
763210976Sjkim
764198237Sjkimvoid
765210976SjkimAcpiDmClearExternalFileList (
766210976Sjkim    void);
767210976Sjkim
768210976Sjkimvoid
769281075SdimAcpiDmAddOpToExternalList (
770198237Sjkim    ACPI_PARSE_OBJECT       *Op,
771198237Sjkim    char                    *Path,
772198237Sjkim    UINT8                   Type,
773281075Sdim    UINT32                  Value,
774281075Sdim    UINT16                  Flags);
775198237Sjkim
776198237Sjkimvoid
777281075SdimAcpiDmAddNodeToExternalList (
778281075Sdim    ACPI_NAMESPACE_NODE     *Node,
779281075Sdim    UINT8                   Type,
780281075Sdim    UINT32                  Value,
781281075Sdim    UINT16                  Flags);
782281075Sdim
783281075Sdimvoid
784198237SjkimAcpiDmAddExternalsToNamespace (
785198237Sjkim    void);
786198237Sjkim
787198237SjkimUINT32
788198237SjkimAcpiDmGetExternalMethodCount (
789198237Sjkim    void);
790198237Sjkim
791198237Sjkimvoid
792198237SjkimAcpiDmClearExternalList (
793198237Sjkim    void);
794198237Sjkim
795198237Sjkimvoid
796198237SjkimAcpiDmEmitExternals (
797198237Sjkim    void);
798198237Sjkim
799246849Sjkimvoid
800246849SjkimAcpiDmUnresolvedWarning (
801246849Sjkim    UINT8                   Type);
802198237Sjkim
803254745Sjkimvoid
804254745SjkimAcpiDmGetExternalsFromFile (
805254745Sjkim    void);
806246849Sjkim
807198237Sjkim/*
808100966Siwasaki * dmresrc
809100966Siwasaki */
810151937Sjkimvoid
811151937SjkimAcpiDmDumpInteger8 (
812151937Sjkim    UINT8                   Value,
813306536Sjkim    const char              *Name);
814100966Siwasaki
815100966Siwasakivoid
816151937SjkimAcpiDmDumpInteger16 (
817151937Sjkim    UINT16                  Value,
818306536Sjkim    const char              *Name);
819100966Siwasaki
820100966Siwasakivoid
821151937SjkimAcpiDmDumpInteger32 (
822151937Sjkim    UINT32                  Value,
823306536Sjkim    const char              *Name);
824100966Siwasaki
825100966Siwasakivoid
826151937SjkimAcpiDmDumpInteger64 (
827151937Sjkim    UINT64                  Value,
828306536Sjkim    const char              *Name);
829151937Sjkim
830151937Sjkimvoid
831151937SjkimAcpiDmResourceTemplate (
832102550Siwasaki    ACPI_OP_WALK_INFO       *Info,
833167802Sjkim    ACPI_PARSE_OBJECT       *Op,
834100966Siwasaki    UINT8                   *ByteData,
835100966Siwasaki    UINT32                  ByteCount);
836100966Siwasaki
837167802SjkimACPI_STATUS
838151937SjkimAcpiDmIsResourceTemplate (
839243347Sjkim    ACPI_WALK_STATE         *WalkState,
840100966Siwasaki    ACPI_PARSE_OBJECT       *Op);
841100966Siwasaki
842100966Siwasakivoid
843100966SiwasakiAcpiDmBitList (
844100966Siwasaki    UINT16                  Mask);
845100966Siwasaki
846107325Siwasakivoid
847167802SjkimAcpiDmDescriptorName (
848167802Sjkim    void);
849151937Sjkim
850167802Sjkim
851100966Siwasaki/*
852100966Siwasaki * dmresrcl
853100966Siwasaki */
854100966Siwasakivoid
855100966SiwasakiAcpiDmWordDescriptor (
856281075Sdim    ACPI_OP_WALK_INFO       *Info,
857151937Sjkim    AML_RESOURCE            *Resource,
858100966Siwasaki    UINT32                  Length,
859100966Siwasaki    UINT32                  Level);
860100966Siwasaki
861100966Siwasakivoid
862100966SiwasakiAcpiDmDwordDescriptor (
863281075Sdim    ACPI_OP_WALK_INFO       *Info,
864151937Sjkim    AML_RESOURCE            *Resource,
865100966Siwasaki    UINT32                  Length,
866100966Siwasaki    UINT32                  Level);
867100966Siwasaki
868100966Siwasakivoid
869151937SjkimAcpiDmExtendedDescriptor (
870281075Sdim    ACPI_OP_WALK_INFO       *Info,
871151937Sjkim    AML_RESOURCE            *Resource,
872151937Sjkim    UINT32                  Length,
873151937Sjkim    UINT32                  Level);
874151937Sjkim
875151937Sjkimvoid
876100966SiwasakiAcpiDmQwordDescriptor (
877281075Sdim    ACPI_OP_WALK_INFO       *Info,
878151937Sjkim    AML_RESOURCE            *Resource,
879100966Siwasaki    UINT32                  Length,
880100966Siwasaki    UINT32                  Level);
881100966Siwasaki
882100966Siwasakivoid
883100966SiwasakiAcpiDmMemory24Descriptor (
884281075Sdim    ACPI_OP_WALK_INFO       *Info,
885151937Sjkim    AML_RESOURCE            *Resource,
886100966Siwasaki    UINT32                  Length,
887100966Siwasaki    UINT32                  Level);
888100966Siwasaki
889100966Siwasakivoid
890100966SiwasakiAcpiDmMemory32Descriptor (
891281075Sdim    ACPI_OP_WALK_INFO       *Info,
892151937Sjkim    AML_RESOURCE            *Resource,
893100966Siwasaki    UINT32                  Length,
894100966Siwasaki    UINT32                  Level);
895100966Siwasaki
896100966Siwasakivoid
897151937SjkimAcpiDmFixedMemory32Descriptor (
898281075Sdim    ACPI_OP_WALK_INFO       *Info,
899151937Sjkim    AML_RESOURCE            *Resource,
900100966Siwasaki    UINT32                  Length,
901100966Siwasaki    UINT32                  Level);
902100966Siwasaki
903100966Siwasakivoid
904100966SiwasakiAcpiDmGenericRegisterDescriptor (
905281075Sdim    ACPI_OP_WALK_INFO       *Info,
906151937Sjkim    AML_RESOURCE            *Resource,
907100966Siwasaki    UINT32                  Length,
908100966Siwasaki    UINT32                  Level);
909100966Siwasaki
910100966Siwasakivoid
911100966SiwasakiAcpiDmInterruptDescriptor (
912281075Sdim    ACPI_OP_WALK_INFO       *Info,
913151937Sjkim    AML_RESOURCE            *Resource,
914100966Siwasaki    UINT32                  Length,
915100966Siwasaki    UINT32                  Level);
916100966Siwasaki
917100966Siwasakivoid
918100966SiwasakiAcpiDmVendorLargeDescriptor (
919281075Sdim    ACPI_OP_WALK_INFO       *Info,
920151937Sjkim    AML_RESOURCE            *Resource,
921100966Siwasaki    UINT32                  Length,
922100966Siwasaki    UINT32                  Level);
923100966Siwasaki
924151937Sjkimvoid
925228110SjkimAcpiDmGpioDescriptor (
926281075Sdim    ACPI_OP_WALK_INFO       *Info,
927228110Sjkim    AML_RESOURCE            *Resource,
928228110Sjkim    UINT32                  Length,
929228110Sjkim    UINT32                  Level);
930228110Sjkim
931228110Sjkimvoid
932228110SjkimAcpiDmSerialBusDescriptor (
933281075Sdim    ACPI_OP_WALK_INFO       *Info,
934228110Sjkim    AML_RESOURCE            *Resource,
935228110Sjkim    UINT32                  Length,
936228110Sjkim    UINT32                  Level);
937228110Sjkim
938228110Sjkimvoid
939151937SjkimAcpiDmVendorCommon (
940306536Sjkim    const char              *Name,
941151937Sjkim    UINT8                   *ByteData,
942151937Sjkim    UINT32                  Length,
943151937Sjkim    UINT32                  Level);
944100966Siwasaki
945151937Sjkim
946100966Siwasaki/*
947100966Siwasaki * dmresrcs
948100966Siwasaki */
949100966Siwasakivoid
950100966SiwasakiAcpiDmIrqDescriptor (
951281075Sdim    ACPI_OP_WALK_INFO       *Info,
952151937Sjkim    AML_RESOURCE            *Resource,
953100966Siwasaki    UINT32                  Length,
954100966Siwasaki    UINT32                  Level);
955100966Siwasaki
956100966Siwasakivoid
957100966SiwasakiAcpiDmDmaDescriptor (
958281075Sdim    ACPI_OP_WALK_INFO       *Info,
959151937Sjkim    AML_RESOURCE            *Resource,
960100966Siwasaki    UINT32                  Length,
961100966Siwasaki    UINT32                  Level);
962100966Siwasaki
963100966Siwasakivoid
964228110SjkimAcpiDmFixedDmaDescriptor (
965281075Sdim    ACPI_OP_WALK_INFO       *Info,
966228110Sjkim    AML_RESOURCE            *Resource,
967228110Sjkim    UINT32                  Length,
968228110Sjkim    UINT32                  Level);
969228110Sjkim
970228110Sjkimvoid
971100966SiwasakiAcpiDmIoDescriptor (
972281075Sdim    ACPI_OP_WALK_INFO       *Info,
973151937Sjkim    AML_RESOURCE            *Resource,
974100966Siwasaki    UINT32                  Length,
975100966Siwasaki    UINT32                  Level);
976100966Siwasaki
977100966Siwasakivoid
978100966SiwasakiAcpiDmFixedIoDescriptor (
979281075Sdim    ACPI_OP_WALK_INFO       *Info,
980151937Sjkim    AML_RESOURCE            *Resource,
981100966Siwasaki    UINT32                  Length,
982100966Siwasaki    UINT32                  Level);
983100966Siwasaki
984100966Siwasakivoid
985100966SiwasakiAcpiDmStartDependentDescriptor (
986281075Sdim    ACPI_OP_WALK_INFO       *Info,
987151937Sjkim    AML_RESOURCE            *Resource,
988100966Siwasaki    UINT32                  Length,
989100966Siwasaki    UINT32                  Level);
990100966Siwasaki
991100966Siwasakivoid
992100966SiwasakiAcpiDmEndDependentDescriptor (
993281075Sdim    ACPI_OP_WALK_INFO       *Info,
994151937Sjkim    AML_RESOURCE            *Resource,
995100966Siwasaki    UINT32                  Length,
996100966Siwasaki    UINT32                  Level);
997100966Siwasaki
998100966Siwasakivoid
999100966SiwasakiAcpiDmVendorSmallDescriptor (
1000281075Sdim    ACPI_OP_WALK_INFO       *Info,
1001151937Sjkim    AML_RESOURCE            *Resource,
1002100966Siwasaki    UINT32                  Length,
1003100966Siwasaki    UINT32                  Level);
1004100966Siwasaki
1005100966Siwasaki
1006128212Snjl/*
1007128212Snjl * dmutils
1008128212Snjl */
1009128212Snjlvoid
1010198237SjkimAcpiDmDecodeAttribute (
1011198237Sjkim    UINT8                   Attribute);
1012128212Snjl
1013198237Sjkimvoid
1014198237SjkimAcpiDmIndent (
1015198237Sjkim    UINT32                  Level);
1016198237Sjkim
1017198237SjkimBOOLEAN
1018198237SjkimAcpiDmCommaIfListMember (
1019198237Sjkim    ACPI_PARSE_OBJECT       *Op);
1020198237Sjkim
1021198237Sjkimvoid
1022198237SjkimAcpiDmCommaIfFieldMember (
1023198237Sjkim    ACPI_PARSE_OBJECT       *Op);
1024198237Sjkim
1025198237Sjkim
1026167802Sjkim/*
1027167802Sjkim * dmrestag
1028167802Sjkim */
1029167802Sjkimvoid
1030167802SjkimAcpiDmFindResources (
1031167802Sjkim    ACPI_PARSE_OBJECT       *Root);
1032167802Sjkim
1033167802Sjkimvoid
1034167802SjkimAcpiDmCheckResourceReference (
1035167802Sjkim    ACPI_PARSE_OBJECT       *Op,
1036167802Sjkim    ACPI_WALK_STATE         *WalkState);
1037167802Sjkim
1038209746Sjkim
1039209746Sjkim/*
1040281075Sdim * dmcstyle
1041281075Sdim */
1042281075SdimBOOLEAN
1043281075SdimAcpiDmCheckForSymbolicOpcode (
1044281075Sdim    ACPI_PARSE_OBJECT       *Op,
1045281075Sdim    ACPI_OP_WALK_INFO       *Info);
1046281075Sdim
1047281075Sdimvoid
1048281075SdimAcpiDmCloseOperator (
1049281075Sdim    ACPI_PARSE_OBJECT       *Op);
1050281075Sdim
1051281075Sdim
1052281075Sdim/*
1053306536Sjkim * dmtables
1054209746Sjkim */
1055209746Sjkimvoid
1056209746SjkimAdDisassemblerHeader (
1057281687Sjkim    char                    *Filename,
1058281687Sjkim    UINT8                   TableType);
1059209746Sjkim
1060281687Sjkim#define ACPI_IS_AML_TABLE   0
1061281687Sjkim#define ACPI_IS_DATA_TABLE  1
1062281687Sjkim
1063306536Sjkim
1064306536Sjkim/*
1065306536Sjkim * adisasm
1066306536Sjkim */
1067306536SjkimACPI_STATUS
1068306536SjkimAdAmlDisassemble (
1069306536Sjkim    BOOLEAN                 OutToFile,
1070306536Sjkim    char                    *Filename,
1071306536Sjkim    char                    *Prefix,
1072306536Sjkim    char                    **OutFilename);
1073306536Sjkim
1074306536SjkimACPI_STATUS
1075306536SjkimAdGetLocalTables (
1076306536Sjkim    void);
1077306536Sjkim
1078306536SjkimACPI_STATUS
1079306536SjkimAdParseTable (
1080306536Sjkim    ACPI_TABLE_HEADER       *Table,
1081306536Sjkim    ACPI_OWNER_ID           *OwnerId,
1082306536Sjkim    BOOLEAN                 LoadTable,
1083306536Sjkim    BOOLEAN                 External);
1084306536Sjkim
1085306536SjkimACPI_STATUS
1086306536SjkimAdDisplayTables (
1087306536Sjkim    char                    *Filename,
1088306536Sjkim    ACPI_TABLE_HEADER       *Table);
1089306536Sjkim
1090306536SjkimACPI_STATUS
1091306536SjkimAdDisplayStatistics (
1092306536Sjkim    void);
1093306536Sjkim
1094100966Siwasaki#endif  /* __ACDISASM_H__ */
1095