1/******************************************************************************
2 *
3 * Name: acdisasm.h - AML disassembler
4 *
5 *****************************************************************************/
6
7/*
8 * Copyright (C) 2000 - 2023, 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 MERCHANTABILITY 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 "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    *(const 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_FLAGS8_2,
102    ACPI_DMT_FLAGS4,
103    ACPI_DMT_FLAGS4_0,
104    ACPI_DMT_FLAGS4_4,
105    ACPI_DMT_FLAGS4_8,
106    ACPI_DMT_FLAGS4_12,
107    ACPI_DMT_FLAGS16_16,
108    ACPI_DMT_UINT8,
109    ACPI_DMT_UINT16,
110    ACPI_DMT_UINT24,
111    ACPI_DMT_UINT32,
112    ACPI_DMT_UINT40,
113    ACPI_DMT_UINT48,
114    ACPI_DMT_UINT56,
115    ACPI_DMT_UINT64,
116    ACPI_DMT_BUF7,
117    ACPI_DMT_BUF10,
118    ACPI_DMT_BUF12,
119    ACPI_DMT_BUF16,
120    ACPI_DMT_BUF18,
121    ACPI_DMT_BUF128,
122    ACPI_DMT_SIG,
123    ACPI_DMT_STRING,
124    ACPI_DMT_NAME4,
125    ACPI_DMT_NAME6,
126    ACPI_DMT_NAME8,
127
128    /* Types that are decoded to strings and miscellaneous */
129
130    ACPI_DMT_ACCWIDTH,
131    ACPI_DMT_CHKSUM,
132    ACPI_DMT_GAS,
133    ACPI_DMT_SPACEID,
134    ACPI_DMT_UNICODE,
135    ACPI_DMT_UUID,
136
137    /* Types used only for the Data Table Compiler */
138
139    ACPI_DMT_BUFFER,
140    ACPI_DMT_RAW_BUFFER,  /* Large, multiple line buffer */
141    ACPI_DMT_DEVICE_PATH,
142    ACPI_DMT_LABEL,
143    ACPI_DMT_PCI_PATH,
144
145    /* Types that are specific to particular ACPI tables */
146
147    ACPI_DMT_AEST,
148    ACPI_DMT_AEST_CACHE,
149    ACPI_DMT_AEST_GIC,
150    ACPI_DMT_AEST_RES,
151    ACPI_DMT_AEST_XFACE,
152    ACPI_DMT_AEST_XRUPT,
153    ACPI_DMT_AGDI,
154    ACPI_DMT_ASF,
155    ACPI_DMT_ASPT,
156    ACPI_DMT_CDAT,
157    ACPI_DMT_CEDT,
158    ACPI_DMT_DMAR,
159    ACPI_DMT_DMAR_SCOPE,
160    ACPI_DMT_EINJACT,
161    ACPI_DMT_EINJINST,
162    ACPI_DMT_ERSTACT,
163    ACPI_DMT_ERSTINST,
164    ACPI_DMT_FADTPM,
165    ACPI_DMT_GTDT,
166    ACPI_DMT_HEST,
167    ACPI_DMT_HESTNTFY,
168    ACPI_DMT_HESTNTYP,
169    ACPI_DMT_HMAT,
170    ACPI_DMT_IORTMEM,
171    ACPI_DMT_IVRS,
172    ACPI_DMT_IVRS_DE,
173    ACPI_DMT_IVRS_UNTERMINATED_STRING,
174    ACPI_DMT_LPIT,
175    ACPI_DMT_MADT,
176    ACPI_DMT_MPAM_LOCATOR,
177    ACPI_DMT_NFIT,
178    ACPI_DMT_NHLT1,
179    ACPI_DMT_NHLT1a,
180    ACPI_DMT_NHLT1b,
181    ACPI_DMT_NHLT1c,
182    ACPI_DMT_NHLT1d,
183    ACPI_DMT_NHLT1e,
184    ACPI_DMT_NHLT1f,
185    ACPI_DMT_PCCT,
186    ACPI_DMT_PHAT,
187    ACPI_DMT_PMTT,
188    ACPI_DMT_PMTT_VENDOR,
189    ACPI_DMT_PPTT,
190    ACPI_DMT_RGRT,
191    ACPI_DMT_RHCT,
192    ACPI_DMT_SDEI,
193    ACPI_DMT_SDEV,
194    ACPI_DMT_SLIC,
195    ACPI_DMT_SRAT,
196    ACPI_DMT_TPM2,
197    ACPI_DMT_VIOT,
198    ACPI_DMT_WPBT_UNICODE,
199
200    /* Special opcodes */
201
202    ACPI_DMT_EXTRA_TEXT,
203    ACPI_DMT_EXIT
204
205} ACPI_ENTRY_TYPES;
206
207typedef
208void (*ACPI_DMTABLE_HANDLER) (
209    ACPI_TABLE_HEADER       *Table);
210
211typedef
212ACPI_STATUS (*ACPI_CMTABLE_HANDLER) (
213    void                    **PFieldList);
214
215typedef struct acpi_dmtable_data
216{
217    char                    *Signature;
218    ACPI_DMTABLE_INFO       *TableInfo;
219    ACPI_DMTABLE_HANDLER    TableHandler;
220    ACPI_CMTABLE_HANDLER    CmTableHandler;
221    const unsigned char     *Template;
222
223} ACPI_DMTABLE_DATA;
224
225
226typedef struct acpi_op_walk_info
227{
228    ACPI_WALK_STATE         *WalkState;
229    ACPI_PARSE_OBJECT       *MappingOp;
230    UINT8                   *PreviousAml;
231    UINT8                   *StartAml;
232    UINT32                  Level;
233    UINT32                  LastLevel;
234    UINT32                  Count;
235    UINT32                  BitOffset;
236    UINT32                  Flags;
237    UINT32                  AmlOffset;
238
239} ACPI_OP_WALK_INFO;
240
241/*
242 * TBD - another copy of this is in asltypes.h, fix
243 */
244#ifndef ASL_WALK_CALLBACK_DEFINED
245typedef
246ACPI_STATUS (*ASL_WALK_CALLBACK) (
247    ACPI_PARSE_OBJECT           *Op,
248    UINT32                      Level,
249    void                        *Context);
250#define ASL_WALK_CALLBACK_DEFINED
251#endif
252
253typedef
254void (*ACPI_RESOURCE_HANDLER) (
255    ACPI_OP_WALK_INFO       *Info,
256    AML_RESOURCE            *Resource,
257    UINT32                  Length,
258    UINT32                  Level);
259
260typedef struct acpi_resource_tag
261{
262    UINT32                  BitIndex;
263    char                    *Tag;
264
265} ACPI_RESOURCE_TAG;
266
267/* Strings used for decoding flags to ASL keywords */
268
269extern const char               *AcpiGbl_WordDecode[];
270extern const char               *AcpiGbl_IrqDecode[];
271extern const char               *AcpiGbl_LockRule[];
272extern const char               *AcpiGbl_AccessTypes[];
273extern const char               *AcpiGbl_UpdateRules[];
274extern const char               *AcpiGbl_MatchOps[];
275
276extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAestHdr[];
277extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAestProcError[];
278extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAestCacheRsrc[];
279extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAestTlbRsrc[];
280extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAestGenRsrc[];
281extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAestMemError[];
282extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAestSmmuError[];
283extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAestVendorError[];
284extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAestGicError[];
285extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAestXface[];
286extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAestXrupt[];
287extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAgdi[];
288extern ACPI_DMTABLE_INFO        AcpiDmTableInfoApmtNode[];
289extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf0[];
290extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf1[];
291extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf1a[];
292extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf2[];
293extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf2a[];
294extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf3[];
295extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf4[];
296extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsfHdr[];
297extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAspt[];
298extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsptHdr[];
299extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAspt0[];
300extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAspt1[];
301extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAspt2[];
302extern ACPI_DMTABLE_INFO        AcpiDmTableInfoBdat[];
303extern ACPI_DMTABLE_INFO        AcpiDmTableInfoBoot[];
304extern ACPI_DMTABLE_INFO        AcpiDmTableInfoBert[];
305extern ACPI_DMTABLE_INFO        AcpiDmTableInfoBgrt[];
306extern ACPI_DMTABLE_INFO        AcpiDmTableInfoCcel[];
307extern ACPI_DMTABLE_INFO        AcpiDmTableInfoCdatTableHdr[];
308extern ACPI_DMTABLE_INFO        AcpiDmTableInfoCdatHeader[];
309extern ACPI_DMTABLE_INFO        AcpiDmTableInfoCdat0[];
310extern ACPI_DMTABLE_INFO        AcpiDmTableInfoCdat1[];
311extern ACPI_DMTABLE_INFO        AcpiDmTableInfoCdat2[];
312extern ACPI_DMTABLE_INFO        AcpiDmTableInfoCdat3[];
313extern ACPI_DMTABLE_INFO        AcpiDmTableInfoCdat4[];
314extern ACPI_DMTABLE_INFO        AcpiDmTableInfoCdat5[];
315extern ACPI_DMTABLE_INFO        AcpiDmTableInfoCdatEntries[];
316extern ACPI_DMTABLE_INFO        AcpiDmTableInfoCedtHdr[];
317extern ACPI_DMTABLE_INFO        AcpiDmTableInfoCedt0[];
318extern ACPI_DMTABLE_INFO        AcpiDmTableInfoCedt1[];
319extern ACPI_DMTABLE_INFO        AcpiDmTableInfoCedt1_te[];
320extern ACPI_DMTABLE_INFO        AcpiDmTableInfoCpep[];
321extern ACPI_DMTABLE_INFO        AcpiDmTableInfoCpep0[];
322extern ACPI_DMTABLE_INFO        AcpiDmTableInfoCsrt0[];
323extern ACPI_DMTABLE_INFO        AcpiDmTableInfoCsrt1[];
324extern ACPI_DMTABLE_INFO        AcpiDmTableInfoCsrt2[];
325extern ACPI_DMTABLE_INFO        AcpiDmTableInfoCsrt2a[];
326extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDbg2[];
327extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDbg2Device[];
328extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDbg2Addr[];
329extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDbg2Size[];
330extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDbg2Name[];
331extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDbg2OemData[];
332extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDbgp[];
333extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmar[];
334extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmarHdr[];
335extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmarScope[];
336extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmar0[];
337extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmar1[];
338extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmar2[];
339extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmar3[];
340extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmar4[];
341extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmar5[];
342extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDrtm[];
343extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDrtm0[];
344extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDrtm0a[];
345extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDrtm1[];
346extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDrtm1a[];
347extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDrtm2[];
348extern ACPI_DMTABLE_INFO        AcpiDmTableInfoEcdt[];
349extern ACPI_DMTABLE_INFO        AcpiDmTableInfoEinj[];
350extern ACPI_DMTABLE_INFO        AcpiDmTableInfoEinj0[];
351extern ACPI_DMTABLE_INFO        AcpiDmTableInfoErst[];
352extern ACPI_DMTABLE_INFO        AcpiDmTableInfoErst0[];
353extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFacs[];
354extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFadt1[];
355extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFadt2[];
356extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFadt3[];
357extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFadt5[];
358extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFadt6[];
359extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFpdt[];
360extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFpdtHdr[];
361extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFpdt0[];
362extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFpdt1[];
363extern ACPI_DMTABLE_INFO        AcpiDmTableInfoGas[];
364extern ACPI_DMTABLE_INFO        AcpiDmTableInfoGtdt[];
365extern ACPI_DMTABLE_INFO        AcpiDmTableInfoGtdtHdr[];
366extern ACPI_DMTABLE_INFO        AcpiDmTableInfoGtdtEl2[];
367extern ACPI_DMTABLE_INFO        AcpiDmTableInfoGtdt0[];
368extern ACPI_DMTABLE_INFO        AcpiDmTableInfoGtdt0a[];
369extern ACPI_DMTABLE_INFO        AcpiDmTableInfoGtdt1[];
370extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHeader[];
371extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest[];
372extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest0[];
373extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest1[];
374extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest2[];
375extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest6[];
376extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest7[];
377extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest8[];
378extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest9[];
379extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest10[];
380extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest11[];
381extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHestNotify[];
382extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHestBank[];
383extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHpet[];
384extern ACPI_DMTABLE_INFO        AcpiDmTableInfoLpitHdr[];
385extern ACPI_DMTABLE_INFO        AcpiDmTableInfoLpit0[];
386extern ACPI_DMTABLE_INFO        AcpiDmTableInfoLpit1[];
387extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHmat[];
388extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHmat0[];
389extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHmat1[];
390extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHmat1a[];
391extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHmat1b[];
392extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHmat1c[];
393extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHmat2[];
394extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHmat2a[];
395extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHmatHdr[];
396extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIort[];
397extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIort0[];
398extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIort0a[];
399extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIort1[];
400extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIort1a[];
401extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIort2[];
402extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIort3[];
403extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIort3a[];
404extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIort3b[];
405extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIort3c[];
406extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIort4[];
407extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIort5[];
408extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIort6[];
409extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIort6a[];
410extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIortAcc[];
411extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIortHdr[];
412extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIortHdr3[];
413extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIortMap[];
414extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIortPad[];
415extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs[];
416extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrsHware1[];
417extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrsHware23[];
418extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrsMemory[];
419extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs4[];
420extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs8a[];
421extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs8b[];
422extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs8c[];
423extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrsCidString[];
424extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrsCidInteger[];
425extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrsHid[];
426extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrsUidString[];
427extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrsUidInteger[];
428extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrsHidString[];
429extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrsHidInteger[];
430extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt[];
431extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt0[];
432extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt1[];
433extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt2[];
434extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt3[];
435extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt4[];
436extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt5[];
437extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt6[];
438extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt7[];
439extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt8[];
440extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt9[];
441extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt10[];
442extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt11[];
443extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt12[];
444extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt13[];
445extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt14[];
446extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt15[];
447extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt16[];
448extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt17[];
449extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt18[];
450extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt19[];
451extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt20[];
452extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt21[];
453extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt22[];
454extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt23[];
455extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt24[];
456extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt25[];
457extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt26[];
458extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt27[];
459extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt128[];
460extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadtHdr[];
461extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMcfg[];
462extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMcfg0[];
463extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMchi[];
464extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMpam0[];
465extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMpam1[];
466extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMpam1A[];
467extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMpam1B[];
468extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMpam1C[];
469extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMpam1D[];
470extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMpam1E[];
471extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMpam1F[];
472extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMpam1G[];
473extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMpam1Deps[];
474extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMpam2[];
475extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMpst[];
476extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMpst0[];
477extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMpst0A[];
478extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMpst0B[];
479extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMpst1[];
480extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMpst2[];
481extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMsct[];
482extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMsct0[];
483extern ACPI_DMTABLE_INFO        AcpiDmTableInfoNfit[];
484extern ACPI_DMTABLE_INFO        AcpiDmTableInfoNfitHdr[];
485extern ACPI_DMTABLE_INFO        AcpiDmTableInfoNfit0[];
486extern ACPI_DMTABLE_INFO        AcpiDmTableInfoNfit1[];
487extern ACPI_DMTABLE_INFO        AcpiDmTableInfoNfit2[];
488extern ACPI_DMTABLE_INFO        AcpiDmTableInfoNfit2a[];
489extern ACPI_DMTABLE_INFO        AcpiDmTableInfoNfit3[];
490extern ACPI_DMTABLE_INFO        AcpiDmTableInfoNfit3a[];
491extern ACPI_DMTABLE_INFO        AcpiDmTableInfoNfit4[];
492extern ACPI_DMTABLE_INFO        AcpiDmTableInfoNfit5[];
493extern ACPI_DMTABLE_INFO        AcpiDmTableInfoNfit6[];
494extern ACPI_DMTABLE_INFO        AcpiDmTableInfoNfit6a[];
495extern ACPI_DMTABLE_INFO        AcpiDmTableInfoNfit7[];
496extern ACPI_DMTABLE_INFO        AcpiDmTableInfoNhlt[];
497extern ACPI_DMTABLE_INFO        AcpiDmTableInfoNhlt0[];
498extern ACPI_DMTABLE_INFO        AcpiDmTableInfoNhlt1[];
499extern ACPI_DMTABLE_INFO        AcpiDmTableInfoNhlt2[];
500extern ACPI_DMTABLE_INFO        AcpiDmTableInfoNhlt3[];
501extern ACPI_DMTABLE_INFO        AcpiDmTableInfoNhlt3a[];
502extern ACPI_DMTABLE_INFO        AcpiDmTableInfoNhlt4[];
503extern ACPI_DMTABLE_INFO        AcpiDmTableInfoNhlt5[];
504extern ACPI_DMTABLE_INFO        AcpiDmTableInfoNhlt5a[];
505extern ACPI_DMTABLE_INFO        AcpiDmTableInfoNhlt5b[];
506extern ACPI_DMTABLE_INFO        AcpiDmTableInfoNhlt5c[];
507extern ACPI_DMTABLE_INFO        AcpiDmTableInfoNhlt6[];
508extern ACPI_DMTABLE_INFO        AcpiDmTableInfoNhlt6a[];
509extern ACPI_DMTABLE_INFO        AcpiDmTableInfoNhlt6b[];
510extern ACPI_DMTABLE_INFO        AcpiDmTableInfoNhlt7[];
511extern ACPI_DMTABLE_INFO        AcpiDmTableInfoNhlt7a[];
512extern ACPI_DMTABLE_INFO        AcpiDmTableInfoNhlt7b[];
513extern ACPI_DMTABLE_INFO        AcpiDmTableInfoNhlt9[];
514extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPhatHdr[];
515extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPhat0[];
516extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPhat0a[];
517extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPhat1[];
518extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPhat1a[];
519extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPhat1b[];
520extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPmtt[];
521extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPmtt0[];
522extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPmtt1[];
523extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPmtt2[];
524extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPmttVendor[];
525extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPmttHdr[];
526extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPcct[];
527extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPcctHdr[];
528extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPcct0[];
529extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPcct1[];
530extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPcct2[];
531extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPcct3[];
532extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPcct4[];
533extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPcct5[];
534extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPdtt[];
535extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPdtt0[];
536extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPptt0[];
537extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPptt0a[];
538extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPptt1[];
539extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPptt1a[];
540extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPptt2[];
541extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPpttHdr[];
542extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPrmtHdr[];
543extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPrmtModule[];
544extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPrmtHandler[];
545extern ACPI_DMTABLE_INFO        AcpiDmTableInfoRasf[];
546extern ACPI_DMTABLE_INFO        AcpiDmTableInfoRgrt[];
547extern ACPI_DMTABLE_INFO        AcpiDmTableInfoRgrt0[];
548extern ACPI_DMTABLE_INFO        AcpiDmTableInfoRhct[];
549extern ACPI_DMTABLE_INFO        AcpiDmTableInfoRhctNodeHdr[];
550extern ACPI_DMTABLE_INFO        AcpiDmTableInfoRhctIsa1[];
551extern ACPI_DMTABLE_INFO        AcpiDmTableInfoRhctIsaPad[];
552extern ACPI_DMTABLE_INFO        AcpiDmTableInfoRhctCmo1[];
553extern ACPI_DMTABLE_INFO        AcpiDmTableInfoRhctMmu1[];
554extern ACPI_DMTABLE_INFO        AcpiDmTableInfoRhctHartInfo1[];
555extern ACPI_DMTABLE_INFO        AcpiDmTableInfoRhctHartInfo2[];
556extern ACPI_DMTABLE_INFO        AcpiDmTableInfoRsdp1[];
557extern ACPI_DMTABLE_INFO        AcpiDmTableInfoRsdp2[];
558extern ACPI_DMTABLE_INFO        AcpiDmTableInfoS3pt[];
559extern ACPI_DMTABLE_INFO        AcpiDmTableInfoS3ptHdr[];
560extern ACPI_DMTABLE_INFO        AcpiDmTableInfoS3pt0[];
561extern ACPI_DMTABLE_INFO        AcpiDmTableInfoS3pt1[];
562extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSbst[];
563extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSdei[];
564extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSdev[];
565extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSdevHdr[];
566extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSdev0[];
567extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSdev0a[];
568extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSdev0b[];
569extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSdevSecCompHdr[];
570extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSdevSecCompId[];
571extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSdevSecCompMem[];
572extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSdev1[];
573extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSdev1a[];
574extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSdev1b[];
575extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSlic[];
576extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSlit[];
577extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSpcr[];
578extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSpmi[];
579extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSrat[];
580extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSratHdr[];
581extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSrat0[];
582extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSrat1[];
583extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSrat2[];
584extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSrat3[];
585extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSrat4[];
586extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSrat5[];
587extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSrat6[];
588extern ACPI_DMTABLE_INFO        AcpiDmTableInfoStao[];
589extern ACPI_DMTABLE_INFO        AcpiDmTableInfoStaoStr[];
590extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSvkl[];
591extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSvkl0[];
592extern ACPI_DMTABLE_INFO        AcpiDmTableInfoTcpaHdr[];
593extern ACPI_DMTABLE_INFO        AcpiDmTableInfoTcpaClient[];
594extern ACPI_DMTABLE_INFO        AcpiDmTableInfoTcpaServer[];
595extern ACPI_DMTABLE_INFO        AcpiDmTableInfoTdel[];
596extern ACPI_DMTABLE_INFO        AcpiDmTableInfoTpm2[];
597extern ACPI_DMTABLE_INFO        AcpiDmTableInfoTpm2a[];
598extern ACPI_DMTABLE_INFO        AcpiDmTableInfoTpm211[];
599extern ACPI_DMTABLE_INFO        AcpiDmTableInfoTpm23[];
600extern ACPI_DMTABLE_INFO        AcpiDmTableInfoTpm23a[];
601extern ACPI_DMTABLE_INFO        AcpiDmTableInfoUefi[];
602extern ACPI_DMTABLE_INFO        AcpiDmTableInfoViot[];
603extern ACPI_DMTABLE_INFO        AcpiDmTableInfoViotHeader[];
604extern ACPI_DMTABLE_INFO        AcpiDmTableInfoViot1[];
605extern ACPI_DMTABLE_INFO        AcpiDmTableInfoViot2[];
606extern ACPI_DMTABLE_INFO        AcpiDmTableInfoViot3[];
607extern ACPI_DMTABLE_INFO        AcpiDmTableInfoViot4[];
608extern ACPI_DMTABLE_INFO        AcpiDmTableInfoWaet[];
609extern ACPI_DMTABLE_INFO        AcpiDmTableInfoWdat[];
610extern ACPI_DMTABLE_INFO        AcpiDmTableInfoWdat0[];
611extern ACPI_DMTABLE_INFO        AcpiDmTableInfoWddt[];
612extern ACPI_DMTABLE_INFO        AcpiDmTableInfoWdrt[];
613extern ACPI_DMTABLE_INFO        AcpiDmTableInfoWpbt[];
614extern ACPI_DMTABLE_INFO        AcpiDmTableInfoWpbt0[];
615extern ACPI_DMTABLE_INFO        AcpiDmTableInfoWsmt[];
616extern ACPI_DMTABLE_INFO        AcpiDmTableInfoXenv[];
617
618extern ACPI_DMTABLE_INFO        AcpiDmTableInfoGeneric[][2];
619
620/*
621 * dmtable and ahtable
622 */
623extern const ACPI_DMTABLE_DATA  AcpiDmTableData[];
624extern const AH_TABLE           AcpiGbl_SupportedTables[];
625
626UINT8
627AcpiDmGenerateChecksum (
628    void                    *Table,
629    UINT32                  Length,
630    UINT8                   OriginalChecksum);
631
632const ACPI_DMTABLE_DATA *
633AcpiDmGetTableData (
634    char                    *Signature);
635
636void
637AcpiDmDumpDataTable (
638    ACPI_TABLE_HEADER       *Table);
639
640ACPI_STATUS
641AcpiDmDumpTable (
642    UINT32                  TableLength,
643    UINT32                  TableOffset,
644    void                    *Table,
645    UINT32                  SubtableLength,
646    ACPI_DMTABLE_INFO        *Info);
647
648void
649AcpiDmLineHeader (
650    UINT32                  Offset,
651    UINT32                  ByteLength,
652    char                    *Name);
653
654void
655AcpiDmLineHeader2 (
656    UINT32                  Offset,
657    UINT32                  ByteLength,
658    char                    *Name,
659    UINT32                  Value);
660
661
662/*
663 * dmtbdump
664 */
665void
666AcpiDmDumpBuffer (
667    void                    *Table,
668    UINT32                  BufferOffset,
669    UINT32                  Length,
670    UINT32                  AbsoluteOffset,
671    char                    *Header);
672
673void
674AcpiDmDumpUnicode (
675    void                    *Table,
676    UINT32                  BufferOffset,
677    UINT32                  ByteLength);
678
679void
680AcpiDmDumpAest (
681    ACPI_TABLE_HEADER       *Table);
682
683void
684AcpiDmDumpApmt (
685    ACPI_TABLE_HEADER       *Table);
686
687void
688AcpiDmDumpAsf (
689    ACPI_TABLE_HEADER       *Table);
690
691void
692AcpiDmDumpAspt (
693    ACPI_TABLE_HEADER       *Table);
694
695void
696AcpiDmDumpCcel (
697    ACPI_TABLE_HEADER       *Table);
698
699void
700AcpiDmDumpCdat (
701    ACPI_TABLE_HEADER       *Table);
702
703void
704AcpiDmDumpCedt (
705    ACPI_TABLE_HEADER       *Table);
706
707void
708AcpiDmDumpCpep (
709    ACPI_TABLE_HEADER       *Table);
710
711void
712AcpiDmDumpCsrt (
713    ACPI_TABLE_HEADER       *Table);
714
715void
716AcpiDmDumpDbg2 (
717    ACPI_TABLE_HEADER       *Table);
718
719void
720AcpiDmDumpDmar (
721    ACPI_TABLE_HEADER       *Table);
722
723void
724AcpiDmDumpDrtm (
725    ACPI_TABLE_HEADER       *Table);
726
727void
728AcpiDmDumpEinj (
729    ACPI_TABLE_HEADER       *Table);
730
731void
732AcpiDmDumpErst (
733    ACPI_TABLE_HEADER       *Table);
734
735void
736AcpiDmDumpFadt (
737    ACPI_TABLE_HEADER       *Table);
738
739void
740AcpiDmDumpFpdt (
741    ACPI_TABLE_HEADER       *Table);
742
743void
744AcpiDmDumpGtdt (
745    ACPI_TABLE_HEADER       *Table);
746
747void
748AcpiDmDumpHest (
749    ACPI_TABLE_HEADER       *Table);
750
751void
752AcpiDmDumpHmat (
753    ACPI_TABLE_HEADER       *Table);
754
755void
756AcpiDmDumpIort (
757    ACPI_TABLE_HEADER       *Table);
758
759void
760AcpiDmDumpIvrs (
761    ACPI_TABLE_HEADER       *Table);
762
763void
764AcpiDmDumpLpit (
765    ACPI_TABLE_HEADER       *Table);
766
767void
768AcpiDmDumpMadt (
769    ACPI_TABLE_HEADER       *Table);
770
771void
772AcpiDmDumpMcfg (
773    ACPI_TABLE_HEADER       *Table);
774
775void
776AcpiDmDumpMpam (
777    ACPI_TABLE_HEADER       *Table);
778
779void
780AcpiDmDumpMpst (
781    ACPI_TABLE_HEADER       *Table);
782
783void
784AcpiDmDumpMsct (
785    ACPI_TABLE_HEADER       *Table);
786
787void
788AcpiDmDumpNfit (
789    ACPI_TABLE_HEADER       *Table);
790
791void
792AcpiDmDumpNhlt (
793    ACPI_TABLE_HEADER       *Table);
794
795void
796AcpiDmDumpPcct (
797    ACPI_TABLE_HEADER       *Table);
798
799void
800AcpiDmDumpPdtt (
801    ACPI_TABLE_HEADER       *Table);
802
803void
804AcpiDmDumpPhat (
805    ACPI_TABLE_HEADER       *Table);
806
807void
808AcpiDmDumpPmtt (
809    ACPI_TABLE_HEADER       *Table);
810
811void
812AcpiDmDumpPptt (
813    ACPI_TABLE_HEADER       *Table);
814
815void
816AcpiDmDumpPrmt (
817    ACPI_TABLE_HEADER       *Table);
818
819void
820AcpiDmDumpRgrt (
821    ACPI_TABLE_HEADER       *Table);
822
823void
824AcpiDmDumpRhct (
825    ACPI_TABLE_HEADER       *Table);
826
827UINT32
828AcpiDmDumpRsdp (
829    ACPI_TABLE_HEADER       *Table);
830
831void
832AcpiDmDumpRsdt (
833    ACPI_TABLE_HEADER       *Table);
834
835UINT32
836AcpiDmDumpS3pt (
837    ACPI_TABLE_HEADER       *Table);
838
839void
840AcpiDmDumpSdev (
841    ACPI_TABLE_HEADER       *Table);
842
843void
844AcpiDmDumpSlic (
845    ACPI_TABLE_HEADER       *Table);
846
847void
848AcpiDmDumpSlit (
849    ACPI_TABLE_HEADER       *Table);
850
851void
852AcpiDmDumpSrat (
853    ACPI_TABLE_HEADER       *Table);
854
855void
856AcpiDmDumpStao (
857    ACPI_TABLE_HEADER       *Table);
858
859void
860AcpiDmDumpSvkl (
861    ACPI_TABLE_HEADER       *Table);
862
863void
864AcpiDmDumpTcpa (
865    ACPI_TABLE_HEADER       *Table);
866
867void
868AcpiDmDumpTdel (
869    ACPI_TABLE_HEADER       *Table);
870
871void
872AcpiDmDumpTpm2 (
873    ACPI_TABLE_HEADER       *Table);
874
875void
876AcpiDmDumpViot (
877    ACPI_TABLE_HEADER       *Table);
878
879void
880AcpiDmDumpWdat (
881    ACPI_TABLE_HEADER       *Table);
882
883void
884AcpiDmDumpWpbt (
885    ACPI_TABLE_HEADER       *Table);
886
887void
888AcpiDmDumpXsdt (
889    ACPI_TABLE_HEADER       *Table);
890
891
892/*
893 * dmwalk
894 */
895void
896AcpiDmDisassemble (
897    ACPI_WALK_STATE         *WalkState,
898    ACPI_PARSE_OBJECT       *Origin,
899    UINT32                  NumOpcodes);
900
901void
902AcpiDmWalkParseTree (
903    ACPI_PARSE_OBJECT       *Op,
904    ASL_WALK_CALLBACK       DescendingCallback,
905    ASL_WALK_CALLBACK       AscendingCallback,
906    void                    *Context);
907
908
909/*
910 * dmopcode
911 */
912void
913AcpiDmDisassembleOneOp (
914    ACPI_WALK_STATE         *WalkState,
915    ACPI_OP_WALK_INFO       *Info,
916    ACPI_PARSE_OBJECT       *Op);
917
918UINT32
919AcpiDmListType (
920    ACPI_PARSE_OBJECT       *Op);
921
922void
923AcpiDmMethodFlags (
924    ACPI_PARSE_OBJECT       *Op);
925
926void
927AcpiDmDisplayTargetPathname (
928    ACPI_PARSE_OBJECT       *Op);
929
930void
931AcpiDmNotifyDescription (
932    ACPI_PARSE_OBJECT       *Op);
933
934void
935AcpiDmPredefinedDescription (
936    ACPI_PARSE_OBJECT       *Op);
937
938void
939AcpiDmFieldPredefinedDescription (
940    ACPI_PARSE_OBJECT       *Op);
941
942void
943AcpiDmFieldFlags (
944    ACPI_PARSE_OBJECT       *Op);
945
946void
947AcpiDmAddressSpace (
948    UINT8                   SpaceId);
949
950void
951AcpiDmRegionFlags (
952    ACPI_PARSE_OBJECT       *Op);
953
954void
955AcpiDmMatchOp (
956    ACPI_PARSE_OBJECT       *Op);
957
958
959/*
960 * dmnames
961 */
962UINT32
963AcpiDmDumpName (
964    UINT32                  Name);
965
966ACPI_STATUS
967AcpiPsDisplayObjectPathname (
968    ACPI_WALK_STATE         *WalkState,
969    ACPI_PARSE_OBJECT       *Op);
970
971void
972AcpiDmNamestring (
973    char                    *Name);
974
975
976/*
977 * dmbuffer
978 */
979void
980AcpiDmDisasmByteList (
981    UINT32                  Level,
982    UINT8                   *ByteData,
983    UINT32                  ByteCount);
984
985void
986AcpiDmByteList (
987    ACPI_OP_WALK_INFO       *Info,
988    ACPI_PARSE_OBJECT       *Op);
989
990void
991AcpiDmCheckForHardwareId (
992    ACPI_PARSE_OBJECT       *Op);
993
994void
995AcpiDmDecompressEisaId (
996    UINT32                  EncodedId);
997
998BOOLEAN
999AcpiDmIsUuidBuffer (
1000    ACPI_PARSE_OBJECT       *Op);
1001
1002BOOLEAN
1003AcpiDmIsUnicodeBuffer (
1004    ACPI_PARSE_OBJECT       *Op);
1005
1006BOOLEAN
1007AcpiDmIsStringBuffer (
1008    ACPI_PARSE_OBJECT       *Op);
1009
1010BOOLEAN
1011AcpiDmIsPldBuffer (
1012    ACPI_PARSE_OBJECT       *Op);
1013
1014
1015/*
1016 * dmdeferred
1017 */
1018ACPI_STATUS
1019AcpiDmParseDeferredOps (
1020    ACPI_PARSE_OBJECT       *Root);
1021
1022
1023/*
1024 * dmextern
1025 */
1026ACPI_STATUS
1027AcpiDmAddToExternalFileList (
1028    char                    *PathList);
1029
1030void
1031AcpiDmClearExternalFileList (
1032    void);
1033
1034void
1035AcpiDmAddOpToExternalList (
1036    ACPI_PARSE_OBJECT       *Op,
1037    char                    *Path,
1038    UINT8                   Type,
1039    UINT32                  Value,
1040    UINT16                  Flags);
1041
1042void
1043AcpiDmCreateSubobjectForExternal (
1044    UINT8                   Type,
1045    ACPI_NAMESPACE_NODE     **Node,
1046    UINT32                  Value);
1047
1048void
1049AcpiDmAddNodeToExternalList (
1050    ACPI_NAMESPACE_NODE     *Node,
1051    UINT8                   Type,
1052    UINT32                  Value,
1053    UINT16                  Flags);
1054
1055void
1056AcpiDmAddExternalListToNamespace (
1057    void);
1058
1059void
1060AcpiDmAddOneExternalToNamespace (
1061    char                    *Path,
1062    UINT8                   Type,
1063    UINT32                  Value);
1064
1065UINT32
1066AcpiDmGetUnresolvedExternalMethodCount (
1067    void);
1068
1069void
1070AcpiDmClearExternalList (
1071    void);
1072
1073void
1074AcpiDmEmitExternals (
1075    void);
1076
1077void
1078AcpiDmEmitExternal (
1079    ACPI_PARSE_OBJECT       *NameOp,
1080    ACPI_PARSE_OBJECT       *TypeOp);
1081
1082void
1083AcpiDmUnresolvedWarning (
1084    UINT8                   Type);
1085
1086void
1087AcpiDmGetExternalsFromFile (
1088    void);
1089
1090void
1091AcpiDmMarkExternalConflict (
1092    ACPI_NAMESPACE_NODE     *Node);
1093
1094
1095/*
1096 * dmresrc
1097 */
1098void
1099AcpiDmDumpInteger8 (
1100    UINT8                   Value,
1101    const char              *Name);
1102
1103void
1104AcpiDmDumpInteger16 (
1105    UINT16                  Value,
1106    const char              *Name);
1107
1108void
1109AcpiDmDumpInteger32 (
1110    UINT32                  Value,
1111    const char              *Name);
1112
1113void
1114AcpiDmDumpInteger64 (
1115    UINT64                  Value,
1116    const char              *Name);
1117
1118void
1119AcpiDmResourceTemplate (
1120    ACPI_OP_WALK_INFO       *Info,
1121    ACPI_PARSE_OBJECT       *Op,
1122    UINT8                   *ByteData,
1123    UINT32                  ByteCount);
1124
1125ACPI_STATUS
1126AcpiDmIsResourceTemplate (
1127    ACPI_WALK_STATE         *WalkState,
1128    ACPI_PARSE_OBJECT       *Op);
1129
1130void
1131AcpiDmBitList (
1132    UINT16                  Mask);
1133
1134void
1135AcpiDmDescriptorName (
1136    void);
1137
1138
1139/*
1140 * dmresrcl
1141 */
1142void
1143AcpiDmWordDescriptor (
1144    ACPI_OP_WALK_INFO       *Info,
1145    AML_RESOURCE            *Resource,
1146    UINT32                  Length,
1147    UINT32                  Level);
1148
1149void
1150AcpiDmDwordDescriptor (
1151    ACPI_OP_WALK_INFO       *Info,
1152    AML_RESOURCE            *Resource,
1153    UINT32                  Length,
1154    UINT32                  Level);
1155
1156void
1157AcpiDmExtendedDescriptor (
1158    ACPI_OP_WALK_INFO       *Info,
1159    AML_RESOURCE            *Resource,
1160    UINT32                  Length,
1161    UINT32                  Level);
1162
1163void
1164AcpiDmQwordDescriptor (
1165    ACPI_OP_WALK_INFO       *Info,
1166    AML_RESOURCE            *Resource,
1167    UINT32                  Length,
1168    UINT32                  Level);
1169
1170void
1171AcpiDmMemory24Descriptor (
1172    ACPI_OP_WALK_INFO       *Info,
1173    AML_RESOURCE            *Resource,
1174    UINT32                  Length,
1175    UINT32                  Level);
1176
1177void
1178AcpiDmMemory32Descriptor (
1179    ACPI_OP_WALK_INFO       *Info,
1180    AML_RESOURCE            *Resource,
1181    UINT32                  Length,
1182    UINT32                  Level);
1183
1184void
1185AcpiDmFixedMemory32Descriptor (
1186    ACPI_OP_WALK_INFO       *Info,
1187    AML_RESOURCE            *Resource,
1188    UINT32                  Length,
1189    UINT32                  Level);
1190
1191void
1192AcpiDmGenericRegisterDescriptor (
1193    ACPI_OP_WALK_INFO       *Info,
1194    AML_RESOURCE            *Resource,
1195    UINT32                  Length,
1196    UINT32                  Level);
1197
1198void
1199AcpiDmInterruptDescriptor (
1200    ACPI_OP_WALK_INFO       *Info,
1201    AML_RESOURCE            *Resource,
1202    UINT32                  Length,
1203    UINT32                  Level);
1204
1205void
1206AcpiDmVendorLargeDescriptor (
1207    ACPI_OP_WALK_INFO       *Info,
1208    AML_RESOURCE            *Resource,
1209    UINT32                  Length,
1210    UINT32                  Level);
1211
1212void
1213AcpiDmGpioDescriptor (
1214    ACPI_OP_WALK_INFO       *Info,
1215    AML_RESOURCE            *Resource,
1216    UINT32                  Length,
1217    UINT32                  Level);
1218
1219void
1220AcpiDmPinFunctionDescriptor (
1221    ACPI_OP_WALK_INFO       *Info,
1222    AML_RESOURCE            *Resource,
1223    UINT32                  Length,
1224    UINT32                  Level);
1225
1226void
1227AcpiDmPinConfigDescriptor (
1228    ACPI_OP_WALK_INFO       *Info,
1229    AML_RESOURCE            *Resource,
1230    UINT32                  Length,
1231    UINT32                  Level);
1232
1233void
1234AcpiDmPinGroupDescriptor (
1235    ACPI_OP_WALK_INFO       *Info,
1236    AML_RESOURCE            *Resource,
1237    UINT32                  Length,
1238    UINT32                  Level);
1239
1240void
1241AcpiDmPinGroupFunctionDescriptor (
1242    ACPI_OP_WALK_INFO       *Info,
1243    AML_RESOURCE            *Resource,
1244    UINT32                  Length,
1245    UINT32                  Level);
1246
1247void
1248AcpiDmPinGroupConfigDescriptor (
1249    ACPI_OP_WALK_INFO       *Info,
1250    AML_RESOURCE            *Resource,
1251    UINT32                  Length,
1252    UINT32                  Level);
1253
1254void
1255AcpiDmSerialBusDescriptor (
1256    ACPI_OP_WALK_INFO       *Info,
1257    AML_RESOURCE            *Resource,
1258    UINT32                  Length,
1259    UINT32                  Level);
1260
1261void
1262AcpiDmVendorCommon (
1263    const char              *Name,
1264    UINT8                   *ByteData,
1265    UINT32                  Length,
1266    UINT32                  Level);
1267
1268void
1269AcpiDmClockInputDescriptor (
1270    ACPI_OP_WALK_INFO       *Info,
1271    AML_RESOURCE            *Resource,
1272    UINT32                  Length,
1273    UINT32                  Level);
1274
1275/*
1276 * dmresrcs
1277 */
1278void
1279AcpiDmIrqDescriptor (
1280    ACPI_OP_WALK_INFO       *Info,
1281    AML_RESOURCE            *Resource,
1282    UINT32                  Length,
1283    UINT32                  Level);
1284
1285void
1286AcpiDmDmaDescriptor (
1287    ACPI_OP_WALK_INFO       *Info,
1288    AML_RESOURCE            *Resource,
1289    UINT32                  Length,
1290    UINT32                  Level);
1291
1292void
1293AcpiDmFixedDmaDescriptor (
1294    ACPI_OP_WALK_INFO       *Info,
1295    AML_RESOURCE            *Resource,
1296    UINT32                  Length,
1297    UINT32                  Level);
1298
1299void
1300AcpiDmIoDescriptor (
1301    ACPI_OP_WALK_INFO       *Info,
1302    AML_RESOURCE            *Resource,
1303    UINT32                  Length,
1304    UINT32                  Level);
1305
1306void
1307AcpiDmFixedIoDescriptor (
1308    ACPI_OP_WALK_INFO       *Info,
1309    AML_RESOURCE            *Resource,
1310    UINT32                  Length,
1311    UINT32                  Level);
1312
1313void
1314AcpiDmStartDependentDescriptor (
1315    ACPI_OP_WALK_INFO       *Info,
1316    AML_RESOURCE            *Resource,
1317    UINT32                  Length,
1318    UINT32                  Level);
1319
1320void
1321AcpiDmEndDependentDescriptor (
1322    ACPI_OP_WALK_INFO       *Info,
1323    AML_RESOURCE            *Resource,
1324    UINT32                  Length,
1325    UINT32                  Level);
1326
1327void
1328AcpiDmVendorSmallDescriptor (
1329    ACPI_OP_WALK_INFO       *Info,
1330    AML_RESOURCE            *Resource,
1331    UINT32                  Length,
1332    UINT32                  Level);
1333
1334
1335/*
1336 * dmutils
1337 */
1338void
1339AcpiDmDecodeAttribute (
1340    UINT8                   Attribute);
1341
1342void
1343AcpiDmIndent (
1344    UINT32                  Level);
1345
1346BOOLEAN
1347AcpiDmCommaIfListMember (
1348    ACPI_PARSE_OBJECT       *Op);
1349
1350void
1351AcpiDmCommaIfFieldMember (
1352    ACPI_PARSE_OBJECT       *Op);
1353
1354
1355/*
1356 * dmrestag
1357 */
1358void
1359AcpiDmFindResources (
1360    ACPI_PARSE_OBJECT       *Root);
1361
1362void
1363AcpiDmCheckResourceReference (
1364    ACPI_PARSE_OBJECT       *Op,
1365    ACPI_WALK_STATE         *WalkState);
1366
1367
1368/*
1369 * dmcstyle
1370 */
1371BOOLEAN
1372AcpiDmCheckForSymbolicOpcode (
1373    ACPI_PARSE_OBJECT       *Op,
1374    ACPI_OP_WALK_INFO       *Info);
1375
1376void
1377AcpiDmCloseOperator (
1378    ACPI_PARSE_OBJECT       *Op);
1379
1380
1381/*
1382 * dmtables
1383 */
1384ACPI_STATUS
1385AcpiDmProcessSwitch (
1386    ACPI_PARSE_OBJECT       *Op);
1387
1388void
1389AcpiDmClearTempList(
1390    void);
1391
1392/*
1393 * dmtables
1394 */
1395void
1396AdDisassemblerHeader (
1397    char                    *Filename,
1398    UINT8                   TableType);
1399
1400#define ACPI_IS_AML_TABLE   0
1401#define ACPI_IS_DATA_TABLE  1
1402
1403
1404/*
1405 * adisasm
1406 */
1407ACPI_STATUS
1408AdAmlDisassemble (
1409    BOOLEAN                 OutToFile,
1410    char                    *Filename,
1411    char                    *Prefix,
1412    char                    **OutFilename);
1413
1414ACPI_STATUS
1415AdGetLocalTables (
1416    void);
1417
1418ACPI_STATUS
1419AdParseTable (
1420    ACPI_TABLE_HEADER       *Table,
1421    ACPI_OWNER_ID           *OwnerId,
1422    BOOLEAN                 LoadTable,
1423    BOOLEAN                 External);
1424
1425ACPI_STATUS
1426AdDisplayTables (
1427    char                    *Filename,
1428    ACPI_TABLE_HEADER       *Table);
1429
1430ACPI_STATUS
1431AdDisplayStatistics (
1432    void);
1433
1434
1435/*
1436 * dmwalk
1437 */
1438UINT32
1439AcpiDmBlockType (
1440    ACPI_PARSE_OBJECT       *Op);
1441
1442
1443#endif  /* __ACDISASM_H__ */
1444