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