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