acdisasm.h revision 285797
1/******************************************************************************
2 *
3 * Name: acdisasm.h - AML disassembler
4 *
5 *****************************************************************************/
6
7/*
8 * Copyright (C) 2000 - 2015, Intel Corp.
9 * All rights reserved.
10 *
11 * Redistribution and use in source and binary forms, with or without
12 * modification, are permitted provided that the following conditions
13 * are met:
14 * 1. Redistributions of source code must retain the above copyright
15 *    notice, this list of conditions, and the following disclaimer,
16 *    without modification.
17 * 2. Redistributions in binary form must reproduce at minimum a disclaimer
18 *    substantially similar to the "NO WARRANTY" disclaimer below
19 *    ("Disclaimer") and any redistribution must be conditioned upon
20 *    including a substantially similar Disclaimer requirement for further
21 *    binary redistribution.
22 * 3. Neither the names of the above-listed copyright holders nor the names
23 *    of any contributors may be used to endorse or promote products derived
24 *    from this software without specific prior written permission.
25 *
26 * Alternatively, this software may be distributed under the terms of the
27 * GNU General Public License ("GPL") version 2 as published by the Free
28 * Software Foundation.
29 *
30 * NO WARRANTY
31 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
32 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
33 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
34 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
35 * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
36 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
37 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
38 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
39 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
40 * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
41 * POSSIBILITY OF SUCH DAMAGES.
42 */
43
44#ifndef __ACDISASM_H__
45#define __ACDISASM_H__
46
47#include <contrib/dev/acpica/include/amlresrc.h>
48
49
50#define BLOCK_NONE              0
51#define BLOCK_PAREN             1
52#define BLOCK_BRACE             2
53#define BLOCK_COMMA_LIST        4
54#define ACPI_DEFAULT_RESNAME    *(UINT32 *) "__RD"
55
56/*
57 * Raw table data header. Used by disassembler and data table compiler.
58 * Do not change.
59 */
60#define ACPI_RAW_TABLE_DATA_HEADER      "Raw Table Data"
61
62
63typedef struct acpi_dmtable_info
64{
65    UINT8                       Opcode;
66    UINT16                      Offset;
67    char                        *Name;
68    UINT8                       Flags;
69
70} ACPI_DMTABLE_INFO;
71
72/* Values for Flags field above */
73
74#define DT_LENGTH                       0x01    /* Field is a subtable length */
75#define DT_FLAG                         0x02    /* Field is a flag value */
76#define DT_NON_ZERO                     0x04    /* Field must be non-zero */
77#define DT_OPTIONAL                     0x08    /* Field is optional */
78#define DT_DESCRIBES_OPTIONAL           0x10    /* Field describes an optional field (length, etc.) */
79#define DT_COUNT                        0x20    /* Currently not used */
80
81/*
82 * Values for Opcode above.
83 * Note: 0-7 must not change, they are used as a flag shift value. Other
84 * than those, new values can be added wherever appropriate.
85 */
86typedef enum
87{
88    /* Simple Data Types */
89
90    ACPI_DMT_FLAG0          = 0,
91    ACPI_DMT_FLAG1          = 1,
92    ACPI_DMT_FLAG2          = 2,
93    ACPI_DMT_FLAG3          = 3,
94    ACPI_DMT_FLAG4          = 4,
95    ACPI_DMT_FLAG5          = 5,
96    ACPI_DMT_FLAG6          = 6,
97    ACPI_DMT_FLAG7          = 7,
98    ACPI_DMT_FLAGS0,
99    ACPI_DMT_FLAGS1,
100    ACPI_DMT_FLAGS2,
101    ACPI_DMT_FLAGS4,
102    ACPI_DMT_UINT8,
103    ACPI_DMT_UINT16,
104    ACPI_DMT_UINT24,
105    ACPI_DMT_UINT32,
106    ACPI_DMT_UINT40,
107    ACPI_DMT_UINT48,
108    ACPI_DMT_UINT56,
109    ACPI_DMT_UINT64,
110    ACPI_DMT_BUF7,
111    ACPI_DMT_BUF10,
112    ACPI_DMT_BUF16,
113    ACPI_DMT_BUF128,
114    ACPI_DMT_SIG,
115    ACPI_DMT_STRING,
116    ACPI_DMT_NAME4,
117    ACPI_DMT_NAME6,
118    ACPI_DMT_NAME8,
119
120    /* Types that are decoded to strings and miscellaneous */
121
122    ACPI_DMT_ACCWIDTH,
123    ACPI_DMT_CHKSUM,
124    ACPI_DMT_GAS,
125    ACPI_DMT_SPACEID,
126    ACPI_DMT_UNICODE,
127    ACPI_DMT_UUID,
128
129    /* Types used only for the Data Table Compiler */
130
131    ACPI_DMT_BUFFER,
132    ACPI_DMT_RAW_BUFFER,  /* Large, multiple line buffer */
133    ACPI_DMT_DEVICE_PATH,
134    ACPI_DMT_LABEL,
135    ACPI_DMT_PCI_PATH,
136
137    /* Types that are specific to particular ACPI tables */
138
139    ACPI_DMT_ASF,
140    ACPI_DMT_DMAR,
141    ACPI_DMT_DMAR_SCOPE,
142    ACPI_DMT_EINJACT,
143    ACPI_DMT_EINJINST,
144    ACPI_DMT_ERSTACT,
145    ACPI_DMT_ERSTINST,
146    ACPI_DMT_FADTPM,
147    ACPI_DMT_GTDT,
148    ACPI_DMT_HEST,
149    ACPI_DMT_HESTNTFY,
150    ACPI_DMT_HESTNTYP,
151    ACPI_DMT_IORTMEM,
152    ACPI_DMT_IVRS,
153    ACPI_DMT_LPIT,
154    ACPI_DMT_MADT,
155    ACPI_DMT_NFIT,
156    ACPI_DMT_PCCT,
157    ACPI_DMT_PMTT,
158    ACPI_DMT_SLIC,
159    ACPI_DMT_SRAT,
160
161    /* Special opcodes */
162
163    ACPI_DMT_EXTRA_TEXT,
164    ACPI_DMT_EXIT
165
166} ACPI_ENTRY_TYPES;
167
168typedef
169void (*ACPI_DMTABLE_HANDLER) (
170    ACPI_TABLE_HEADER       *Table);
171
172typedef
173ACPI_STATUS (*ACPI_CMTABLE_HANDLER) (
174    void                    **PFieldList);
175
176typedef struct acpi_dmtable_data
177{
178    char                    *Signature;
179    ACPI_DMTABLE_INFO       *TableInfo;
180    ACPI_DMTABLE_HANDLER    TableHandler;
181    ACPI_CMTABLE_HANDLER    CmTableHandler;
182    const unsigned char     *Template;
183
184} ACPI_DMTABLE_DATA;
185
186
187typedef struct acpi_op_walk_info
188{
189    UINT32                  Level;
190    UINT32                  LastLevel;
191    UINT32                  Count;
192    UINT32                  BitOffset;
193    UINT32                  Flags;
194    ACPI_WALK_STATE         *WalkState;
195    ACPI_PARSE_OBJECT       *MappingOp;
196
197} ACPI_OP_WALK_INFO;
198
199/*
200 * TBD - another copy of this is in asltypes.h, fix
201 */
202#ifndef ASL_WALK_CALLBACK_DEFINED
203typedef
204ACPI_STATUS (*ASL_WALK_CALLBACK) (
205    ACPI_PARSE_OBJECT           *Op,
206    UINT32                      Level,
207    void                        *Context);
208#define ASL_WALK_CALLBACK_DEFINED
209#endif
210
211typedef
212void (*ACPI_RESOURCE_HANDLER) (
213    ACPI_OP_WALK_INFO       *Info,
214    AML_RESOURCE            *Resource,
215    UINT32                  Length,
216    UINT32                  Level);
217
218typedef struct acpi_resource_tag
219{
220    UINT32                  BitIndex;
221    char                    *Tag;
222
223} ACPI_RESOURCE_TAG;
224
225/* Strings used for decoding flags to ASL keywords */
226
227extern const char               *AcpiGbl_WordDecode[];
228extern const char               *AcpiGbl_IrqDecode[];
229extern const char               *AcpiGbl_LockRule[];
230extern const char               *AcpiGbl_AccessTypes[];
231extern const char               *AcpiGbl_UpdateRules[];
232extern const char               *AcpiGbl_MatchOps[];
233
234extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf0[];
235extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf1[];
236extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf1a[];
237extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf2[];
238extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf2a[];
239extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf3[];
240extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf4[];
241extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsfHdr[];
242extern ACPI_DMTABLE_INFO        AcpiDmTableInfoBoot[];
243extern ACPI_DMTABLE_INFO        AcpiDmTableInfoBert[];
244extern ACPI_DMTABLE_INFO        AcpiDmTableInfoBgrt[];
245extern ACPI_DMTABLE_INFO        AcpiDmTableInfoCpep[];
246extern ACPI_DMTABLE_INFO        AcpiDmTableInfoCpep0[];
247extern ACPI_DMTABLE_INFO        AcpiDmTableInfoCsrt0[];
248extern ACPI_DMTABLE_INFO        AcpiDmTableInfoCsrt1[];
249extern ACPI_DMTABLE_INFO        AcpiDmTableInfoCsrt2[];
250extern ACPI_DMTABLE_INFO        AcpiDmTableInfoCsrt2a[];
251extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDbg2[];
252extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDbg2Device[];
253extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDbg2Addr[];
254extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDbg2Size[];
255extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDbg2Name[];
256extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDbg2OemData[];
257extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDbgp[];
258extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmar[];
259extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmarHdr[];
260extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmarScope[];
261extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmar0[];
262extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmar1[];
263extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmar2[];
264extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmar3[];
265extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmar4[];
266extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDrtm[];
267extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDrtm0[];
268extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDrtm0a[];
269extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDrtm1[];
270extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDrtm1a[];
271extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDrtm2[];
272extern ACPI_DMTABLE_INFO        AcpiDmTableInfoEcdt[];
273extern ACPI_DMTABLE_INFO        AcpiDmTableInfoEinj[];
274extern ACPI_DMTABLE_INFO        AcpiDmTableInfoEinj0[];
275extern ACPI_DMTABLE_INFO        AcpiDmTableInfoErst[];
276extern ACPI_DMTABLE_INFO        AcpiDmTableInfoErst0[];
277extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFacs[];
278extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFadt1[];
279extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFadt2[];
280extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFadt3[];
281extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFadt5[];
282extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFadt6[];
283extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFpdt[];
284extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFpdtHdr[];
285extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFpdt0[];
286extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFpdt1[];
287extern ACPI_DMTABLE_INFO        AcpiDmTableInfoGas[];
288extern ACPI_DMTABLE_INFO        AcpiDmTableInfoGtdt[];
289extern ACPI_DMTABLE_INFO        AcpiDmTableInfoGtdtHdr[];
290extern ACPI_DMTABLE_INFO        AcpiDmTableInfoGtdt0[];
291extern ACPI_DMTABLE_INFO        AcpiDmTableInfoGtdt0a[];
292extern ACPI_DMTABLE_INFO        AcpiDmTableInfoGtdt1[];
293extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHeader[];
294extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest[];
295extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest0[];
296extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest1[];
297extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest2[];
298extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest6[];
299extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest7[];
300extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest8[];
301extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest9[];
302extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHestNotify[];
303extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHestBank[];
304extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHpet[];
305extern ACPI_DMTABLE_INFO        AcpiDmTableInfoLpitHdr[];
306extern ACPI_DMTABLE_INFO        AcpiDmTableInfoLpit0[];
307extern ACPI_DMTABLE_INFO        AcpiDmTableInfoLpit1[];
308extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIort[];
309extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIort0[];
310extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIort0a[];
311extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIort1[];
312extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIort1a[];
313extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIort2[];
314extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIort3[];
315extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIort3a[];
316extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIort3b[];
317extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIort3c[];
318extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIortAcc[];
319extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIortHdr[];
320extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIortMap[];
321extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIortPad[];
322extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs[];
323extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs0[];
324extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs1[];
325extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs4[];
326extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs8a[];
327extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs8b[];
328extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs8c[];
329extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrsHdr[];
330extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt[];
331extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt0[];
332extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt1[];
333extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt2[];
334extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt3[];
335extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt4[];
336extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt5[];
337extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt6[];
338extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt7[];
339extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt8[];
340extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt9[];
341extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt10[];
342extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt11[];
343extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt12[];
344extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt13[];
345extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt14[];
346extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt15[];
347extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadtHdr[];
348extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMcfg[];
349extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMcfg0[];
350extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMchi[];
351extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMpst[];
352extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMpst0[];
353extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMpst0A[];
354extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMpst0B[];
355extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMpst1[];
356extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMpst2[];
357extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMsct[];
358extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMsct0[];
359extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMtmr[];
360extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMtmr0[];
361extern ACPI_DMTABLE_INFO        AcpiDmTableInfoNfit[];
362extern ACPI_DMTABLE_INFO        AcpiDmTableInfoNfitHdr[];
363extern ACPI_DMTABLE_INFO        AcpiDmTableInfoNfit0[];
364extern ACPI_DMTABLE_INFO        AcpiDmTableInfoNfit1[];
365extern ACPI_DMTABLE_INFO        AcpiDmTableInfoNfit2[];
366extern ACPI_DMTABLE_INFO        AcpiDmTableInfoNfit2a[];
367extern ACPI_DMTABLE_INFO        AcpiDmTableInfoNfit3[];
368extern ACPI_DMTABLE_INFO        AcpiDmTableInfoNfit3a[];
369extern ACPI_DMTABLE_INFO        AcpiDmTableInfoNfit4[];
370extern ACPI_DMTABLE_INFO        AcpiDmTableInfoNfit5[];
371extern ACPI_DMTABLE_INFO        AcpiDmTableInfoNfit6[];
372extern ACPI_DMTABLE_INFO        AcpiDmTableInfoNfit6a[];
373extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPmtt[];
374extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPmtt0[];
375extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPmtt1[];
376extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPmtt1a[];
377extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPmtt2[];
378extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPmttHdr[];
379extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPcct[];
380extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPcctHdr[];
381extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPcct0[];
382extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPcct1[];
383extern ACPI_DMTABLE_INFO        AcpiDmTableInfoRsdp1[];
384extern ACPI_DMTABLE_INFO        AcpiDmTableInfoRsdp2[];
385extern ACPI_DMTABLE_INFO        AcpiDmTableInfoS3pt[];
386extern ACPI_DMTABLE_INFO        AcpiDmTableInfoS3ptHdr[];
387extern ACPI_DMTABLE_INFO        AcpiDmTableInfoS3pt0[];
388extern ACPI_DMTABLE_INFO        AcpiDmTableInfoS3pt1[];
389extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSbst[];
390extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSlic[];
391extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSlit[];
392extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSpcr[];
393extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSpmi[];
394extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSrat[];
395extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSratHdr[];
396extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSrat0[];
397extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSrat1[];
398extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSrat2[];
399extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSrat3[];
400extern ACPI_DMTABLE_INFO        AcpiDmTableInfoStao[];
401extern ACPI_DMTABLE_INFO        AcpiDmTableInfoStaoStr[];
402extern ACPI_DMTABLE_INFO        AcpiDmTableInfoTcpaHdr[];
403extern ACPI_DMTABLE_INFO        AcpiDmTableInfoTcpaClient[];
404extern ACPI_DMTABLE_INFO        AcpiDmTableInfoTcpaServer[];
405extern ACPI_DMTABLE_INFO        AcpiDmTableInfoTpm2[];
406extern ACPI_DMTABLE_INFO        AcpiDmTableInfoUefi[];
407extern ACPI_DMTABLE_INFO        AcpiDmTableInfoVrtc[];
408extern ACPI_DMTABLE_INFO        AcpiDmTableInfoVrtc0[];
409extern ACPI_DMTABLE_INFO        AcpiDmTableInfoWaet[];
410extern ACPI_DMTABLE_INFO        AcpiDmTableInfoWdat[];
411extern ACPI_DMTABLE_INFO        AcpiDmTableInfoWdat0[];
412extern ACPI_DMTABLE_INFO        AcpiDmTableInfoWddt[];
413extern ACPI_DMTABLE_INFO        AcpiDmTableInfoWdrt[];
414extern ACPI_DMTABLE_INFO        AcpiDmTableInfoWpbt[];
415extern ACPI_DMTABLE_INFO        AcpiDmTableInfoWpbt0[];
416extern ACPI_DMTABLE_INFO        AcpiDmTableInfoXenv[];
417
418extern ACPI_DMTABLE_INFO        AcpiDmTableInfoGeneric[][2];
419
420/*
421 * dmtable and ahtable
422 */
423extern const ACPI_DMTABLE_DATA  AcpiDmTableData[];
424extern const AH_TABLE           AcpiSupportedTables[];
425
426UINT8
427AcpiDmGenerateChecksum (
428    void                    *Table,
429    UINT32                  Length,
430    UINT8                   OriginalChecksum);
431
432const ACPI_DMTABLE_DATA *
433AcpiDmGetTableData (
434    char                    *Signature);
435
436void
437AcpiDmDumpDataTable (
438    ACPI_TABLE_HEADER       *Table);
439
440ACPI_STATUS
441AcpiDmDumpTable (
442    UINT32                  TableLength,
443    UINT32                  TableOffset,
444    void                    *Table,
445    UINT32                  SubTableLength,
446    ACPI_DMTABLE_INFO        *Info);
447
448void
449AcpiDmLineHeader (
450    UINT32                  Offset,
451    UINT32                  ByteLength,
452    char                    *Name);
453
454void
455AcpiDmLineHeader2 (
456    UINT32                  Offset,
457    UINT32                  ByteLength,
458    char                    *Name,
459    UINT32                  Value);
460
461
462/*
463 * dmtbdump
464 */
465void
466AcpiDmDumpBuffer (
467    void                    *Table,
468    UINT32                  BufferOffset,
469    UINT32                  Length,
470    UINT32                  AbsoluteOffset,
471    char                    *Header);
472
473void
474AcpiDmDumpUnicode (
475    void                    *Table,
476    UINT32                  BufferOffset,
477    UINT32                  ByteLength);
478
479void
480AcpiDmDumpAsf (
481    ACPI_TABLE_HEADER       *Table);
482
483void
484AcpiDmDumpCpep (
485    ACPI_TABLE_HEADER       *Table);
486
487void
488AcpiDmDumpCsrt (
489    ACPI_TABLE_HEADER       *Table);
490
491void
492AcpiDmDumpDbg2 (
493    ACPI_TABLE_HEADER       *Table);
494
495void
496AcpiDmDumpDmar (
497    ACPI_TABLE_HEADER       *Table);
498
499void
500AcpiDmDumpDrtm (
501    ACPI_TABLE_HEADER       *Table);
502
503void
504AcpiDmDumpEinj (
505    ACPI_TABLE_HEADER       *Table);
506
507void
508AcpiDmDumpErst (
509    ACPI_TABLE_HEADER       *Table);
510
511void
512AcpiDmDumpFadt (
513    ACPI_TABLE_HEADER       *Table);
514
515void
516AcpiDmDumpFpdt (
517    ACPI_TABLE_HEADER       *Table);
518
519void
520AcpiDmDumpGtdt (
521    ACPI_TABLE_HEADER       *Table);
522
523void
524AcpiDmDumpHest (
525    ACPI_TABLE_HEADER       *Table);
526
527void
528AcpiDmDumpIort (
529    ACPI_TABLE_HEADER       *Table);
530
531void
532AcpiDmDumpIvrs (
533    ACPI_TABLE_HEADER       *Table);
534
535void
536AcpiDmDumpLpit (
537    ACPI_TABLE_HEADER       *Table);
538
539void
540AcpiDmDumpMadt (
541    ACPI_TABLE_HEADER       *Table);
542
543void
544AcpiDmDumpMcfg (
545    ACPI_TABLE_HEADER       *Table);
546
547void
548AcpiDmDumpMpst (
549    ACPI_TABLE_HEADER       *Table);
550
551void
552AcpiDmDumpMsct (
553    ACPI_TABLE_HEADER       *Table);
554
555void
556AcpiDmDumpMtmr (
557    ACPI_TABLE_HEADER       *Table);
558
559void
560AcpiDmDumpNfit (
561    ACPI_TABLE_HEADER       *Table);
562
563void
564AcpiDmDumpPcct (
565    ACPI_TABLE_HEADER       *Table);
566
567void
568AcpiDmDumpPmtt (
569    ACPI_TABLE_HEADER       *Table);
570
571UINT32
572AcpiDmDumpRsdp (
573    ACPI_TABLE_HEADER       *Table);
574
575void
576AcpiDmDumpRsdt (
577    ACPI_TABLE_HEADER       *Table);
578
579UINT32
580AcpiDmDumpS3pt (
581    ACPI_TABLE_HEADER       *Table);
582
583void
584AcpiDmDumpSlic (
585    ACPI_TABLE_HEADER       *Table);
586
587void
588AcpiDmDumpSlit (
589    ACPI_TABLE_HEADER       *Table);
590
591void
592AcpiDmDumpSrat (
593    ACPI_TABLE_HEADER       *Table);
594
595void
596AcpiDmDumpStao (
597    ACPI_TABLE_HEADER       *Table);
598
599void
600AcpiDmDumpTcpa (
601    ACPI_TABLE_HEADER       *Table);
602
603void
604AcpiDmDumpVrtc (
605    ACPI_TABLE_HEADER       *Table);
606
607void
608AcpiDmDumpWdat (
609    ACPI_TABLE_HEADER       *Table);
610
611void
612AcpiDmDumpWpbt (
613    ACPI_TABLE_HEADER       *Table);
614
615void
616AcpiDmDumpXsdt (
617    ACPI_TABLE_HEADER       *Table);
618
619
620/*
621 * dmwalk
622 */
623void
624AcpiDmDisassemble (
625    ACPI_WALK_STATE         *WalkState,
626    ACPI_PARSE_OBJECT       *Origin,
627    UINT32                  NumOpcodes);
628
629void
630AcpiDmWalkParseTree (
631    ACPI_PARSE_OBJECT       *Op,
632    ASL_WALK_CALLBACK       DescendingCallback,
633    ASL_WALK_CALLBACK       AscendingCallback,
634    void                    *Context);
635
636
637/*
638 * dmopcode
639 */
640void
641AcpiDmDisassembleOneOp (
642    ACPI_WALK_STATE         *WalkState,
643    ACPI_OP_WALK_INFO       *Info,
644    ACPI_PARSE_OBJECT       *Op);
645
646UINT32
647AcpiDmListType (
648    ACPI_PARSE_OBJECT       *Op);
649
650void
651AcpiDmMethodFlags (
652    ACPI_PARSE_OBJECT       *Op);
653
654void
655AcpiDmDisplayTargetPathname (
656    ACPI_PARSE_OBJECT       *Op);
657
658void
659AcpiDmNotifyDescription (
660    ACPI_PARSE_OBJECT       *Op);
661
662void
663AcpiDmPredefinedDescription (
664    ACPI_PARSE_OBJECT       *Op);
665
666void
667AcpiDmFieldPredefinedDescription (
668    ACPI_PARSE_OBJECT       *Op);
669
670void
671AcpiDmFieldFlags (
672    ACPI_PARSE_OBJECT       *Op);
673
674void
675AcpiDmAddressSpace (
676    UINT8                   SpaceId);
677
678void
679AcpiDmRegionFlags (
680    ACPI_PARSE_OBJECT       *Op);
681
682void
683AcpiDmMatchOp (
684    ACPI_PARSE_OBJECT       *Op);
685
686
687/*
688 * dmnames
689 */
690UINT32
691AcpiDmDumpName (
692    UINT32                  Name);
693
694ACPI_STATUS
695AcpiPsDisplayObjectPathname (
696    ACPI_WALK_STATE         *WalkState,
697    ACPI_PARSE_OBJECT       *Op);
698
699void
700AcpiDmNamestring (
701    char                    *Name);
702
703
704/*
705 * dmbuffer
706 */
707void
708AcpiDmDisasmByteList (
709    UINT32                  Level,
710    UINT8                   *ByteData,
711    UINT32                  ByteCount);
712
713void
714AcpiDmByteList (
715    ACPI_OP_WALK_INFO       *Info,
716    ACPI_PARSE_OBJECT       *Op);
717
718void
719AcpiDmCheckForHardwareId (
720    ACPI_PARSE_OBJECT       *Op);
721
722void
723AcpiDmDecompressEisaId (
724    UINT32                  EncodedId);
725
726BOOLEAN
727AcpiDmIsUuidBuffer (
728    ACPI_PARSE_OBJECT       *Op);
729
730BOOLEAN
731AcpiDmIsUnicodeBuffer (
732    ACPI_PARSE_OBJECT       *Op);
733
734BOOLEAN
735AcpiDmIsStringBuffer (
736    ACPI_PARSE_OBJECT       *Op);
737
738BOOLEAN
739AcpiDmIsPldBuffer (
740    ACPI_PARSE_OBJECT       *Op);
741
742
743/*
744 * dmdeferred
745 */
746ACPI_STATUS
747AcpiDmParseDeferredOps (
748    ACPI_PARSE_OBJECT       *Root);
749
750
751/*
752 * dmextern
753 */
754ACPI_STATUS
755AcpiDmAddToExternalFileList (
756    char                    *PathList);
757
758void
759AcpiDmClearExternalFileList (
760    void);
761
762void
763AcpiDmAddOpToExternalList (
764    ACPI_PARSE_OBJECT       *Op,
765    char                    *Path,
766    UINT8                   Type,
767    UINT32                  Value,
768    UINT16                  Flags);
769
770void
771AcpiDmAddNodeToExternalList (
772    ACPI_NAMESPACE_NODE     *Node,
773    UINT8                   Type,
774    UINT32                  Value,
775    UINT16                  Flags);
776
777void
778AcpiDmAddExternalsToNamespace (
779    void);
780
781UINT32
782AcpiDmGetExternalMethodCount (
783    void);
784
785void
786AcpiDmClearExternalList (
787    void);
788
789void
790AcpiDmEmitExternals (
791    void);
792
793void
794AcpiDmUnresolvedWarning (
795    UINT8                   Type);
796
797void
798AcpiDmGetExternalsFromFile (
799    void);
800
801/*
802 * dmresrc
803 */
804void
805AcpiDmDumpInteger8 (
806    UINT8                   Value,
807    char                    *Name);
808
809void
810AcpiDmDumpInteger16 (
811    UINT16                  Value,
812    char                    *Name);
813
814void
815AcpiDmDumpInteger32 (
816    UINT32                  Value,
817    char                    *Name);
818
819void
820AcpiDmDumpInteger64 (
821    UINT64                  Value,
822    char                    *Name);
823
824void
825AcpiDmResourceTemplate (
826    ACPI_OP_WALK_INFO       *Info,
827    ACPI_PARSE_OBJECT       *Op,
828    UINT8                   *ByteData,
829    UINT32                  ByteCount);
830
831ACPI_STATUS
832AcpiDmIsResourceTemplate (
833    ACPI_WALK_STATE         *WalkState,
834    ACPI_PARSE_OBJECT       *Op);
835
836void
837AcpiDmBitList (
838    UINT16                  Mask);
839
840void
841AcpiDmDescriptorName (
842    void);
843
844
845/*
846 * dmresrcl
847 */
848void
849AcpiDmWordDescriptor (
850    ACPI_OP_WALK_INFO       *Info,
851    AML_RESOURCE            *Resource,
852    UINT32                  Length,
853    UINT32                  Level);
854
855void
856AcpiDmDwordDescriptor (
857    ACPI_OP_WALK_INFO       *Info,
858    AML_RESOURCE            *Resource,
859    UINT32                  Length,
860    UINT32                  Level);
861
862void
863AcpiDmExtendedDescriptor (
864    ACPI_OP_WALK_INFO       *Info,
865    AML_RESOURCE            *Resource,
866    UINT32                  Length,
867    UINT32                  Level);
868
869void
870AcpiDmQwordDescriptor (
871    ACPI_OP_WALK_INFO       *Info,
872    AML_RESOURCE            *Resource,
873    UINT32                  Length,
874    UINT32                  Level);
875
876void
877AcpiDmMemory24Descriptor (
878    ACPI_OP_WALK_INFO       *Info,
879    AML_RESOURCE            *Resource,
880    UINT32                  Length,
881    UINT32                  Level);
882
883void
884AcpiDmMemory32Descriptor (
885    ACPI_OP_WALK_INFO       *Info,
886    AML_RESOURCE            *Resource,
887    UINT32                  Length,
888    UINT32                  Level);
889
890void
891AcpiDmFixedMemory32Descriptor (
892    ACPI_OP_WALK_INFO       *Info,
893    AML_RESOURCE            *Resource,
894    UINT32                  Length,
895    UINT32                  Level);
896
897void
898AcpiDmGenericRegisterDescriptor (
899    ACPI_OP_WALK_INFO       *Info,
900    AML_RESOURCE            *Resource,
901    UINT32                  Length,
902    UINT32                  Level);
903
904void
905AcpiDmInterruptDescriptor (
906    ACPI_OP_WALK_INFO       *Info,
907    AML_RESOURCE            *Resource,
908    UINT32                  Length,
909    UINT32                  Level);
910
911void
912AcpiDmVendorLargeDescriptor (
913    ACPI_OP_WALK_INFO       *Info,
914    AML_RESOURCE            *Resource,
915    UINT32                  Length,
916    UINT32                  Level);
917
918void
919AcpiDmGpioDescriptor (
920    ACPI_OP_WALK_INFO       *Info,
921    AML_RESOURCE            *Resource,
922    UINT32                  Length,
923    UINT32                  Level);
924
925void
926AcpiDmSerialBusDescriptor (
927    ACPI_OP_WALK_INFO       *Info,
928    AML_RESOURCE            *Resource,
929    UINT32                  Length,
930    UINT32                  Level);
931
932void
933AcpiDmVendorCommon (
934    char                    *Name,
935    UINT8                   *ByteData,
936    UINT32                  Length,
937    UINT32                  Level);
938
939
940/*
941 * dmresrcs
942 */
943void
944AcpiDmIrqDescriptor (
945    ACPI_OP_WALK_INFO       *Info,
946    AML_RESOURCE            *Resource,
947    UINT32                  Length,
948    UINT32                  Level);
949
950void
951AcpiDmDmaDescriptor (
952    ACPI_OP_WALK_INFO       *Info,
953    AML_RESOURCE            *Resource,
954    UINT32                  Length,
955    UINT32                  Level);
956
957void
958AcpiDmFixedDmaDescriptor (
959    ACPI_OP_WALK_INFO       *Info,
960    AML_RESOURCE            *Resource,
961    UINT32                  Length,
962    UINT32                  Level);
963
964void
965AcpiDmIoDescriptor (
966    ACPI_OP_WALK_INFO       *Info,
967    AML_RESOURCE            *Resource,
968    UINT32                  Length,
969    UINT32                  Level);
970
971void
972AcpiDmFixedIoDescriptor (
973    ACPI_OP_WALK_INFO       *Info,
974    AML_RESOURCE            *Resource,
975    UINT32                  Length,
976    UINT32                  Level);
977
978void
979AcpiDmStartDependentDescriptor (
980    ACPI_OP_WALK_INFO       *Info,
981    AML_RESOURCE            *Resource,
982    UINT32                  Length,
983    UINT32                  Level);
984
985void
986AcpiDmEndDependentDescriptor (
987    ACPI_OP_WALK_INFO       *Info,
988    AML_RESOURCE            *Resource,
989    UINT32                  Length,
990    UINT32                  Level);
991
992void
993AcpiDmVendorSmallDescriptor (
994    ACPI_OP_WALK_INFO       *Info,
995    AML_RESOURCE            *Resource,
996    UINT32                  Length,
997    UINT32                  Level);
998
999
1000/*
1001 * dmutils
1002 */
1003void
1004AcpiDmDecodeAttribute (
1005    UINT8                   Attribute);
1006
1007void
1008AcpiDmIndent (
1009    UINT32                  Level);
1010
1011BOOLEAN
1012AcpiDmCommaIfListMember (
1013    ACPI_PARSE_OBJECT       *Op);
1014
1015void
1016AcpiDmCommaIfFieldMember (
1017    ACPI_PARSE_OBJECT       *Op);
1018
1019
1020/*
1021 * dmrestag
1022 */
1023void
1024AcpiDmFindResources (
1025    ACPI_PARSE_OBJECT       *Root);
1026
1027void
1028AcpiDmCheckResourceReference (
1029    ACPI_PARSE_OBJECT       *Op,
1030    ACPI_WALK_STATE         *WalkState);
1031
1032
1033/*
1034 * dmcstyle
1035 */
1036BOOLEAN
1037AcpiDmCheckForSymbolicOpcode (
1038    ACPI_PARSE_OBJECT       *Op,
1039    ACPI_OP_WALK_INFO       *Info);
1040
1041void
1042AcpiDmCloseOperator (
1043    ACPI_PARSE_OBJECT       *Op);
1044
1045
1046/*
1047 * acdisasm
1048 */
1049void
1050AdDisassemblerHeader (
1051    char                    *Filename,
1052    UINT8                   TableType);
1053
1054#define ACPI_IS_AML_TABLE   0
1055#define ACPI_IS_DATA_TABLE  1
1056
1057#endif  /* __ACDISASM_H__ */
1058