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