acdisasm.h revision 217365
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.
83167802Sjkim * Note: 0-7 must not change, used as a flag shift value
84167802Sjkim */
85167802Sjkim#define ACPI_DMT_FLAG0                  0
86167802Sjkim#define ACPI_DMT_FLAG1                  1
87167802Sjkim#define ACPI_DMT_FLAG2                  2
88167802Sjkim#define ACPI_DMT_FLAG3                  3
89167802Sjkim#define ACPI_DMT_FLAG4                  4
90167802Sjkim#define ACPI_DMT_FLAG5                  5
91167802Sjkim#define ACPI_DMT_FLAG6                  6
92167802Sjkim#define ACPI_DMT_FLAG7                  7
93167802Sjkim#define ACPI_DMT_FLAGS0                 8
94167802Sjkim#define ACPI_DMT_FLAGS2                 9
95167802Sjkim#define ACPI_DMT_UINT8                  10
96167802Sjkim#define ACPI_DMT_UINT16                 11
97167802Sjkim#define ACPI_DMT_UINT24                 12
98167802Sjkim#define ACPI_DMT_UINT32                 13
99167802Sjkim#define ACPI_DMT_UINT56                 14
100167802Sjkim#define ACPI_DMT_UINT64                 15
101167802Sjkim#define ACPI_DMT_STRING                 16
102167802Sjkim#define ACPI_DMT_NAME4                  17
103167802Sjkim#define ACPI_DMT_NAME6                  18
104167802Sjkim#define ACPI_DMT_NAME8                  19
105167802Sjkim#define ACPI_DMT_CHKSUM                 20
106167802Sjkim#define ACPI_DMT_SPACEID                21
107167802Sjkim#define ACPI_DMT_GAS                    22
108193267Sjkim#define ACPI_DMT_ASF                    23
109193267Sjkim#define ACPI_DMT_DMAR                   24
110193267Sjkim#define ACPI_DMT_HEST                   25
111193267Sjkim#define ACPI_DMT_HESTNTFY               26
112193267Sjkim#define ACPI_DMT_HESTNTYP               27
113193267Sjkim#define ACPI_DMT_MADT                   28
114193267Sjkim#define ACPI_DMT_SRAT                   29
115193267Sjkim#define ACPI_DMT_EXIT                   30
116193267Sjkim#define ACPI_DMT_SIG                    31
117193267Sjkim#define ACPI_DMT_FADTPM                 32
118197104Sjkim#define ACPI_DMT_BUF16                  33
119197104Sjkim#define ACPI_DMT_IVRS                   34
120209746Sjkim#define ACPI_DMT_BUFFER                 35
121209746Sjkim#define ACPI_DMT_PCI_PATH               36
122209746Sjkim#define ACPI_DMT_EINJACT                37
123209746Sjkim#define ACPI_DMT_EINJINST               38
124209746Sjkim#define ACPI_DMT_ERSTACT                39
125209746Sjkim#define ACPI_DMT_ERSTINST               40
126216471Sjkim#define ACPI_DMT_ACCWIDTH               41
127217365Sjkim#define ACPI_DMT_UNICODE                42
128217365Sjkim#define ACPI_DMT_UUID                   43
129217365Sjkim#define ACPI_DMT_DEVICE_PATH            44
130167802Sjkim
131197104Sjkim
132167802Sjkimtypedef
133193267Sjkimvoid (*ACPI_DMTABLE_HANDLER) (
134167802Sjkim    ACPI_TABLE_HEADER       *Table);
135167802Sjkim
136209746Sjkimtypedef
137209746SjkimACPI_STATUS (*ACPI_CMTABLE_HANDLER) (
138209746Sjkim    void                    **PFieldList);
139209746Sjkim
140167802Sjkimtypedef struct acpi_dmtable_data
141167802Sjkim{
142167802Sjkim    char                    *Signature;
143193267Sjkim    ACPI_DMTABLE_INFO       *TableInfo;
144193267Sjkim    ACPI_DMTABLE_HANDLER    TableHandler;
145209746Sjkim    ACPI_CMTABLE_HANDLER    CmTableHandler;
146209746Sjkim    const unsigned char     *Template;
147167802Sjkim    char                    *Name;
148167802Sjkim
149167802Sjkim} ACPI_DMTABLE_DATA;
150167802Sjkim
151167802Sjkim
152100966Siwasakitypedef struct acpi_op_walk_info
153100966Siwasaki{
154100966Siwasaki    UINT32                  Level;
155167802Sjkim    UINT32                  LastLevel;
156167802Sjkim    UINT32                  Count;
157100966Siwasaki    UINT32                  BitOffset;
158167802Sjkim    UINT32                  Flags;
159151937Sjkim    ACPI_WALK_STATE         *WalkState;
160100966Siwasaki
161100966Siwasaki} ACPI_OP_WALK_INFO;
162100966Siwasaki
163209746Sjkim/*
164209746Sjkim * TBD - another copy of this is in asltypes.h, fix
165209746Sjkim */
166209746Sjkim#ifndef ASL_WALK_CALLBACK_DEFINED
167100966Siwasakitypedef
168100966SiwasakiACPI_STATUS (*ASL_WALK_CALLBACK) (
169100966Siwasaki    ACPI_PARSE_OBJECT           *Op,
170100966Siwasaki    UINT32                      Level,
171100966Siwasaki    void                        *Context);
172209746Sjkim#define ASL_WALK_CALLBACK_DEFINED
173209746Sjkim#endif
174100966Siwasaki
175209746Sjkim
176167802Sjkimtypedef struct acpi_resource_tag
177167802Sjkim{
178167802Sjkim    UINT32                  BitIndex;
179167802Sjkim    char                    *Tag;
180100966Siwasaki
181167802Sjkim} ACPI_RESOURCE_TAG;
182167802Sjkim
183167802Sjkim/* Strings used for decoding flags to ASL keywords */
184167802Sjkim
185167802Sjkimextern const char               *AcpiGbl_WordDecode[];
186167802Sjkimextern const char               *AcpiGbl_IrqDecode[];
187167802Sjkimextern const char               *AcpiGbl_LockRule[];
188167802Sjkimextern const char               *AcpiGbl_AccessTypes[];
189167802Sjkimextern const char               *AcpiGbl_UpdateRules[];
190167802Sjkimextern const char               *AcpiGbl_MatchOps[];
191167802Sjkim
192167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf0[];
193167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf1[];
194167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf1a[];
195167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf2[];
196167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf2a[];
197167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf3[];
198167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf4[];
199167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsfHdr[];
200167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoBoot[];
201193267Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoBert[];
202167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoCpep[];
203167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoCpep0[];
204167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoDbgp[];
205167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmar[];
206167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmarHdr[];
207167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmarScope[];
208167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmar0[];
209167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmar1[];
210193267Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmar2[];
211197104Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmar3[];
212167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoEcdt[];
213193267Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoEinj[];
214193267Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoEinj0[];
215193267Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoErst[];
216209746Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoErst0[];
217167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoFacs[];
218167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoFadt1[];
219167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoFadt2[];
220193267Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoFadt3[];
221167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoGas[];
222167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoHeader[];
223193267Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest[];
224193267Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest0[];
225193267Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest1[];
226197104Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest2[];
227193267Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest6[];
228193267Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest7[];
229193267Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest8[];
230193267Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest9[];
231193267Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoHestNotify[];
232197104Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoHestBank[];
233167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoHpet[];
234197104Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs[];
235197104Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs0[];
236197104Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs1[];
237197104Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs4[];
238197104Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs8a[];
239197104Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs8b[];
240197104Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs8c[];
241197104Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrsHdr[];
242167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt[];
243167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt0[];
244167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt1[];
245167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt2[];
246167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt3[];
247167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt4[];
248167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt5[];
249167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt6[];
250167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt7[];
251167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt8[];
252193267Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt9[];
253193267Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt10[];
254167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadtHdr[];
255167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoMcfg[];
256167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoMcfg0[];
257204773Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoMchi[];
258197104Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoMsct[];
259197104Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoMsct0[];
260167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoRsdp1[];
261167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoRsdp2[];
262167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoSbst[];
263193267Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoSlic[];
264167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoSlit[];
265167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoSpcr[];
266167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoSpmi[];
267167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoSrat[];
268193267Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoSratHdr[];
269167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoSrat0[];
270167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoSrat1[];
271193267Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoSrat2[];
272167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoTcpa[];
273197104Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoUefi[];
274197104Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoWaet[];
275197104Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoWdat[];
276197104Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoWdat0[];
277209746Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoWddt[];
278167802Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoWdrt[];
279167802Sjkim
280217365Sjkimextern ACPI_DMTABLE_INFO        AcpiDmTableInfoGeneric[][2];
281167802Sjkim
282217365Sjkim
283100966Siwasaki/*
284167802Sjkim * dmtable
285167802Sjkim */
286209746Sjkimextern ACPI_DMTABLE_DATA        AcpiDmTableData[];
287209746Sjkim
288209746SjkimUINT8
289209746SjkimAcpiDmGenerateChecksum (
290209746Sjkim    void                    *Table,
291209746Sjkim    UINT32                  Length,
292209746Sjkim    UINT8                   OriginalChecksum);
293209746Sjkim
294209746SjkimACPI_DMTABLE_DATA *
295209746SjkimAcpiDmGetTableData (
296209746Sjkim    char                    *Signature);
297209746Sjkim
298167802Sjkimvoid
299167802SjkimAcpiDmDumpDataTable (
300167802Sjkim    ACPI_TABLE_HEADER       *Table);
301167802Sjkim
302193267SjkimACPI_STATUS
303167802SjkimAcpiDmDumpTable (
304167802Sjkim    UINT32                  TableLength,
305167802Sjkim    UINT32                  TableOffset,
306167802Sjkim    void                    *Table,
307167802Sjkim    UINT32                  SubTableLength,
308167802Sjkim    ACPI_DMTABLE_INFO        *Info);
309167802Sjkim
310167802Sjkimvoid
311167802SjkimAcpiDmLineHeader (
312167802Sjkim    UINT32                  Offset,
313167802Sjkim    UINT32                  ByteLength,
314167802Sjkim    char                    *Name);
315167802Sjkim
316167802Sjkimvoid
317167802SjkimAcpiDmLineHeader2 (
318167802Sjkim    UINT32                  Offset,
319167802Sjkim    UINT32                  ByteLength,
320167802Sjkim    char                    *Name,
321167802Sjkim    UINT32                  Value);
322167802Sjkim
323167802Sjkim
324167802Sjkim/*
325167802Sjkim * dmtbdump
326167802Sjkim */
327167802Sjkimvoid
328167802SjkimAcpiDmDumpAsf (
329167802Sjkim    ACPI_TABLE_HEADER       *Table);
330167802Sjkim
331167802Sjkimvoid
332167802SjkimAcpiDmDumpCpep (
333167802Sjkim    ACPI_TABLE_HEADER       *Table);
334167802Sjkim
335167802Sjkimvoid
336167802SjkimAcpiDmDumpDmar (
337167802Sjkim    ACPI_TABLE_HEADER       *Table);
338167802Sjkim
339167802Sjkimvoid
340193267SjkimAcpiDmDumpEinj (
341193267Sjkim    ACPI_TABLE_HEADER       *Table);
342193267Sjkim
343193267Sjkimvoid
344193267SjkimAcpiDmDumpErst (
345193267Sjkim    ACPI_TABLE_HEADER       *Table);
346193267Sjkim
347193267Sjkimvoid
348167802SjkimAcpiDmDumpFadt (
349167802Sjkim    ACPI_TABLE_HEADER       *Table);
350167802Sjkim
351167802Sjkimvoid
352193267SjkimAcpiDmDumpHest (
353167802Sjkim    ACPI_TABLE_HEADER       *Table);
354167802Sjkim
355167802Sjkimvoid
356197104SjkimAcpiDmDumpIvrs (
357197104Sjkim    ACPI_TABLE_HEADER       *Table);
358197104Sjkim
359197104Sjkimvoid
360167802SjkimAcpiDmDumpMcfg (
361167802Sjkim    ACPI_TABLE_HEADER       *Table);
362167802Sjkim
363167802Sjkimvoid
364167802SjkimAcpiDmDumpMadt (
365167802Sjkim    ACPI_TABLE_HEADER       *Table);
366167802Sjkim
367197104Sjkimvoid
368197104SjkimAcpiDmDumpMsct (
369197104Sjkim    ACPI_TABLE_HEADER       *Table);
370197104Sjkim
371167802SjkimUINT32
372167802SjkimAcpiDmDumpRsdp (
373167802Sjkim    ACPI_TABLE_HEADER       *Table);
374167802Sjkim
375167802Sjkimvoid
376167802SjkimAcpiDmDumpRsdt (
377167802Sjkim    ACPI_TABLE_HEADER       *Table);
378167802Sjkim
379167802Sjkimvoid
380167802SjkimAcpiDmDumpSlit (
381167802Sjkim    ACPI_TABLE_HEADER       *Table);
382167802Sjkim
383167802Sjkimvoid
384193267SjkimAcpiDmDumpSrat (
385193267Sjkim    ACPI_TABLE_HEADER       *Table);
386193267Sjkim
387193267Sjkimvoid
388197104SjkimAcpiDmDumpWdat (
389197104Sjkim    ACPI_TABLE_HEADER       *Table);
390197104Sjkim
391197104Sjkimvoid
392167802SjkimAcpiDmDumpXsdt (
393167802Sjkim    ACPI_TABLE_HEADER       *Table);
394167802Sjkim
395167802Sjkim
396167802Sjkim/*
397100966Siwasaki * dmwalk
398100966Siwasaki */
399100966Siwasakivoid
400100966SiwasakiAcpiDmDisassemble (
401100966Siwasaki    ACPI_WALK_STATE         *WalkState,
402100966Siwasaki    ACPI_PARSE_OBJECT       *Origin,
403100966Siwasaki    UINT32                  NumOpcodes);
404100966Siwasaki
405167802Sjkimvoid
406167802SjkimAcpiDmWalkParseTree (
407167802Sjkim    ACPI_PARSE_OBJECT       *Op,
408167802Sjkim    ASL_WALK_CALLBACK       DescendingCallback,
409167802Sjkim    ASL_WALK_CALLBACK       AscendingCallback,
410167802Sjkim    void                    *Context);
411100966Siwasaki
412167802Sjkim
413151937Sjkim/*
414151937Sjkim * dmopcode
415151937Sjkim */
416100966Siwasakivoid
417100966SiwasakiAcpiDmDisassembleOneOp (
418100966Siwasaki    ACPI_WALK_STATE         *WalkState,
419102550Siwasaki    ACPI_OP_WALK_INFO       *Info,
420100966Siwasaki    ACPI_PARSE_OBJECT       *Op);
421100966Siwasaki
422100966Siwasakivoid
423100966SiwasakiAcpiDmDecodeInternalObject (
424100966Siwasaki    ACPI_OPERAND_OBJECT     *ObjDesc);
425100966Siwasaki
426100966SiwasakiUINT32
427100966SiwasakiAcpiDmListType (
428100966Siwasaki    ACPI_PARSE_OBJECT       *Op);
429100966Siwasaki
430100966Siwasakivoid
431100966SiwasakiAcpiDmMethodFlags (
432100966Siwasaki    ACPI_PARSE_OBJECT       *Op);
433100966Siwasaki
434100966Siwasakivoid
435100966SiwasakiAcpiDmFieldFlags (
436100966Siwasaki    ACPI_PARSE_OBJECT       *Op);
437100966Siwasaki
438100966Siwasakivoid
439100966SiwasakiAcpiDmAddressSpace (
440100966Siwasaki    UINT8                   SpaceId);
441100966Siwasaki
442100966Siwasakivoid
443100966SiwasakiAcpiDmRegionFlags (
444100966Siwasaki    ACPI_PARSE_OBJECT       *Op);
445100966Siwasaki
446100966Siwasakivoid
447100966SiwasakiAcpiDmMatchOp (
448100966Siwasaki    ACPI_PARSE_OBJECT       *Op);
449100966Siwasaki
450100966Siwasaki
451102550Siwasaki/*
452151937Sjkim * dmnames
453117521Snjl */
454151937SjkimUINT32
455151937SjkimAcpiDmDumpName (
456193267Sjkim    UINT32                  Name);
457117521Snjl
458151937SjkimACPI_STATUS
459151937SjkimAcpiPsDisplayObjectPathname (
460151937Sjkim    ACPI_WALK_STATE         *WalkState,
461151937Sjkim    ACPI_PARSE_OBJECT       *Op);
462151937Sjkim
463117521Snjlvoid
464151937SjkimAcpiDmNamestring (
465151937Sjkim    char                    *Name);
466117521Snjl
467151937Sjkim
468151937Sjkim/*
469151937Sjkim * dmobject
470151937Sjkim */
471117521Snjlvoid
472117521SnjlAcpiDmDisplayInternalObject (
473117521Snjl    ACPI_OPERAND_OBJECT     *ObjDesc,
474117521Snjl    ACPI_WALK_STATE         *WalkState);
475117521Snjl
476117521Snjlvoid
477117521SnjlAcpiDmDisplayArguments (
478117521Snjl    ACPI_WALK_STATE         *WalkState);
479117521Snjl
480117521Snjlvoid
481117521SnjlAcpiDmDisplayLocals (
482117521Snjl    ACPI_WALK_STATE         *WalkState);
483117521Snjl
484117521Snjlvoid
485117521SnjlAcpiDmDumpMethodInfo (
486117521Snjl    ACPI_STATUS             Status,
487117521Snjl    ACPI_WALK_STATE         *WalkState,
488117521Snjl    ACPI_PARSE_OBJECT       *Op);
489117521Snjl
490117521Snjl
491117521Snjl/*
492100966Siwasaki * dmbuffer
493100966Siwasaki */
494151937Sjkimvoid
495151937SjkimAcpiDmDisasmByteList (
496151937Sjkim    UINT32                  Level,
497151937Sjkim    UINT8                   *ByteData,
498151937Sjkim    UINT32                  ByteCount);
499100966Siwasaki
500100966Siwasakivoid
501151937SjkimAcpiDmByteList (
502151937Sjkim    ACPI_OP_WALK_INFO       *Info,
503100966Siwasaki    ACPI_PARSE_OBJECT       *Op);
504100966Siwasaki
505100966Siwasakivoid
506151937SjkimAcpiDmIsEisaId (
507151937Sjkim    ACPI_PARSE_OBJECT       *Op);
508151937Sjkim
509151937Sjkimvoid
510100966SiwasakiAcpiDmEisaId (
511100966Siwasaki    UINT32                  EncodedId);
512100966Siwasaki
513100966SiwasakiBOOLEAN
514100966SiwasakiAcpiDmIsUnicodeBuffer (
515100966Siwasaki    ACPI_PARSE_OBJECT       *Op);
516100966Siwasaki
517100966SiwasakiBOOLEAN
518100966SiwasakiAcpiDmIsStringBuffer (
519100966Siwasaki    ACPI_PARSE_OBJECT       *Op);
520100966Siwasaki
521100966Siwasaki
522100966Siwasaki/*
523198237Sjkim * dmextern
524198237Sjkim */
525210976Sjkim
526210976SjkimACPI_STATUS
527210976SjkimAcpiDmAddToExternalFileList (
528210976Sjkim    char                    *PathList);
529210976Sjkim
530198237Sjkimvoid
531210976SjkimAcpiDmClearExternalFileList (
532210976Sjkim    void);
533210976Sjkim
534210976Sjkimvoid
535198237SjkimAcpiDmAddToExternalList (
536198237Sjkim    ACPI_PARSE_OBJECT       *Op,
537198237Sjkim    char                    *Path,
538198237Sjkim    UINT8                   Type,
539198237Sjkim    UINT32                  Value);
540198237Sjkim
541198237Sjkimvoid
542198237SjkimAcpiDmAddExternalsToNamespace (
543198237Sjkim    void);
544198237Sjkim
545198237SjkimUINT32
546198237SjkimAcpiDmGetExternalMethodCount (
547198237Sjkim    void);
548198237Sjkim
549198237Sjkimvoid
550198237SjkimAcpiDmClearExternalList (
551198237Sjkim    void);
552198237Sjkim
553198237Sjkimvoid
554198237SjkimAcpiDmEmitExternals (
555198237Sjkim    void);
556198237Sjkim
557198237Sjkim
558198237Sjkim/*
559100966Siwasaki * dmresrc
560100966Siwasaki */
561151937Sjkimvoid
562151937SjkimAcpiDmDumpInteger8 (
563151937Sjkim    UINT8                   Value,
564151937Sjkim    char                    *Name);
565100966Siwasaki
566100966Siwasakivoid
567151937SjkimAcpiDmDumpInteger16 (
568151937Sjkim    UINT16                  Value,
569151937Sjkim    char                    *Name);
570100966Siwasaki
571100966Siwasakivoid
572151937SjkimAcpiDmDumpInteger32 (
573151937Sjkim    UINT32                  Value,
574151937Sjkim    char                    *Name);
575100966Siwasaki
576100966Siwasakivoid
577151937SjkimAcpiDmDumpInteger64 (
578151937Sjkim    UINT64                  Value,
579151937Sjkim    char                    *Name);
580151937Sjkim
581151937Sjkimvoid
582151937SjkimAcpiDmResourceTemplate (
583102550Siwasaki    ACPI_OP_WALK_INFO       *Info,
584167802Sjkim    ACPI_PARSE_OBJECT       *Op,
585100966Siwasaki    UINT8                   *ByteData,
586100966Siwasaki    UINT32                  ByteCount);
587100966Siwasaki
588167802SjkimACPI_STATUS
589151937SjkimAcpiDmIsResourceTemplate (
590100966Siwasaki    ACPI_PARSE_OBJECT       *Op);
591100966Siwasaki
592100966Siwasakivoid
593100966SiwasakiAcpiDmBitList (
594100966Siwasaki    UINT16                  Mask);
595100966Siwasaki
596107325Siwasakivoid
597167802SjkimAcpiDmDescriptorName (
598167802Sjkim    void);
599151937Sjkim
600167802Sjkim
601100966Siwasaki/*
602100966Siwasaki * dmresrcl
603100966Siwasaki */
604100966Siwasakivoid
605100966SiwasakiAcpiDmWordDescriptor (
606151937Sjkim    AML_RESOURCE            *Resource,
607100966Siwasaki    UINT32                  Length,
608100966Siwasaki    UINT32                  Level);
609100966Siwasaki
610100966Siwasakivoid
611100966SiwasakiAcpiDmDwordDescriptor (
612151937Sjkim    AML_RESOURCE            *Resource,
613100966Siwasaki    UINT32                  Length,
614100966Siwasaki    UINT32                  Level);
615100966Siwasaki
616100966Siwasakivoid
617151937SjkimAcpiDmExtendedDescriptor (
618151937Sjkim    AML_RESOURCE            *Resource,
619151937Sjkim    UINT32                  Length,
620151937Sjkim    UINT32                  Level);
621151937Sjkim
622151937Sjkimvoid
623100966SiwasakiAcpiDmQwordDescriptor (
624151937Sjkim    AML_RESOURCE            *Resource,
625100966Siwasaki    UINT32                  Length,
626100966Siwasaki    UINT32                  Level);
627100966Siwasaki
628100966Siwasakivoid
629100966SiwasakiAcpiDmMemory24Descriptor (
630151937Sjkim    AML_RESOURCE            *Resource,
631100966Siwasaki    UINT32                  Length,
632100966Siwasaki    UINT32                  Level);
633100966Siwasaki
634100966Siwasakivoid
635100966SiwasakiAcpiDmMemory32Descriptor (
636151937Sjkim    AML_RESOURCE            *Resource,
637100966Siwasaki    UINT32                  Length,
638100966Siwasaki    UINT32                  Level);
639100966Siwasaki
640100966Siwasakivoid
641151937SjkimAcpiDmFixedMemory32Descriptor (
642151937Sjkim    AML_RESOURCE            *Resource,
643100966Siwasaki    UINT32                  Length,
644100966Siwasaki    UINT32                  Level);
645100966Siwasaki
646100966Siwasakivoid
647100966SiwasakiAcpiDmGenericRegisterDescriptor (
648151937Sjkim    AML_RESOURCE            *Resource,
649100966Siwasaki    UINT32                  Length,
650100966Siwasaki    UINT32                  Level);
651100966Siwasaki
652100966Siwasakivoid
653100966SiwasakiAcpiDmInterruptDescriptor (
654151937Sjkim    AML_RESOURCE            *Resource,
655100966Siwasaki    UINT32                  Length,
656100966Siwasaki    UINT32                  Level);
657100966Siwasaki
658100966Siwasakivoid
659100966SiwasakiAcpiDmVendorLargeDescriptor (
660151937Sjkim    AML_RESOURCE            *Resource,
661100966Siwasaki    UINT32                  Length,
662100966Siwasaki    UINT32                  Level);
663100966Siwasaki
664151937Sjkimvoid
665151937SjkimAcpiDmVendorCommon (
666151937Sjkim    char                    *Name,
667151937Sjkim    UINT8                   *ByteData,
668151937Sjkim    UINT32                  Length,
669151937Sjkim    UINT32                  Level);
670100966Siwasaki
671151937Sjkim
672100966Siwasaki/*
673100966Siwasaki * dmresrcs
674100966Siwasaki */
675100966Siwasakivoid
676100966SiwasakiAcpiDmIrqDescriptor (
677151937Sjkim    AML_RESOURCE            *Resource,
678100966Siwasaki    UINT32                  Length,
679100966Siwasaki    UINT32                  Level);
680100966Siwasaki
681100966Siwasakivoid
682100966SiwasakiAcpiDmDmaDescriptor (
683151937Sjkim    AML_RESOURCE            *Resource,
684100966Siwasaki    UINT32                  Length,
685100966Siwasaki    UINT32                  Level);
686100966Siwasaki
687100966Siwasakivoid
688100966SiwasakiAcpiDmIoDescriptor (
689151937Sjkim    AML_RESOURCE            *Resource,
690100966Siwasaki    UINT32                  Length,
691100966Siwasaki    UINT32                  Level);
692100966Siwasaki
693100966Siwasakivoid
694100966SiwasakiAcpiDmFixedIoDescriptor (
695151937Sjkim    AML_RESOURCE            *Resource,
696100966Siwasaki    UINT32                  Length,
697100966Siwasaki    UINT32                  Level);
698100966Siwasaki
699100966Siwasakivoid
700100966SiwasakiAcpiDmStartDependentDescriptor (
701151937Sjkim    AML_RESOURCE            *Resource,
702100966Siwasaki    UINT32                  Length,
703100966Siwasaki    UINT32                  Level);
704100966Siwasaki
705100966Siwasakivoid
706100966SiwasakiAcpiDmEndDependentDescriptor (
707151937Sjkim    AML_RESOURCE            *Resource,
708100966Siwasaki    UINT32                  Length,
709100966Siwasaki    UINT32                  Level);
710100966Siwasaki
711100966Siwasakivoid
712100966SiwasakiAcpiDmVendorSmallDescriptor (
713151937Sjkim    AML_RESOURCE            *Resource,
714100966Siwasaki    UINT32                  Length,
715100966Siwasaki    UINT32                  Level);
716100966Siwasaki
717100966Siwasaki
718128212Snjl/*
719128212Snjl * dmutils
720128212Snjl */
721128212Snjlvoid
722198237SjkimAcpiDmDecodeAttribute (
723198237Sjkim    UINT8                   Attribute);
724128212Snjl
725198237Sjkimvoid
726198237SjkimAcpiDmIndent (
727198237Sjkim    UINT32                  Level);
728198237Sjkim
729198237SjkimBOOLEAN
730198237SjkimAcpiDmCommaIfListMember (
731198237Sjkim    ACPI_PARSE_OBJECT       *Op);
732198237Sjkim
733198237Sjkimvoid
734198237SjkimAcpiDmCommaIfFieldMember (
735198237Sjkim    ACPI_PARSE_OBJECT       *Op);
736198237Sjkim
737198237Sjkim
738167802Sjkim/*
739167802Sjkim * dmrestag
740167802Sjkim */
741167802Sjkimvoid
742167802SjkimAcpiDmFindResources (
743167802Sjkim    ACPI_PARSE_OBJECT       *Root);
744167802Sjkim
745167802Sjkimvoid
746167802SjkimAcpiDmCheckResourceReference (
747167802Sjkim    ACPI_PARSE_OBJECT       *Op,
748167802Sjkim    ACPI_WALK_STATE         *WalkState);
749167802Sjkim
750209746Sjkim
751209746Sjkim/*
752209746Sjkim * acdisasm
753209746Sjkim */
754209746Sjkimvoid
755209746SjkimAdDisassemblerHeader (
756209746Sjkim    char                    *Filename);
757209746Sjkim
758209746Sjkim
759100966Siwasaki#endif  /* __ACDISASM_H__ */
760