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