1/******************************************************************************
2 *
3 * Name: acdisasm.h - AML disassembler
4 *
5 *****************************************************************************/
6
7/******************************************************************************
8 *
9 * 1. Copyright Notice
10 *
11 * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp.
12 * All rights reserved.
13 *
14 * 2. License
15 *
16 * 2.1. This is your license from Intel Corp. under its intellectual property
17 * rights. You may have additional license terms from the party that provided
18 * you this software, covering your right to use that party's intellectual
19 * property rights.
20 *
21 * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
22 * copy of the source code appearing in this file ("Covered Code") an
23 * irrevocable, perpetual, worldwide license under Intel's copyrights in the
24 * base code distributed originally by Intel ("Original Intel Code") to copy,
25 * make derivatives, distribute, use and display any portion of the Covered
26 * Code in any form, with the right to sublicense such rights; and
27 *
28 * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
29 * license (with the right to sublicense), under only those claims of Intel
30 * patents that are infringed by the Original Intel Code, to make, use, sell,
31 * offer to sell, and import the Covered Code and derivative works thereof
32 * solely to the minimum extent necessary to exercise the above copyright
33 * license, and in no event shall the patent license extend to any additions
34 * to or modifications of the Original Intel Code. No other license or right
35 * is granted directly or by implication, estoppel or otherwise;
36 *
37 * The above copyright and patent license is granted only if the following
38 * conditions are met:
39 *
40 * 3. Conditions
41 *
42 * 3.1. Redistribution of Source with Rights to Further Distribute Source.
43 * Redistribution of source code of any substantial portion of the Covered
44 * Code or modification with rights to further distribute source must include
45 * the above Copyright Notice, the above License, this list of Conditions,
46 * and the following Disclaimer and Export Compliance provision. In addition,
47 * Licensee must cause all Covered Code to which Licensee contributes to
48 * contain a file documenting the changes Licensee made to create that Covered
49 * Code and the date of any change. Licensee must include in that file the
50 * documentation of any changes made by any predecessor Licensee. Licensee
51 * must include a prominent statement that the modification is derived,
52 * directly or indirectly, from Original Intel Code.
53 *
54 * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
55 * Redistribution of source code of any substantial portion of the Covered
56 * Code or modification without rights to further distribute source must
57 * include the following Disclaimer and Export Compliance provision in the
58 * documentation and/or other materials provided with distribution. In
59 * addition, Licensee may not authorize further sublicense of source of any
60 * portion of the Covered Code, and must include terms to the effect that the
61 * license from Licensee to its licensee is limited to the intellectual
62 * property embodied in the software Licensee provides to its licensee, and
63 * not to intellectual property embodied in modifications its licensee may
64 * make.
65 *
66 * 3.3. Redistribution of Executable. Redistribution in executable form of any
67 * substantial portion of the Covered Code or modification must reproduce the
68 * above Copyright Notice, and the following Disclaimer and Export Compliance
69 * provision in the documentation and/or other materials provided with the
70 * distribution.
71 *
72 * 3.4. Intel retains all right, title, and interest in and to the Original
73 * Intel Code.
74 *
75 * 3.5. Neither the name Intel nor any other trademark owned or controlled by
76 * Intel shall be used in advertising or otherwise to promote the sale, use or
77 * other dealings in products derived from or relating to the Covered Code
78 * without prior written authorization from Intel.
79 *
80 * 4. Disclaimer and Export Compliance
81 *
82 * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
83 * HERE. ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
84 * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT, ASSISTANCE,
85 * INSTALLATION, TRAINING OR OTHER SERVICES. INTEL WILL NOT PROVIDE ANY
86 * UPDATES, ENHANCEMENTS OR EXTENSIONS. INTEL SPECIFICALLY DISCLAIMS ANY
87 * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
88 * PARTICULAR PURPOSE.
89 *
90 * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
91 * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
92 * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
93 * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
94 * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
95 * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. THESE LIMITATIONS
96 * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
97 * LIMITED REMEDY.
98 *
99 * 4.3. Licensee shall not export, either directly or indirectly, any of this
100 * software or system incorporating such software without first obtaining any
101 * required license or other approval from the U. S. Department of Commerce or
102 * any other agency or department of the United States Government. In the
103 * event Licensee exports any such software from the United States or
104 * re-exports any such software from a foreign destination, Licensee shall
105 * ensure that the distribution and export/re-export of the software is in
106 * compliance with all laws, regulations, orders, or other restrictions of the
107 * U.S. Export Administration Regulations. Licensee agrees that neither it nor
108 * any of its subsidiaries will export/re-export any technical data, process,
109 * software, or service, directly or indirectly, to any country for which the
110 * United States government or any agency thereof requires an export license,
111 * other governmental approval, or letter of assurance, without first obtaining
112 * such license, approval or letter.
113 *
114 *****************************************************************************
115 *
116 * Alternatively, you may choose to be licensed under the terms of the
117 * following license:
118 *
119 * Redistribution and use in source and binary forms, with or without
120 * modification, are permitted provided that the following conditions
121 * are met:
122 * 1. Redistributions of source code must retain the above copyright
123 *    notice, this list of conditions, and the following disclaimer,
124 *    without modification.
125 * 2. Redistributions in binary form must reproduce at minimum a disclaimer
126 *    substantially similar to the "NO WARRANTY" disclaimer below
127 *    ("Disclaimer") and any redistribution must be conditioned upon
128 *    including a substantially similar Disclaimer requirement for further
129 *    binary redistribution.
130 * 3. Neither the names of the above-listed copyright holders nor the names
131 *    of any contributors may be used to endorse or promote products derived
132 *    from this software without specific prior written permission.
133 *
134 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
135 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
136 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
137 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
138 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
139 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
140 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
141 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
142 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
143 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
144 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
145 *
146 * Alternatively, you may choose to be licensed under the terms of the
147 * GNU General Public License ("GPL") version 2 as published by the Free
148 * Software Foundation.
149 *
150 *****************************************************************************/
151
152#ifndef __ACDISASM_H__
153#define __ACDISASM_H__
154
155#include "amlresrc.h"
156
157
158#define BLOCK_NONE              0
159#define BLOCK_PAREN             1
160#define BLOCK_BRACE             2
161#define BLOCK_COMMA_LIST        4
162#define ACPI_DEFAULT_RESNAME    *(UINT32 *) "__RD"
163
164/*
165 * Raw table data header. Used by disassembler and data table compiler.
166 * Do not change.
167 */
168#define ACPI_RAW_TABLE_DATA_HEADER      "Raw Table Data"
169
170
171typedef struct acpi_dmtable_info
172{
173    UINT8                       Opcode;
174    UINT16                      Offset;
175    char                        *Name;
176    UINT8                       Flags;
177
178} ACPI_DMTABLE_INFO;
179
180/* Values for Flags field above */
181
182#define DT_LENGTH                       0x01    /* Field is a subtable length */
183#define DT_FLAG                         0x02    /* Field is a flag value */
184#define DT_NON_ZERO                     0x04    /* Field must be non-zero */
185#define DT_OPTIONAL                     0x08    /* Field is optional */
186#define DT_DESCRIBES_OPTIONAL           0x10    /* Field describes an optional field (length, etc.) */
187#define DT_COUNT                        0x20    /* Currently not used */
188
189/*
190 * Values for Opcode above.
191 * Note: 0-7 must not change, they are used as a flag shift value. Other
192 * than those, new values can be added wherever appropriate.
193 */
194typedef enum
195{
196    /* Simple Data Types */
197
198    ACPI_DMT_FLAG0          = 0,
199    ACPI_DMT_FLAG1          = 1,
200    ACPI_DMT_FLAG2          = 2,
201    ACPI_DMT_FLAG3          = 3,
202    ACPI_DMT_FLAG4          = 4,
203    ACPI_DMT_FLAG5          = 5,
204    ACPI_DMT_FLAG6          = 6,
205    ACPI_DMT_FLAG7          = 7,
206    ACPI_DMT_FLAGS0,
207    ACPI_DMT_FLAGS1,
208    ACPI_DMT_FLAGS2,
209    ACPI_DMT_FLAGS8_2,
210    ACPI_DMT_FLAGS4,
211    ACPI_DMT_FLAGS4_0,
212    ACPI_DMT_FLAGS4_4,
213    ACPI_DMT_FLAGS4_8,
214    ACPI_DMT_FLAGS4_12,
215    ACPI_DMT_FLAGS16_16,
216    ACPI_DMT_UINT8,
217    ACPI_DMT_UINT16,
218    ACPI_DMT_UINT24,
219    ACPI_DMT_UINT32,
220    ACPI_DMT_UINT40,
221    ACPI_DMT_UINT48,
222    ACPI_DMT_UINT56,
223    ACPI_DMT_UINT64,
224    ACPI_DMT_BUF7,
225    ACPI_DMT_BUF10,
226    ACPI_DMT_BUF12,
227    ACPI_DMT_BUF16,
228    ACPI_DMT_BUF18,
229    ACPI_DMT_BUF128,
230    ACPI_DMT_SIG,
231    ACPI_DMT_STRING,
232    ACPI_DMT_NAME4,
233    ACPI_DMT_NAME6,
234    ACPI_DMT_NAME8,
235
236    /* Types that are decoded to strings and miscellaneous */
237
238    ACPI_DMT_ACCWIDTH,
239    ACPI_DMT_CHKSUM,
240    ACPI_DMT_GAS,
241    ACPI_DMT_SPACEID,
242    ACPI_DMT_UNICODE,
243    ACPI_DMT_UUID,
244
245    /* Types used only for the Data Table Compiler */
246
247    ACPI_DMT_BUFFER,
248    ACPI_DMT_RAW_BUFFER,  /* Large, multiple line buffer */
249    ACPI_DMT_DEVICE_PATH,
250    ACPI_DMT_LABEL,
251    ACPI_DMT_PCI_PATH,
252
253    /* Types that are specific to particular ACPI tables */
254
255    ACPI_DMT_AEST,
256    ACPI_DMT_AEST_CACHE,
257    ACPI_DMT_AEST_GIC,
258    ACPI_DMT_AEST_RES,
259    ACPI_DMT_AEST_XFACE,
260    ACPI_DMT_AEST_XRUPT,
261    ACPI_DMT_AGDI,
262    ACPI_DMT_ASF,
263    ACPI_DMT_ASPT,
264    ACPI_DMT_CDAT,
265    ACPI_DMT_CEDT,
266    ACPI_DMT_DMAR,
267    ACPI_DMT_DMAR_SCOPE,
268    ACPI_DMT_EINJACT,
269    ACPI_DMT_EINJINST,
270    ACPI_DMT_ERSTACT,
271    ACPI_DMT_ERSTINST,
272    ACPI_DMT_FADTPM,
273    ACPI_DMT_GTDT,
274    ACPI_DMT_HEST,
275    ACPI_DMT_HESTNTFY,
276    ACPI_DMT_HESTNTYP,
277    ACPI_DMT_HMAT,
278    ACPI_DMT_IORTMEM,
279    ACPI_DMT_IVRS,
280    ACPI_DMT_IVRS_DE,
281    ACPI_DMT_IVRS_UNTERMINATED_STRING,
282    ACPI_DMT_LPIT,
283    ACPI_DMT_MADT,
284    ACPI_DMT_MPAM_LOCATOR,
285    ACPI_DMT_NFIT,
286    ACPI_DMT_NHLT1,
287    ACPI_DMT_NHLT1a,
288    ACPI_DMT_NHLT1b,
289    ACPI_DMT_NHLT1c,
290    ACPI_DMT_NHLT1d,
291    ACPI_DMT_NHLT1e,
292    ACPI_DMT_NHLT1f,
293    ACPI_DMT_PCCT,
294    ACPI_DMT_PHAT,
295    ACPI_DMT_PMTT,
296    ACPI_DMT_PMTT_VENDOR,
297    ACPI_DMT_PPTT,
298    ACPI_DMT_RGRT,
299    ACPI_DMT_RHCT,
300    ACPI_DMT_SDEI,
301    ACPI_DMT_SDEV,
302    ACPI_DMT_SLIC,
303    ACPI_DMT_SRAT,
304    ACPI_DMT_TPM2,
305    ACPI_DMT_VIOT,
306    ACPI_DMT_WPBT_UNICODE,
307
308    /* Special opcodes */
309
310    ACPI_DMT_EXTRA_TEXT,
311    ACPI_DMT_EXIT
312
313} ACPI_ENTRY_TYPES;
314
315typedef
316void (*ACPI_DMTABLE_HANDLER) (
317    ACPI_TABLE_HEADER       *Table);
318
319typedef
320ACPI_STATUS (*ACPI_CMTABLE_HANDLER) (
321    void                    **PFieldList);
322
323typedef struct acpi_dmtable_data
324{
325    char                    *Signature;
326    ACPI_DMTABLE_INFO       *TableInfo;
327    ACPI_DMTABLE_HANDLER    TableHandler;
328    ACPI_CMTABLE_HANDLER    CmTableHandler;
329    const unsigned char     *Template;
330
331} ACPI_DMTABLE_DATA;
332
333
334typedef struct acpi_op_walk_info
335{
336    ACPI_WALK_STATE         *WalkState;
337    ACPI_PARSE_OBJECT       *MappingOp;
338    UINT8                   *PreviousAml;
339    UINT8                   *StartAml;
340    UINT32                  Level;
341    UINT32                  LastLevel;
342    UINT32                  Count;
343    UINT32                  BitOffset;
344    UINT32                  Flags;
345    UINT32                  AmlOffset;
346
347} ACPI_OP_WALK_INFO;
348
349/*
350 * TBD - another copy of this is in asltypes.h, fix
351 */
352#ifndef ASL_WALK_CALLBACK_DEFINED
353typedef
354ACPI_STATUS (*ASL_WALK_CALLBACK) (
355    ACPI_PARSE_OBJECT           *Op,
356    UINT32                      Level,
357    void                        *Context);
358#define ASL_WALK_CALLBACK_DEFINED
359#endif
360
361typedef
362void (*ACPI_RESOURCE_HANDLER) (
363    ACPI_OP_WALK_INFO       *Info,
364    AML_RESOURCE            *Resource,
365    UINT32                  Length,
366    UINT32                  Level);
367
368typedef struct acpi_resource_tag
369{
370    UINT32                  BitIndex;
371    char                    *Tag;
372
373} ACPI_RESOURCE_TAG;
374
375/* Strings used for decoding flags to ASL keywords */
376
377extern const char               *AcpiGbl_WordDecode[];
378extern const char               *AcpiGbl_IrqDecode[];
379extern const char               *AcpiGbl_LockRule[];
380extern const char               *AcpiGbl_AccessTypes[];
381extern const char               *AcpiGbl_UpdateRules[];
382extern const char               *AcpiGbl_MatchOps[];
383
384extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAestHdr[];
385extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAestProcError[];
386extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAestCacheRsrc[];
387extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAestTlbRsrc[];
388extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAestGenRsrc[];
389extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAestMemError[];
390extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAestSmmuError[];
391extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAestVendorError[];
392extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAestGicError[];
393extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAestXface[];
394extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAestXrupt[];
395extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAgdi[];
396extern ACPI_DMTABLE_INFO        AcpiDmTableInfoApmtNode[];
397extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf0[];
398extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf1[];
399extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf1a[];
400extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf2[];
401extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf2a[];
402extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf3[];
403extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf4[];
404extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsfHdr[];
405extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAspt[];
406extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsptHdr[];
407extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAspt0[];
408extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAspt1[];
409extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAspt2[];
410extern ACPI_DMTABLE_INFO        AcpiDmTableInfoBdat[];
411extern ACPI_DMTABLE_INFO        AcpiDmTableInfoBoot[];
412extern ACPI_DMTABLE_INFO        AcpiDmTableInfoBert[];
413extern ACPI_DMTABLE_INFO        AcpiDmTableInfoBgrt[];
414extern ACPI_DMTABLE_INFO        AcpiDmTableInfoCcel[];
415extern ACPI_DMTABLE_INFO        AcpiDmTableInfoCdatTableHdr[];
416extern ACPI_DMTABLE_INFO        AcpiDmTableInfoCdatHeader[];
417extern ACPI_DMTABLE_INFO        AcpiDmTableInfoCdat0[];
418extern ACPI_DMTABLE_INFO        AcpiDmTableInfoCdat1[];
419extern ACPI_DMTABLE_INFO        AcpiDmTableInfoCdat2[];
420extern ACPI_DMTABLE_INFO        AcpiDmTableInfoCdat3[];
421extern ACPI_DMTABLE_INFO        AcpiDmTableInfoCdat4[];
422extern ACPI_DMTABLE_INFO        AcpiDmTableInfoCdat5[];
423extern ACPI_DMTABLE_INFO        AcpiDmTableInfoCdatEntries[];
424extern ACPI_DMTABLE_INFO        AcpiDmTableInfoCedtHdr[];
425extern ACPI_DMTABLE_INFO        AcpiDmTableInfoCedt0[];
426extern ACPI_DMTABLE_INFO        AcpiDmTableInfoCedt1[];
427extern ACPI_DMTABLE_INFO        AcpiDmTableInfoCedt1_te[];
428extern ACPI_DMTABLE_INFO        AcpiDmTableInfoCpep[];
429extern ACPI_DMTABLE_INFO        AcpiDmTableInfoCpep0[];
430extern ACPI_DMTABLE_INFO        AcpiDmTableInfoCsrt0[];
431extern ACPI_DMTABLE_INFO        AcpiDmTableInfoCsrt1[];
432extern ACPI_DMTABLE_INFO        AcpiDmTableInfoCsrt2[];
433extern ACPI_DMTABLE_INFO        AcpiDmTableInfoCsrt2a[];
434extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDbg2[];
435extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDbg2Device[];
436extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDbg2Addr[];
437extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDbg2Size[];
438extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDbg2Name[];
439extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDbg2OemData[];
440extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDbgp[];
441extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmar[];
442extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmarHdr[];
443extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmarScope[];
444extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmar0[];
445extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmar1[];
446extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmar2[];
447extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmar3[];
448extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmar4[];
449extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmar5[];
450extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDrtm[];
451extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDrtm0[];
452extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDrtm0a[];
453extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDrtm1[];
454extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDrtm1a[];
455extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDrtm2[];
456extern ACPI_DMTABLE_INFO        AcpiDmTableInfoEcdt[];
457extern ACPI_DMTABLE_INFO        AcpiDmTableInfoEinj[];
458extern ACPI_DMTABLE_INFO        AcpiDmTableInfoEinj0[];
459extern ACPI_DMTABLE_INFO        AcpiDmTableInfoErst[];
460extern ACPI_DMTABLE_INFO        AcpiDmTableInfoErst0[];
461extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFacs[];
462extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFadt1[];
463extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFadt2[];
464extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFadt3[];
465extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFadt5[];
466extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFadt6[];
467extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFpdt[];
468extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFpdtHdr[];
469extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFpdt0[];
470extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFpdt1[];
471extern ACPI_DMTABLE_INFO        AcpiDmTableInfoGas[];
472extern ACPI_DMTABLE_INFO        AcpiDmTableInfoGtdt[];
473extern ACPI_DMTABLE_INFO        AcpiDmTableInfoGtdtHdr[];
474extern ACPI_DMTABLE_INFO        AcpiDmTableInfoGtdtEl2[];
475extern ACPI_DMTABLE_INFO        AcpiDmTableInfoGtdt0[];
476extern ACPI_DMTABLE_INFO        AcpiDmTableInfoGtdt0a[];
477extern ACPI_DMTABLE_INFO        AcpiDmTableInfoGtdt1[];
478extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHeader[];
479extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest[];
480extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest0[];
481extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest1[];
482extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest2[];
483extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest6[];
484extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest7[];
485extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest8[];
486extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest9[];
487extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest10[];
488extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest11[];
489extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHestNotify[];
490extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHestBank[];
491extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHpet[];
492extern ACPI_DMTABLE_INFO        AcpiDmTableInfoLpitHdr[];
493extern ACPI_DMTABLE_INFO        AcpiDmTableInfoLpit0[];
494extern ACPI_DMTABLE_INFO        AcpiDmTableInfoLpit1[];
495extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHmat[];
496extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHmat0[];
497extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHmat1[];
498extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHmat1a[];
499extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHmat1b[];
500extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHmat1c[];
501extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHmat2[];
502extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHmat2a[];
503extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHmatHdr[];
504extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIort[];
505extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIort0[];
506extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIort0a[];
507extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIort1[];
508extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIort1a[];
509extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIort2[];
510extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIort3[];
511extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIort3a[];
512extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIort3b[];
513extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIort3c[];
514extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIort4[];
515extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIort5[];
516extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIort6[];
517extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIort6a[];
518extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIortAcc[];
519extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIortHdr[];
520extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIortHdr3[];
521extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIortMap[];
522extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIortPad[];
523extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs[];
524extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrsHware1[];
525extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrsHware23[];
526extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrsMemory[];
527extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs4[];
528extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs8a[];
529extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs8b[];
530extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs8c[];
531extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrsCidString[];
532extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrsCidInteger[];
533extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrsHid[];
534extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrsUidString[];
535extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrsUidInteger[];
536extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrsHidString[];
537extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrsHidInteger[];
538extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt[];
539extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt0[];
540extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt1[];
541extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt2[];
542extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt3[];
543extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt4[];
544extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt5[];
545extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt6[];
546extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt7[];
547extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt8[];
548extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt9[];
549extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt10[];
550extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt11[];
551extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt12[];
552extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt13[];
553extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt14[];
554extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt15[];
555extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt16[];
556extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt17[];
557extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt18[];
558extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt19[];
559extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt20[];
560extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt21[];
561extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt22[];
562extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt23[];
563extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt24[];
564extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt25[];
565extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt26[];
566extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt27[];
567extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt128[];
568extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadtHdr[];
569extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMcfg[];
570extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMcfg0[];
571extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMchi[];
572extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMpam0[];
573extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMpam1[];
574extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMpam1A[];
575extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMpam1B[];
576extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMpam1C[];
577extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMpam1D[];
578extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMpam1E[];
579extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMpam1F[];
580extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMpam1G[];
581extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMpam1Deps[];
582extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMpam2[];
583extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMpst[];
584extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMpst0[];
585extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMpst0A[];
586extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMpst0B[];
587extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMpst1[];
588extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMpst2[];
589extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMsct[];
590extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMsct0[];
591extern ACPI_DMTABLE_INFO        AcpiDmTableInfoNfit[];
592extern ACPI_DMTABLE_INFO        AcpiDmTableInfoNfitHdr[];
593extern ACPI_DMTABLE_INFO        AcpiDmTableInfoNfit0[];
594extern ACPI_DMTABLE_INFO        AcpiDmTableInfoNfit1[];
595extern ACPI_DMTABLE_INFO        AcpiDmTableInfoNfit2[];
596extern ACPI_DMTABLE_INFO        AcpiDmTableInfoNfit2a[];
597extern ACPI_DMTABLE_INFO        AcpiDmTableInfoNfit3[];
598extern ACPI_DMTABLE_INFO        AcpiDmTableInfoNfit3a[];
599extern ACPI_DMTABLE_INFO        AcpiDmTableInfoNfit4[];
600extern ACPI_DMTABLE_INFO        AcpiDmTableInfoNfit5[];
601extern ACPI_DMTABLE_INFO        AcpiDmTableInfoNfit6[];
602extern ACPI_DMTABLE_INFO        AcpiDmTableInfoNfit6a[];
603extern ACPI_DMTABLE_INFO        AcpiDmTableInfoNfit7[];
604extern ACPI_DMTABLE_INFO        AcpiDmTableInfoNhlt[];
605extern ACPI_DMTABLE_INFO        AcpiDmTableInfoNhlt0[];
606extern ACPI_DMTABLE_INFO        AcpiDmTableInfoNhlt1[];
607extern ACPI_DMTABLE_INFO        AcpiDmTableInfoNhlt2[];
608extern ACPI_DMTABLE_INFO        AcpiDmTableInfoNhlt3[];
609extern ACPI_DMTABLE_INFO        AcpiDmTableInfoNhlt3a[];
610extern ACPI_DMTABLE_INFO        AcpiDmTableInfoNhlt4[];
611extern ACPI_DMTABLE_INFO        AcpiDmTableInfoNhlt5[];
612extern ACPI_DMTABLE_INFO        AcpiDmTableInfoNhlt5a[];
613extern ACPI_DMTABLE_INFO        AcpiDmTableInfoNhlt5b[];
614extern ACPI_DMTABLE_INFO        AcpiDmTableInfoNhlt5c[];
615extern ACPI_DMTABLE_INFO        AcpiDmTableInfoNhlt6[];
616extern ACPI_DMTABLE_INFO        AcpiDmTableInfoNhlt6a[];
617extern ACPI_DMTABLE_INFO        AcpiDmTableInfoNhlt6b[];
618extern ACPI_DMTABLE_INFO        AcpiDmTableInfoNhlt7[];
619extern ACPI_DMTABLE_INFO        AcpiDmTableInfoNhlt7a[];
620extern ACPI_DMTABLE_INFO        AcpiDmTableInfoNhlt7b[];
621extern ACPI_DMTABLE_INFO        AcpiDmTableInfoNhlt9[];
622extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPhatHdr[];
623extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPhat0[];
624extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPhat0a[];
625extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPhat1[];
626extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPhat1a[];
627extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPhat1b[];
628extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPmtt[];
629extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPmtt0[];
630extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPmtt1[];
631extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPmtt2[];
632extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPmttVendor[];
633extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPmttHdr[];
634extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPcct[];
635extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPcctHdr[];
636extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPcct0[];
637extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPcct1[];
638extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPcct2[];
639extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPcct3[];
640extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPcct4[];
641extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPcct5[];
642extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPdtt[];
643extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPdtt0[];
644extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPptt0[];
645extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPptt0a[];
646extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPptt1[];
647extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPptt1a[];
648extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPptt2[];
649extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPpttHdr[];
650extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPrmtHdr[];
651extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPrmtModule[];
652extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPrmtHandler[];
653extern ACPI_DMTABLE_INFO        AcpiDmTableInfoRasf[];
654extern ACPI_DMTABLE_INFO        AcpiDmTableInfoRgrt[];
655extern ACPI_DMTABLE_INFO        AcpiDmTableInfoRgrt0[];
656extern ACPI_DMTABLE_INFO        AcpiDmTableInfoRhct[];
657extern ACPI_DMTABLE_INFO        AcpiDmTableInfoRhctNodeHdr[];
658extern ACPI_DMTABLE_INFO        AcpiDmTableInfoRhctIsa1[];
659extern ACPI_DMTABLE_INFO        AcpiDmTableInfoRhctIsaPad[];
660extern ACPI_DMTABLE_INFO        AcpiDmTableInfoRhctCmo1[];
661extern ACPI_DMTABLE_INFO        AcpiDmTableInfoRhctMmu1[];
662extern ACPI_DMTABLE_INFO        AcpiDmTableInfoRhctHartInfo1[];
663extern ACPI_DMTABLE_INFO        AcpiDmTableInfoRhctHartInfo2[];
664extern ACPI_DMTABLE_INFO        AcpiDmTableInfoRsdp1[];
665extern ACPI_DMTABLE_INFO        AcpiDmTableInfoRsdp2[];
666extern ACPI_DMTABLE_INFO        AcpiDmTableInfoS3pt[];
667extern ACPI_DMTABLE_INFO        AcpiDmTableInfoS3ptHdr[];
668extern ACPI_DMTABLE_INFO        AcpiDmTableInfoS3pt0[];
669extern ACPI_DMTABLE_INFO        AcpiDmTableInfoS3pt1[];
670extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSbst[];
671extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSdei[];
672extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSdev[];
673extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSdevHdr[];
674extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSdev0[];
675extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSdev0a[];
676extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSdev0b[];
677extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSdevSecCompHdr[];
678extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSdevSecCompId[];
679extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSdevSecCompMem[];
680extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSdev1[];
681extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSdev1a[];
682extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSdev1b[];
683extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSlic[];
684extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSlit[];
685extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSpcr[];
686extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSpmi[];
687extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSrat[];
688extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSratHdr[];
689extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSrat0[];
690extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSrat1[];
691extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSrat2[];
692extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSrat3[];
693extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSrat4[];
694extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSrat5[];
695extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSrat6[];
696extern ACPI_DMTABLE_INFO        AcpiDmTableInfoStao[];
697extern ACPI_DMTABLE_INFO        AcpiDmTableInfoStaoStr[];
698extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSvkl[];
699extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSvkl0[];
700extern ACPI_DMTABLE_INFO        AcpiDmTableInfoTcpaHdr[];
701extern ACPI_DMTABLE_INFO        AcpiDmTableInfoTcpaClient[];
702extern ACPI_DMTABLE_INFO        AcpiDmTableInfoTcpaServer[];
703extern ACPI_DMTABLE_INFO        AcpiDmTableInfoTdel[];
704extern ACPI_DMTABLE_INFO        AcpiDmTableInfoTpm2[];
705extern ACPI_DMTABLE_INFO        AcpiDmTableInfoTpm2a[];
706extern ACPI_DMTABLE_INFO        AcpiDmTableInfoTpm211[];
707extern ACPI_DMTABLE_INFO        AcpiDmTableInfoTpm23[];
708extern ACPI_DMTABLE_INFO        AcpiDmTableInfoTpm23a[];
709extern ACPI_DMTABLE_INFO        AcpiDmTableInfoUefi[];
710extern ACPI_DMTABLE_INFO        AcpiDmTableInfoViot[];
711extern ACPI_DMTABLE_INFO        AcpiDmTableInfoViotHeader[];
712extern ACPI_DMTABLE_INFO        AcpiDmTableInfoViot1[];
713extern ACPI_DMTABLE_INFO        AcpiDmTableInfoViot2[];
714extern ACPI_DMTABLE_INFO        AcpiDmTableInfoViot3[];
715extern ACPI_DMTABLE_INFO        AcpiDmTableInfoViot4[];
716extern ACPI_DMTABLE_INFO        AcpiDmTableInfoWaet[];
717extern ACPI_DMTABLE_INFO        AcpiDmTableInfoWdat[];
718extern ACPI_DMTABLE_INFO        AcpiDmTableInfoWdat0[];
719extern ACPI_DMTABLE_INFO        AcpiDmTableInfoWddt[];
720extern ACPI_DMTABLE_INFO        AcpiDmTableInfoWdrt[];
721extern ACPI_DMTABLE_INFO        AcpiDmTableInfoWpbt[];
722extern ACPI_DMTABLE_INFO        AcpiDmTableInfoWpbt0[];
723extern ACPI_DMTABLE_INFO        AcpiDmTableInfoWsmt[];
724extern ACPI_DMTABLE_INFO        AcpiDmTableInfoXenv[];
725
726extern ACPI_DMTABLE_INFO        AcpiDmTableInfoGeneric[][2];
727
728/*
729 * dmtable and ahtable
730 */
731extern const ACPI_DMTABLE_DATA  AcpiDmTableData[];
732extern const AH_TABLE           AcpiGbl_SupportedTables[];
733
734UINT8
735AcpiDmGenerateChecksum (
736    void                    *Table,
737    UINT32                  Length,
738    UINT8                   OriginalChecksum);
739
740const ACPI_DMTABLE_DATA *
741AcpiDmGetTableData (
742    char                    *Signature);
743
744void
745AcpiDmDumpDataTable (
746    ACPI_TABLE_HEADER       *Table);
747
748ACPI_STATUS
749AcpiDmDumpTable (
750    UINT32                  TableLength,
751    UINT32                  TableOffset,
752    void                    *Table,
753    UINT32                  SubtableLength,
754    ACPI_DMTABLE_INFO        *Info);
755
756void
757AcpiDmLineHeader (
758    UINT32                  Offset,
759    UINT32                  ByteLength,
760    char                    *Name);
761
762void
763AcpiDmLineHeader2 (
764    UINT32                  Offset,
765    UINT32                  ByteLength,
766    char                    *Name,
767    UINT32                  Value);
768
769
770/*
771 * dmtbdump
772 */
773void
774AcpiDmDumpBuffer (
775    void                    *Table,
776    UINT32                  BufferOffset,
777    UINT32                  Length,
778    UINT32                  AbsoluteOffset,
779    char                    *Header);
780
781void
782AcpiDmDumpUnicode (
783    void                    *Table,
784    UINT32                  BufferOffset,
785    UINT32                  ByteLength);
786
787void
788AcpiDmDumpAest (
789    ACPI_TABLE_HEADER       *Table);
790
791void
792AcpiDmDumpApmt (
793    ACPI_TABLE_HEADER       *Table);
794
795void
796AcpiDmDumpAsf (
797    ACPI_TABLE_HEADER       *Table);
798
799void
800AcpiDmDumpAspt (
801    ACPI_TABLE_HEADER       *Table);
802
803void
804AcpiDmDumpCcel (
805    ACPI_TABLE_HEADER       *Table);
806
807void
808AcpiDmDumpCdat (
809    ACPI_TABLE_HEADER       *Table);
810
811void
812AcpiDmDumpCedt (
813    ACPI_TABLE_HEADER       *Table);
814
815void
816AcpiDmDumpCpep (
817    ACPI_TABLE_HEADER       *Table);
818
819void
820AcpiDmDumpCsrt (
821    ACPI_TABLE_HEADER       *Table);
822
823void
824AcpiDmDumpDbg2 (
825    ACPI_TABLE_HEADER       *Table);
826
827void
828AcpiDmDumpDmar (
829    ACPI_TABLE_HEADER       *Table);
830
831void
832AcpiDmDumpDrtm (
833    ACPI_TABLE_HEADER       *Table);
834
835void
836AcpiDmDumpEinj (
837    ACPI_TABLE_HEADER       *Table);
838
839void
840AcpiDmDumpErst (
841    ACPI_TABLE_HEADER       *Table);
842
843void
844AcpiDmDumpFadt (
845    ACPI_TABLE_HEADER       *Table);
846
847void
848AcpiDmDumpFpdt (
849    ACPI_TABLE_HEADER       *Table);
850
851void
852AcpiDmDumpGtdt (
853    ACPI_TABLE_HEADER       *Table);
854
855void
856AcpiDmDumpHest (
857    ACPI_TABLE_HEADER       *Table);
858
859void
860AcpiDmDumpHmat (
861    ACPI_TABLE_HEADER       *Table);
862
863void
864AcpiDmDumpIort (
865    ACPI_TABLE_HEADER       *Table);
866
867void
868AcpiDmDumpIvrs (
869    ACPI_TABLE_HEADER       *Table);
870
871void
872AcpiDmDumpLpit (
873    ACPI_TABLE_HEADER       *Table);
874
875void
876AcpiDmDumpMadt (
877    ACPI_TABLE_HEADER       *Table);
878
879void
880AcpiDmDumpMcfg (
881    ACPI_TABLE_HEADER       *Table);
882
883void
884AcpiDmDumpMpam (
885    ACPI_TABLE_HEADER       *Table);
886
887void
888AcpiDmDumpMpst (
889    ACPI_TABLE_HEADER       *Table);
890
891void
892AcpiDmDumpMsct (
893    ACPI_TABLE_HEADER       *Table);
894
895void
896AcpiDmDumpNfit (
897    ACPI_TABLE_HEADER       *Table);
898
899void
900AcpiDmDumpNhlt (
901    ACPI_TABLE_HEADER       *Table);
902
903void
904AcpiDmDumpPcct (
905    ACPI_TABLE_HEADER       *Table);
906
907void
908AcpiDmDumpPdtt (
909    ACPI_TABLE_HEADER       *Table);
910
911void
912AcpiDmDumpPhat (
913    ACPI_TABLE_HEADER       *Table);
914
915void
916AcpiDmDumpPmtt (
917    ACPI_TABLE_HEADER       *Table);
918
919void
920AcpiDmDumpPptt (
921    ACPI_TABLE_HEADER       *Table);
922
923void
924AcpiDmDumpPrmt (
925    ACPI_TABLE_HEADER       *Table);
926
927void
928AcpiDmDumpRgrt (
929    ACPI_TABLE_HEADER       *Table);
930
931void
932AcpiDmDumpRhct (
933    ACPI_TABLE_HEADER       *Table);
934
935UINT32
936AcpiDmDumpRsdp (
937    ACPI_TABLE_HEADER       *Table);
938
939void
940AcpiDmDumpRsdt (
941    ACPI_TABLE_HEADER       *Table);
942
943UINT32
944AcpiDmDumpS3pt (
945    ACPI_TABLE_HEADER       *Table);
946
947void
948AcpiDmDumpSdev (
949    ACPI_TABLE_HEADER       *Table);
950
951void
952AcpiDmDumpSlic (
953    ACPI_TABLE_HEADER       *Table);
954
955void
956AcpiDmDumpSlit (
957    ACPI_TABLE_HEADER       *Table);
958
959void
960AcpiDmDumpSrat (
961    ACPI_TABLE_HEADER       *Table);
962
963void
964AcpiDmDumpStao (
965    ACPI_TABLE_HEADER       *Table);
966
967void
968AcpiDmDumpSvkl (
969    ACPI_TABLE_HEADER       *Table);
970
971void
972AcpiDmDumpTcpa (
973    ACPI_TABLE_HEADER       *Table);
974
975void
976AcpiDmDumpTdel (
977    ACPI_TABLE_HEADER       *Table);
978
979void
980AcpiDmDumpTpm2 (
981    ACPI_TABLE_HEADER       *Table);
982
983void
984AcpiDmDumpViot (
985    ACPI_TABLE_HEADER       *Table);
986
987void
988AcpiDmDumpWdat (
989    ACPI_TABLE_HEADER       *Table);
990
991void
992AcpiDmDumpWpbt (
993    ACPI_TABLE_HEADER       *Table);
994
995void
996AcpiDmDumpXsdt (
997    ACPI_TABLE_HEADER       *Table);
998
999
1000/*
1001 * dmwalk
1002 */
1003void
1004AcpiDmDisassemble (
1005    ACPI_WALK_STATE         *WalkState,
1006    ACPI_PARSE_OBJECT       *Origin,
1007    UINT32                  NumOpcodes);
1008
1009void
1010AcpiDmWalkParseTree (
1011    ACPI_PARSE_OBJECT       *Op,
1012    ASL_WALK_CALLBACK       DescendingCallback,
1013    ASL_WALK_CALLBACK       AscendingCallback,
1014    void                    *Context);
1015
1016
1017/*
1018 * dmopcode
1019 */
1020void
1021AcpiDmDisassembleOneOp (
1022    ACPI_WALK_STATE         *WalkState,
1023    ACPI_OP_WALK_INFO       *Info,
1024    ACPI_PARSE_OBJECT       *Op);
1025
1026UINT32
1027AcpiDmListType (
1028    ACPI_PARSE_OBJECT       *Op);
1029
1030void
1031AcpiDmMethodFlags (
1032    ACPI_PARSE_OBJECT       *Op);
1033
1034void
1035AcpiDmDisplayTargetPathname (
1036    ACPI_PARSE_OBJECT       *Op);
1037
1038void
1039AcpiDmNotifyDescription (
1040    ACPI_PARSE_OBJECT       *Op);
1041
1042void
1043AcpiDmPredefinedDescription (
1044    ACPI_PARSE_OBJECT       *Op);
1045
1046void
1047AcpiDmFieldPredefinedDescription (
1048    ACPI_PARSE_OBJECT       *Op);
1049
1050void
1051AcpiDmFieldFlags (
1052    ACPI_PARSE_OBJECT       *Op);
1053
1054void
1055AcpiDmAddressSpace (
1056    UINT8                   SpaceId);
1057
1058void
1059AcpiDmRegionFlags (
1060    ACPI_PARSE_OBJECT       *Op);
1061
1062void
1063AcpiDmMatchOp (
1064    ACPI_PARSE_OBJECT       *Op);
1065
1066
1067/*
1068 * dmnames
1069 */
1070UINT32
1071AcpiDmDumpName (
1072    UINT32                  Name);
1073
1074ACPI_STATUS
1075AcpiPsDisplayObjectPathname (
1076    ACPI_WALK_STATE         *WalkState,
1077    ACPI_PARSE_OBJECT       *Op);
1078
1079void
1080AcpiDmNamestring (
1081    char                    *Name);
1082
1083
1084/*
1085 * dmbuffer
1086 */
1087void
1088AcpiDmDisasmByteList (
1089    UINT32                  Level,
1090    UINT8                   *ByteData,
1091    UINT32                  ByteCount);
1092
1093void
1094AcpiDmByteList (
1095    ACPI_OP_WALK_INFO       *Info,
1096    ACPI_PARSE_OBJECT       *Op);
1097
1098void
1099AcpiDmCheckForHardwareId (
1100    ACPI_PARSE_OBJECT       *Op);
1101
1102void
1103AcpiDmDecompressEisaId (
1104    UINT32                  EncodedId);
1105
1106BOOLEAN
1107AcpiDmIsUuidBuffer (
1108    ACPI_PARSE_OBJECT       *Op);
1109
1110BOOLEAN
1111AcpiDmIsUnicodeBuffer (
1112    ACPI_PARSE_OBJECT       *Op);
1113
1114BOOLEAN
1115AcpiDmIsStringBuffer (
1116    ACPI_PARSE_OBJECT       *Op);
1117
1118BOOLEAN
1119AcpiDmIsPldBuffer (
1120    ACPI_PARSE_OBJECT       *Op);
1121
1122
1123/*
1124 * dmdeferred
1125 */
1126ACPI_STATUS
1127AcpiDmParseDeferredOps (
1128    ACPI_PARSE_OBJECT       *Root);
1129
1130
1131/*
1132 * dmextern
1133 */
1134ACPI_STATUS
1135AcpiDmAddToExternalFileList (
1136    char                    *PathList);
1137
1138void
1139AcpiDmClearExternalFileList (
1140    void);
1141
1142void
1143AcpiDmAddOpToExternalList (
1144    ACPI_PARSE_OBJECT       *Op,
1145    char                    *Path,
1146    UINT8                   Type,
1147    UINT32                  Value,
1148    UINT16                  Flags);
1149
1150void
1151AcpiDmCreateSubobjectForExternal (
1152    UINT8                   Type,
1153    ACPI_NAMESPACE_NODE     **Node,
1154    UINT32                  Value);
1155
1156void
1157AcpiDmAddNodeToExternalList (
1158    ACPI_NAMESPACE_NODE     *Node,
1159    UINT8                   Type,
1160    UINT32                  Value,
1161    UINT16                  Flags);
1162
1163void
1164AcpiDmAddExternalListToNamespace (
1165    void);
1166
1167void
1168AcpiDmAddOneExternalToNamespace (
1169    char                    *Path,
1170    UINT8                   Type,
1171    UINT32                  Value);
1172
1173UINT32
1174AcpiDmGetUnresolvedExternalMethodCount (
1175    void);
1176
1177void
1178AcpiDmClearExternalList (
1179    void);
1180
1181void
1182AcpiDmEmitExternals (
1183    void);
1184
1185void
1186AcpiDmEmitExternal (
1187    ACPI_PARSE_OBJECT       *NameOp,
1188    ACPI_PARSE_OBJECT       *TypeOp);
1189
1190void
1191AcpiDmUnresolvedWarning (
1192    UINT8                   Type);
1193
1194void
1195AcpiDmGetExternalsFromFile (
1196    void);
1197
1198void
1199AcpiDmMarkExternalConflict (
1200    ACPI_NAMESPACE_NODE     *Node);
1201
1202
1203/*
1204 * dmresrc
1205 */
1206void
1207AcpiDmDumpInteger8 (
1208    UINT8                   Value,
1209    const char              *Name);
1210
1211void
1212AcpiDmDumpInteger16 (
1213    UINT16                  Value,
1214    const char              *Name);
1215
1216void
1217AcpiDmDumpInteger32 (
1218    UINT32                  Value,
1219    const char              *Name);
1220
1221void
1222AcpiDmDumpInteger64 (
1223    UINT64                  Value,
1224    const char              *Name);
1225
1226void
1227AcpiDmResourceTemplate (
1228    ACPI_OP_WALK_INFO       *Info,
1229    ACPI_PARSE_OBJECT       *Op,
1230    UINT8                   *ByteData,
1231    UINT32                  ByteCount);
1232
1233ACPI_STATUS
1234AcpiDmIsResourceTemplate (
1235    ACPI_WALK_STATE         *WalkState,
1236    ACPI_PARSE_OBJECT       *Op);
1237
1238void
1239AcpiDmBitList (
1240    UINT16                  Mask);
1241
1242void
1243AcpiDmDescriptorName (
1244    void);
1245
1246
1247/*
1248 * dmresrcl
1249 */
1250void
1251AcpiDmWordDescriptor (
1252    ACPI_OP_WALK_INFO       *Info,
1253    AML_RESOURCE            *Resource,
1254    UINT32                  Length,
1255    UINT32                  Level);
1256
1257void
1258AcpiDmDwordDescriptor (
1259    ACPI_OP_WALK_INFO       *Info,
1260    AML_RESOURCE            *Resource,
1261    UINT32                  Length,
1262    UINT32                  Level);
1263
1264void
1265AcpiDmExtendedDescriptor (
1266    ACPI_OP_WALK_INFO       *Info,
1267    AML_RESOURCE            *Resource,
1268    UINT32                  Length,
1269    UINT32                  Level);
1270
1271void
1272AcpiDmQwordDescriptor (
1273    ACPI_OP_WALK_INFO       *Info,
1274    AML_RESOURCE            *Resource,
1275    UINT32                  Length,
1276    UINT32                  Level);
1277
1278void
1279AcpiDmMemory24Descriptor (
1280    ACPI_OP_WALK_INFO       *Info,
1281    AML_RESOURCE            *Resource,
1282    UINT32                  Length,
1283    UINT32                  Level);
1284
1285void
1286AcpiDmMemory32Descriptor (
1287    ACPI_OP_WALK_INFO       *Info,
1288    AML_RESOURCE            *Resource,
1289    UINT32                  Length,
1290    UINT32                  Level);
1291
1292void
1293AcpiDmFixedMemory32Descriptor (
1294    ACPI_OP_WALK_INFO       *Info,
1295    AML_RESOURCE            *Resource,
1296    UINT32                  Length,
1297    UINT32                  Level);
1298
1299void
1300AcpiDmGenericRegisterDescriptor (
1301    ACPI_OP_WALK_INFO       *Info,
1302    AML_RESOURCE            *Resource,
1303    UINT32                  Length,
1304    UINT32                  Level);
1305
1306void
1307AcpiDmInterruptDescriptor (
1308    ACPI_OP_WALK_INFO       *Info,
1309    AML_RESOURCE            *Resource,
1310    UINT32                  Length,
1311    UINT32                  Level);
1312
1313void
1314AcpiDmVendorLargeDescriptor (
1315    ACPI_OP_WALK_INFO       *Info,
1316    AML_RESOURCE            *Resource,
1317    UINT32                  Length,
1318    UINT32                  Level);
1319
1320void
1321AcpiDmGpioDescriptor (
1322    ACPI_OP_WALK_INFO       *Info,
1323    AML_RESOURCE            *Resource,
1324    UINT32                  Length,
1325    UINT32                  Level);
1326
1327void
1328AcpiDmPinFunctionDescriptor (
1329    ACPI_OP_WALK_INFO       *Info,
1330    AML_RESOURCE            *Resource,
1331    UINT32                  Length,
1332    UINT32                  Level);
1333
1334void
1335AcpiDmPinConfigDescriptor (
1336    ACPI_OP_WALK_INFO       *Info,
1337    AML_RESOURCE            *Resource,
1338    UINT32                  Length,
1339    UINT32                  Level);
1340
1341void
1342AcpiDmPinGroupDescriptor (
1343    ACPI_OP_WALK_INFO       *Info,
1344    AML_RESOURCE            *Resource,
1345    UINT32                  Length,
1346    UINT32                  Level);
1347
1348void
1349AcpiDmPinGroupFunctionDescriptor (
1350    ACPI_OP_WALK_INFO       *Info,
1351    AML_RESOURCE            *Resource,
1352    UINT32                  Length,
1353    UINT32                  Level);
1354
1355void
1356AcpiDmPinGroupConfigDescriptor (
1357    ACPI_OP_WALK_INFO       *Info,
1358    AML_RESOURCE            *Resource,
1359    UINT32                  Length,
1360    UINT32                  Level);
1361
1362void
1363AcpiDmSerialBusDescriptor (
1364    ACPI_OP_WALK_INFO       *Info,
1365    AML_RESOURCE            *Resource,
1366    UINT32                  Length,
1367    UINT32                  Level);
1368
1369void
1370AcpiDmVendorCommon (
1371    const char              *Name,
1372    UINT8                   *ByteData,
1373    UINT32                  Length,
1374    UINT32                  Level);
1375
1376void
1377AcpiDmClockInputDescriptor (
1378    ACPI_OP_WALK_INFO       *Info,
1379    AML_RESOURCE            *Resource,
1380    UINT32                  Length,
1381    UINT32                  Level);
1382
1383/*
1384 * dmresrcs
1385 */
1386void
1387AcpiDmIrqDescriptor (
1388    ACPI_OP_WALK_INFO       *Info,
1389    AML_RESOURCE            *Resource,
1390    UINT32                  Length,
1391    UINT32                  Level);
1392
1393void
1394AcpiDmDmaDescriptor (
1395    ACPI_OP_WALK_INFO       *Info,
1396    AML_RESOURCE            *Resource,
1397    UINT32                  Length,
1398    UINT32                  Level);
1399
1400void
1401AcpiDmFixedDmaDescriptor (
1402    ACPI_OP_WALK_INFO       *Info,
1403    AML_RESOURCE            *Resource,
1404    UINT32                  Length,
1405    UINT32                  Level);
1406
1407void
1408AcpiDmIoDescriptor (
1409    ACPI_OP_WALK_INFO       *Info,
1410    AML_RESOURCE            *Resource,
1411    UINT32                  Length,
1412    UINT32                  Level);
1413
1414void
1415AcpiDmFixedIoDescriptor (
1416    ACPI_OP_WALK_INFO       *Info,
1417    AML_RESOURCE            *Resource,
1418    UINT32                  Length,
1419    UINT32                  Level);
1420
1421void
1422AcpiDmStartDependentDescriptor (
1423    ACPI_OP_WALK_INFO       *Info,
1424    AML_RESOURCE            *Resource,
1425    UINT32                  Length,
1426    UINT32                  Level);
1427
1428void
1429AcpiDmEndDependentDescriptor (
1430    ACPI_OP_WALK_INFO       *Info,
1431    AML_RESOURCE            *Resource,
1432    UINT32                  Length,
1433    UINT32                  Level);
1434
1435void
1436AcpiDmVendorSmallDescriptor (
1437    ACPI_OP_WALK_INFO       *Info,
1438    AML_RESOURCE            *Resource,
1439    UINT32                  Length,
1440    UINT32                  Level);
1441
1442
1443/*
1444 * dmutils
1445 */
1446void
1447AcpiDmDecodeAttribute (
1448    UINT8                   Attribute);
1449
1450void
1451AcpiDmIndent (
1452    UINT32                  Level);
1453
1454BOOLEAN
1455AcpiDmCommaIfListMember (
1456    ACPI_PARSE_OBJECT       *Op);
1457
1458void
1459AcpiDmCommaIfFieldMember (
1460    ACPI_PARSE_OBJECT       *Op);
1461
1462
1463/*
1464 * dmrestag
1465 */
1466void
1467AcpiDmFindResources (
1468    ACPI_PARSE_OBJECT       *Root);
1469
1470void
1471AcpiDmCheckResourceReference (
1472    ACPI_PARSE_OBJECT       *Op,
1473    ACPI_WALK_STATE         *WalkState);
1474
1475
1476/*
1477 * dmcstyle
1478 */
1479BOOLEAN
1480AcpiDmCheckForSymbolicOpcode (
1481    ACPI_PARSE_OBJECT       *Op,
1482    ACPI_OP_WALK_INFO       *Info);
1483
1484void
1485AcpiDmCloseOperator (
1486    ACPI_PARSE_OBJECT       *Op);
1487
1488
1489/*
1490 * dmtables
1491 */
1492ACPI_STATUS
1493AcpiDmProcessSwitch (
1494    ACPI_PARSE_OBJECT       *Op);
1495
1496void
1497AcpiDmClearTempList(
1498    void);
1499
1500/*
1501 * dmtables
1502 */
1503void
1504AdDisassemblerHeader (
1505    char                    *Filename,
1506    UINT8                   TableType);
1507
1508#define ACPI_IS_AML_TABLE   0
1509#define ACPI_IS_DATA_TABLE  1
1510
1511
1512/*
1513 * adisasm
1514 */
1515ACPI_STATUS
1516AdAmlDisassemble (
1517    BOOLEAN                 OutToFile,
1518    char                    *Filename,
1519    char                    *Prefix,
1520    char                    **OutFilename);
1521
1522ACPI_STATUS
1523AdGetLocalTables (
1524    void);
1525
1526ACPI_STATUS
1527AdParseTable (
1528    ACPI_TABLE_HEADER       *Table,
1529    ACPI_OWNER_ID           *OwnerId,
1530    BOOLEAN                 LoadTable,
1531    BOOLEAN                 External);
1532
1533ACPI_STATUS
1534AdDisplayTables (
1535    char                    *Filename,
1536    ACPI_TABLE_HEADER       *Table);
1537
1538ACPI_STATUS
1539AdDisplayStatistics (
1540    void);
1541
1542
1543/*
1544 * dmwalk
1545 */
1546UINT32
1547AcpiDmBlockType (
1548    ACPI_PARSE_OBJECT       *Op);
1549
1550
1551#endif  /* __ACDISASM_H__ */
1552