Home | History | Annotate | Line # | Download | only in include
acdisasm.h revision 1.22
      1 /******************************************************************************
      2  *
      3  * Name: acdisasm.h - AML disassembler
      4  *
      5  *****************************************************************************/
      6 
      7 /*
      8  * Copyright (C) 2000 - 2021, Intel Corp.
      9  * All rights reserved.
     10  *
     11  * Redistribution and use in source and binary forms, with or without
     12  * modification, are permitted provided that the following conditions
     13  * are met:
     14  * 1. Redistributions of source code must retain the above copyright
     15  *    notice, this list of conditions, and the following disclaimer,
     16  *    without modification.
     17  * 2. Redistributions in binary form must reproduce at minimum a disclaimer
     18  *    substantially similar to the "NO WARRANTY" disclaimer below
     19  *    ("Disclaimer") and any redistribution must be conditioned upon
     20  *    including a substantially similar Disclaimer requirement for further
     21  *    binary redistribution.
     22  * 3. Neither the names of the above-listed copyright holders nor the names
     23  *    of any contributors may be used to endorse or promote products derived
     24  *    from this software without specific prior written permission.
     25  *
     26  * Alternatively, this software may be distributed under the terms of the
     27  * GNU General Public License ("GPL") version 2 as published by the Free
     28  * Software Foundation.
     29  *
     30  * NO WARRANTY
     31  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
     32  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
     33  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
     34  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
     35  * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
     36  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
     37  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
     38  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
     39  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
     40  * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
     41  * POSSIBILITY OF SUCH DAMAGES.
     42  */
     43 
     44 #ifndef __ACDISASM_H__
     45 #define __ACDISASM_H__
     46 
     47 #include "amlresrc.h"
     48 
     49 
     50 #define BLOCK_NONE              0
     51 #define BLOCK_PAREN             1
     52 #define BLOCK_BRACE             2
     53 #define BLOCK_COMMA_LIST        4
     54 #define ACPI_DEFAULT_RESNAME    *(const UINT32 *) "__RD"
     55 
     56 /*
     57  * Raw table data header. Used by disassembler and data table compiler.
     58  * Do not change.
     59  */
     60 #define ACPI_RAW_TABLE_DATA_HEADER      "Raw Table Data"
     61 
     62 
     63 typedef struct acpi_dmtable_info
     64 {
     65     UINT8                       Opcode;
     66     UINT16                      Offset;
     67     char                        *Name;
     68     UINT8                       Flags;
     69 
     70 } ACPI_DMTABLE_INFO;
     71 
     72 /* Values for Flags field above */
     73 
     74 #define DT_LENGTH                       0x01    /* Field is a subtable length */
     75 #define DT_FLAG                         0x02    /* Field is a flag value */
     76 #define DT_NON_ZERO                     0x04    /* Field must be non-zero */
     77 #define DT_OPTIONAL                     0x08    /* Field is optional */
     78 #define DT_DESCRIBES_OPTIONAL           0x10    /* Field describes an optional field (length, etc.) */
     79 #define DT_COUNT                        0x20    /* Currently not used */
     80 
     81 /*
     82  * Values for Opcode above.
     83  * Note: 0-7 must not change, they are used as a flag shift value. Other
     84  * than those, new values can be added wherever appropriate.
     85  */
     86 typedef enum
     87 {
     88     /* Simple Data Types */
     89 
     90     ACPI_DMT_FLAG0          = 0,
     91     ACPI_DMT_FLAG1          = 1,
     92     ACPI_DMT_FLAG2          = 2,
     93     ACPI_DMT_FLAG3          = 3,
     94     ACPI_DMT_FLAG4          = 4,
     95     ACPI_DMT_FLAG5          = 5,
     96     ACPI_DMT_FLAG6          = 6,
     97     ACPI_DMT_FLAG7          = 7,
     98     ACPI_DMT_FLAGS0,
     99     ACPI_DMT_FLAGS1,
    100     ACPI_DMT_FLAGS2,
    101     ACPI_DMT_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_CEDT,
    147     ACPI_DMT_DMAR,
    148     ACPI_DMT_DMAR_SCOPE,
    149     ACPI_DMT_EINJACT,
    150     ACPI_DMT_EINJINST,
    151     ACPI_DMT_ERSTACT,
    152     ACPI_DMT_ERSTINST,
    153     ACPI_DMT_FADTPM,
    154     ACPI_DMT_GTDT,
    155     ACPI_DMT_HEST,
    156     ACPI_DMT_HESTNTFY,
    157     ACPI_DMT_HESTNTYP,
    158     ACPI_DMT_HMAT,
    159     ACPI_DMT_IORTMEM,
    160     ACPI_DMT_IVRS,
    161     ACPI_DMT_IVRS_DE,
    162     ACPI_DMT_IVRS_UNTERMINATED_STRING,
    163     ACPI_DMT_LPIT,
    164     ACPI_DMT_MADT,
    165     ACPI_DMT_NFIT,
    166     ACPI_DMT_PCCT,
    167     ACPI_DMT_PHAT,
    168     ACPI_DMT_PMTT,
    169     ACPI_DMT_PMTT_VENDOR,
    170     ACPI_DMT_PPTT,
    171     ACPI_DMT_RGRT,
    172     ACPI_DMT_SDEI,
    173     ACPI_DMT_SDEV,
    174     ACPI_DMT_SLIC,
    175     ACPI_DMT_SRAT,
    176     ACPI_DMT_TPM2,
    177     ACPI_DMT_VIOT,
    178 
    179     /* Special opcodes */
    180 
    181     ACPI_DMT_EXTRA_TEXT,
    182     ACPI_DMT_EXIT
    183 
    184 } ACPI_ENTRY_TYPES;
    185 
    186 typedef
    187 void (*ACPI_DMTABLE_HANDLER) (
    188     ACPI_TABLE_HEADER       *Table);
    189 
    190 typedef
    191 ACPI_STATUS (*ACPI_CMTABLE_HANDLER) (
    192     void                    **PFieldList);
    193 
    194 typedef struct acpi_dmtable_data
    195 {
    196     char                    *Signature;
    197     ACPI_DMTABLE_INFO       *TableInfo;
    198     ACPI_DMTABLE_HANDLER    TableHandler;
    199     ACPI_CMTABLE_HANDLER    CmTableHandler;
    200     const unsigned char     *Template;
    201 
    202 } ACPI_DMTABLE_DATA;
    203 
    204 
    205 typedef struct acpi_op_walk_info
    206 {
    207     ACPI_WALK_STATE         *WalkState;
    208     ACPI_PARSE_OBJECT       *MappingOp;
    209     UINT8                   *PreviousAml;
    210     UINT8                   *StartAml;
    211     UINT32                  Level;
    212     UINT32                  LastLevel;
    213     UINT32                  Count;
    214     UINT32                  BitOffset;
    215     UINT32                  Flags;
    216     UINT32                  AmlOffset;
    217 
    218 } ACPI_OP_WALK_INFO;
    219 
    220 /*
    221  * TBD - another copy of this is in asltypes.h, fix
    222  */
    223 #ifndef ASL_WALK_CALLBACK_DEFINED
    224 typedef
    225 ACPI_STATUS (*ASL_WALK_CALLBACK) (
    226     ACPI_PARSE_OBJECT           *Op,
    227     UINT32                      Level,
    228     void                        *Context);
    229 #define ASL_WALK_CALLBACK_DEFINED
    230 #endif
    231 
    232 typedef
    233 void (*ACPI_RESOURCE_HANDLER) (
    234     ACPI_OP_WALK_INFO       *Info,
    235     AML_RESOURCE            *Resource,
    236     UINT32                  Length,
    237     UINT32                  Level);
    238 
    239 typedef struct acpi_resource_tag
    240 {
    241     UINT32                  BitIndex;
    242     char                    *Tag;
    243 
    244 } ACPI_RESOURCE_TAG;
    245 
    246 /* Strings used for decoding flags to ASL keywords */
    247 
    248 extern const char               *AcpiGbl_WordDecode[];
    249 extern const char               *AcpiGbl_IrqDecode[];
    250 extern const char               *AcpiGbl_LockRule[];
    251 extern const char               *AcpiGbl_AccessTypes[];
    252 extern const char               *AcpiGbl_UpdateRules[];
    253 extern const char               *AcpiGbl_MatchOps[];
    254 
    255 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf0[];
    256 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf1[];
    257 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf1a[];
    258 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf2[];
    259 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf2a[];
    260 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf3[];
    261 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf4[];
    262 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsfHdr[];
    263 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoBdat[];
    264 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoBoot[];
    265 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoBert[];
    266 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoBgrt[];
    267 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoCedtHdr[];
    268 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoCedt0[];
    269 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoCpep[];
    270 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoCpep0[];
    271 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoCsrt0[];
    272 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoCsrt1[];
    273 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoCsrt2[];
    274 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoCsrt2a[];
    275 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDbg2[];
    276 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDbg2Device[];
    277 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDbg2Addr[];
    278 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDbg2Size[];
    279 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDbg2Name[];
    280 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDbg2OemData[];
    281 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDbgp[];
    282 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmar[];
    283 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmarHdr[];
    284 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmarScope[];
    285 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmar0[];
    286 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmar1[];
    287 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmar2[];
    288 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmar3[];
    289 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmar4[];
    290 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDrtm[];
    291 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDrtm0[];
    292 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDrtm0a[];
    293 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDrtm1[];
    294 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDrtm1a[];
    295 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDrtm2[];
    296 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoEcdt[];
    297 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoEinj[];
    298 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoEinj0[];
    299 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoErst[];
    300 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoErst0[];
    301 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFacs[];
    302 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFadt1[];
    303 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFadt2[];
    304 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFadt3[];
    305 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFadt5[];
    306 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFadt6[];
    307 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFpdt[];
    308 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFpdtHdr[];
    309 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFpdt0[];
    310 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFpdt1[];
    311 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoGas[];
    312 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoGtdt[];
    313 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoGtdtHdr[];
    314 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoGtdtEl2[];
    315 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoGtdt0[];
    316 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoGtdt0a[];
    317 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoGtdt1[];
    318 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHeader[];
    319 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest[];
    320 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest0[];
    321 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest1[];
    322 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest2[];
    323 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest6[];
    324 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest7[];
    325 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest8[];
    326 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest9[];
    327 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest10[];
    328 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest11[];
    329 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHestNotify[];
    330 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHestBank[];
    331 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHpet[];
    332 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoLpitHdr[];
    333 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoLpit0[];
    334 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoLpit1[];
    335 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHmat[];
    336 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHmat0[];
    337 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHmat1[];
    338 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHmat1a[];
    339 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHmat1b[];
    340 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHmat1c[];
    341 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHmat2[];
    342 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHmat2a[];
    343 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHmatHdr[];
    344 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIort[];
    345 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIort0[];
    346 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIort0a[];
    347 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIort1[];
    348 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIort1a[];
    349 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIort2[];
    350 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIort3[];
    351 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIort3a[];
    352 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIort3b[];
    353 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIort3c[];
    354 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIort4[];
    355 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIort5[];
    356 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIort6[];
    357 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIort6a[];
    358 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIortAcc[];
    359 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIortHdr[];
    360 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIortHdr3[];
    361 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIortMap[];
    362 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIortPad[];
    363 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs[];
    364 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrsHware1[];
    365 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrsHware23[];
    366 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrsMemory[];
    367 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs4[];
    368 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs8a[];
    369 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs8b[];
    370 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs8c[];
    371 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrsCidString[];
    372 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrsCidInteger[];
    373 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrsHid[];
    374 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrsUidString[];
    375 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrsUidInteger[];
    376 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrsHidString[];
    377 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrsHidInteger[];
    378 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt[];
    379 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt0[];
    380 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt1[];
    381 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt2[];
    382 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt3[];
    383 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt4[];
    384 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt5[];
    385 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt6[];
    386 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt7[];
    387 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt8[];
    388 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt9[];
    389 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt10[];
    390 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt11[];
    391 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt12[];
    392 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt13[];
    393 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt14[];
    394 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt15[];
    395 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt16[];
    396 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadtHdr[];
    397 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMcfg[];
    398 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMcfg0[];
    399 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMchi[];
    400 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMpst[];
    401 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMpst0[];
    402 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMpst0A[];
    403 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMpst0B[];
    404 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMpst1[];
    405 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMpst2[];
    406 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMsct[];
    407 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMsct0[];
    408 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoNfit[];
    409 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoNfitHdr[];
    410 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoNfit0[];
    411 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoNfit1[];
    412 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoNfit2[];
    413 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoNfit2a[];
    414 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoNfit3[];
    415 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoNfit3a[];
    416 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoNfit4[];
    417 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoNfit5[];
    418 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoNfit6[];
    419 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoNfit6a[];
    420 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoNfit7[];
    421 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPdtt[];
    422 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPhatHdr[];
    423 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPhat0[];
    424 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPhat0a[];
    425 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPhat1[];
    426 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPhat1a[];
    427 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPhat1b[];
    428 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPmtt[];
    429 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPmtt0[];
    430 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPmtt1[];
    431 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPmtt2[];
    432 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPmttVendor[];
    433 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPmttHdr[];
    434 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPcct[];
    435 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPcctHdr[];
    436 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPcct0[];
    437 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPcct1[];
    438 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPcct2[];
    439 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPcct3[];
    440 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPcct4[];
    441 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPcct5[];
    442 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPdtt0[];
    443 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPptt0[];
    444 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPptt0a[];
    445 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPptt1[];
    446 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPptt1a[];
    447 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPptt2[];
    448 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPpttHdr[];
    449 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPrmtHdr[];
    450 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPrmtModule[];
    451 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPrmtHandler[];
    452 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoRasf[];
    453 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoRgrt[];
    454 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoRgrt0[];
    455 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoRsdp1[];
    456 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoRsdp2[];
    457 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoS3pt[];
    458 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoS3ptHdr[];
    459 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoS3pt0[];
    460 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoS3pt1[];
    461 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSbst[];
    462 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSdei[];
    463 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSdev[];
    464 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSdevHdr[];
    465 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSdev0[];
    466 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSdev0a[];
    467 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSdev0b[];
    468 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSdevSecCompHdr[];
    469 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSdevSecCompId[];
    470 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSdevSecCompMem[];
    471 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSdev1[];
    472 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSdev1a[];
    473 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSdev1b[];
    474 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSlic[];
    475 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSlit[];
    476 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSpcr[];
    477 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSpmi[];
    478 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSrat[];
    479 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSratHdr[];
    480 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSrat0[];
    481 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSrat1[];
    482 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSrat2[];
    483 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSrat3[];
    484 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSrat4[];
    485 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSrat5[];
    486 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoStao[];
    487 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoStaoStr[];
    488 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSvkl[];
    489 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSvkl0[];
    490 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoTcpaHdr[];
    491 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoTcpaClient[];
    492 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoTcpaServer[];
    493 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoTpm2[];
    494 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoTpm2a[];
    495 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoTpm211[];
    496 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoTpm23[];
    497 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoTpm23a[];
    498 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoUefi[];
    499 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoViot[];
    500 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoViotHeader[];
    501 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoViot1[];
    502 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoViot2[];
    503 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoViot3[];
    504 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoViot4[];
    505 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoWaet[];
    506 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoWdat[];
    507 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoWdat0[];
    508 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoWddt[];
    509 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoWdrt[];
    510 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoWpbt[];
    511 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoWpbt0[];
    512 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoWsmt[];
    513 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoXenv[];
    514 
    515 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoGeneric[][2];
    516 
    517 /*
    518  * dmtable and ahtable
    519  */
    520 extern const ACPI_DMTABLE_DATA  AcpiDmTableData[];
    521 extern const AH_TABLE           AcpiGbl_SupportedTables[];
    522 
    523 UINT8
    524 AcpiDmGenerateChecksum (
    525     void                    *Table,
    526     UINT32                  Length,
    527     UINT8                   OriginalChecksum);
    528 
    529 const ACPI_DMTABLE_DATA *
    530 AcpiDmGetTableData (
    531     char                    *Signature);
    532 
    533 void
    534 AcpiDmDumpDataTable (
    535     ACPI_TABLE_HEADER       *Table);
    536 
    537 ACPI_STATUS
    538 AcpiDmDumpTable (
    539     UINT32                  TableLength,
    540     UINT32                  TableOffset,
    541     void                    *Table,
    542     UINT32                  SubtableLength,
    543     ACPI_DMTABLE_INFO        *Info);
    544 
    545 void
    546 AcpiDmLineHeader (
    547     UINT32                  Offset,
    548     UINT32                  ByteLength,
    549     char                    *Name);
    550 
    551 void
    552 AcpiDmLineHeader2 (
    553     UINT32                  Offset,
    554     UINT32                  ByteLength,
    555     char                    *Name,
    556     UINT32                  Value);
    557 
    558 
    559 /*
    560  * dmtbdump
    561  */
    562 void
    563 AcpiDmDumpBuffer (
    564     void                    *Table,
    565     UINT32                  BufferOffset,
    566     UINT32                  Length,
    567     UINT32                  AbsoluteOffset,
    568     char                    *Header);
    569 
    570 void
    571 AcpiDmDumpUnicode (
    572     void                    *Table,
    573     UINT32                  BufferOffset,
    574     UINT32                  ByteLength);
    575 
    576 void
    577 AcpiDmDumpAsf (
    578     ACPI_TABLE_HEADER       *Table);
    579 
    580 void
    581 AcpiDmDumpCedt (
    582     ACPI_TABLE_HEADER       *Table);
    583 
    584 void
    585 AcpiDmDumpCpep (
    586     ACPI_TABLE_HEADER       *Table);
    587 
    588 void
    589 AcpiDmDumpCsrt (
    590     ACPI_TABLE_HEADER       *Table);
    591 
    592 void
    593 AcpiDmDumpDbg2 (
    594     ACPI_TABLE_HEADER       *Table);
    595 
    596 void
    597 AcpiDmDumpDmar (
    598     ACPI_TABLE_HEADER       *Table);
    599 
    600 void
    601 AcpiDmDumpDrtm (
    602     ACPI_TABLE_HEADER       *Table);
    603 
    604 void
    605 AcpiDmDumpEinj (
    606     ACPI_TABLE_HEADER       *Table);
    607 
    608 void
    609 AcpiDmDumpErst (
    610     ACPI_TABLE_HEADER       *Table);
    611 
    612 void
    613 AcpiDmDumpFadt (
    614     ACPI_TABLE_HEADER       *Table);
    615 
    616 void
    617 AcpiDmDumpFpdt (
    618     ACPI_TABLE_HEADER       *Table);
    619 
    620 void
    621 AcpiDmDumpGtdt (
    622     ACPI_TABLE_HEADER       *Table);
    623 
    624 void
    625 AcpiDmDumpHest (
    626     ACPI_TABLE_HEADER       *Table);
    627 
    628 void
    629 AcpiDmDumpHmat (
    630     ACPI_TABLE_HEADER       *Table);
    631 
    632 void
    633 AcpiDmDumpIort (
    634     ACPI_TABLE_HEADER       *Table);
    635 
    636 void
    637 AcpiDmDumpIvrs (
    638     ACPI_TABLE_HEADER       *Table);
    639 
    640 void
    641 AcpiDmDumpLpit (
    642     ACPI_TABLE_HEADER       *Table);
    643 
    644 void
    645 AcpiDmDumpMadt (
    646     ACPI_TABLE_HEADER       *Table);
    647 
    648 void
    649 AcpiDmDumpMcfg (
    650     ACPI_TABLE_HEADER       *Table);
    651 
    652 void
    653 AcpiDmDumpMpst (
    654     ACPI_TABLE_HEADER       *Table);
    655 
    656 void
    657 AcpiDmDumpMsct (
    658     ACPI_TABLE_HEADER       *Table);
    659 
    660 void
    661 AcpiDmDumpNfit (
    662     ACPI_TABLE_HEADER       *Table);
    663 
    664 void
    665 AcpiDmDumpPcct (
    666     ACPI_TABLE_HEADER       *Table);
    667 
    668 void
    669 AcpiDmDumpPdtt (
    670     ACPI_TABLE_HEADER       *Table);
    671 
    672 void
    673 AcpiDmDumpPhat (
    674     ACPI_TABLE_HEADER       *Table);
    675 
    676 void
    677 AcpiDmDumpPmtt (
    678     ACPI_TABLE_HEADER       *Table);
    679 
    680 void
    681 AcpiDmDumpPptt (
    682     ACPI_TABLE_HEADER       *Table);
    683 
    684 void
    685 AcpiDmDumpPrmt (
    686     ACPI_TABLE_HEADER       *Table);
    687 
    688 void
    689 AcpiDmDumpRgrt (
    690     ACPI_TABLE_HEADER       *Table);
    691 
    692 UINT32
    693 AcpiDmDumpRsdp (
    694     ACPI_TABLE_HEADER       *Table);
    695 
    696 void
    697 AcpiDmDumpRsdt (
    698     ACPI_TABLE_HEADER       *Table);
    699 
    700 UINT32
    701 AcpiDmDumpS3pt (
    702     ACPI_TABLE_HEADER       *Table);
    703 
    704 void
    705 AcpiDmDumpSdev (
    706     ACPI_TABLE_HEADER       *Table);
    707 
    708 void
    709 AcpiDmDumpSlic (
    710     ACPI_TABLE_HEADER       *Table);
    711 
    712 void
    713 AcpiDmDumpSlit (
    714     ACPI_TABLE_HEADER       *Table);
    715 
    716 void
    717 AcpiDmDumpSrat (
    718     ACPI_TABLE_HEADER       *Table);
    719 
    720 void
    721 AcpiDmDumpStao (
    722     ACPI_TABLE_HEADER       *Table);
    723 
    724 void
    725 AcpiDmDumpSvkl (
    726     ACPI_TABLE_HEADER       *Table);
    727 
    728 void
    729 AcpiDmDumpTcpa (
    730     ACPI_TABLE_HEADER       *Table);
    731 
    732 void
    733 AcpiDmDumpTpm2 (
    734     ACPI_TABLE_HEADER       *Table);
    735 
    736 void
    737 AcpiDmDumpViot (
    738     ACPI_TABLE_HEADER       *Table);
    739 
    740 void
    741 AcpiDmDumpWdat (
    742     ACPI_TABLE_HEADER       *Table);
    743 
    744 void
    745 AcpiDmDumpWpbt (
    746     ACPI_TABLE_HEADER       *Table);
    747 
    748 void
    749 AcpiDmDumpXsdt (
    750     ACPI_TABLE_HEADER       *Table);
    751 
    752 
    753 /*
    754  * dmwalk
    755  */
    756 void
    757 AcpiDmDisassemble (
    758     ACPI_WALK_STATE         *WalkState,
    759     ACPI_PARSE_OBJECT       *Origin,
    760     UINT32                  NumOpcodes);
    761 
    762 void
    763 AcpiDmWalkParseTree (
    764     ACPI_PARSE_OBJECT       *Op,
    765     ASL_WALK_CALLBACK       DescendingCallback,
    766     ASL_WALK_CALLBACK       AscendingCallback,
    767     void                    *Context);
    768 
    769 
    770 /*
    771  * dmopcode
    772  */
    773 void
    774 AcpiDmDisassembleOneOp (
    775     ACPI_WALK_STATE         *WalkState,
    776     ACPI_OP_WALK_INFO       *Info,
    777     ACPI_PARSE_OBJECT       *Op);
    778 
    779 UINT32
    780 AcpiDmListType (
    781     ACPI_PARSE_OBJECT       *Op);
    782 
    783 void
    784 AcpiDmMethodFlags (
    785     ACPI_PARSE_OBJECT       *Op);
    786 
    787 void
    788 AcpiDmDisplayTargetPathname (
    789     ACPI_PARSE_OBJECT       *Op);
    790 
    791 void
    792 AcpiDmNotifyDescription (
    793     ACPI_PARSE_OBJECT       *Op);
    794 
    795 void
    796 AcpiDmPredefinedDescription (
    797     ACPI_PARSE_OBJECT       *Op);
    798 
    799 void
    800 AcpiDmFieldPredefinedDescription (
    801     ACPI_PARSE_OBJECT       *Op);
    802 
    803 void
    804 AcpiDmFieldFlags (
    805     ACPI_PARSE_OBJECT       *Op);
    806 
    807 void
    808 AcpiDmAddressSpace (
    809     UINT8                   SpaceId);
    810 
    811 void
    812 AcpiDmRegionFlags (
    813     ACPI_PARSE_OBJECT       *Op);
    814 
    815 void
    816 AcpiDmMatchOp (
    817     ACPI_PARSE_OBJECT       *Op);
    818 
    819 
    820 /*
    821  * dmnames
    822  */
    823 UINT32
    824 AcpiDmDumpName (
    825     UINT32                  Name);
    826 
    827 ACPI_STATUS
    828 AcpiPsDisplayObjectPathname (
    829     ACPI_WALK_STATE         *WalkState,
    830     ACPI_PARSE_OBJECT       *Op);
    831 
    832 void
    833 AcpiDmNamestring (
    834     char                    *Name);
    835 
    836 
    837 /*
    838  * dmbuffer
    839  */
    840 void
    841 AcpiDmDisasmByteList (
    842     UINT32                  Level,
    843     UINT8                   *ByteData,
    844     UINT32                  ByteCount);
    845 
    846 void
    847 AcpiDmByteList (
    848     ACPI_OP_WALK_INFO       *Info,
    849     ACPI_PARSE_OBJECT       *Op);
    850 
    851 void
    852 AcpiDmCheckForHardwareId (
    853     ACPI_PARSE_OBJECT       *Op);
    854 
    855 void
    856 AcpiDmDecompressEisaId (
    857     UINT32                  EncodedId);
    858 
    859 BOOLEAN
    860 AcpiDmIsUuidBuffer (
    861     ACPI_PARSE_OBJECT       *Op);
    862 
    863 BOOLEAN
    864 AcpiDmIsUnicodeBuffer (
    865     ACPI_PARSE_OBJECT       *Op);
    866 
    867 BOOLEAN
    868 AcpiDmIsStringBuffer (
    869     ACPI_PARSE_OBJECT       *Op);
    870 
    871 BOOLEAN
    872 AcpiDmIsPldBuffer (
    873     ACPI_PARSE_OBJECT       *Op);
    874 
    875 
    876 /*
    877  * dmdeferred
    878  */
    879 ACPI_STATUS
    880 AcpiDmParseDeferredOps (
    881     ACPI_PARSE_OBJECT       *Root);
    882 
    883 
    884 /*
    885  * dmextern
    886  */
    887 ACPI_STATUS
    888 AcpiDmAddToExternalFileList (
    889     char                    *PathList);
    890 
    891 void
    892 AcpiDmClearExternalFileList (
    893     void);
    894 
    895 void
    896 AcpiDmAddOpToExternalList (
    897     ACPI_PARSE_OBJECT       *Op,
    898     char                    *Path,
    899     UINT8                   Type,
    900     UINT32                  Value,
    901     UINT16                  Flags);
    902 
    903 void
    904 AcpiDmCreateSubobjectForExternal (
    905     UINT8                   Type,
    906     ACPI_NAMESPACE_NODE     **Node,
    907     UINT32                  Value);
    908 
    909 void
    910 AcpiDmAddNodeToExternalList (
    911     ACPI_NAMESPACE_NODE     *Node,
    912     UINT8                   Type,
    913     UINT32                  Value,
    914     UINT16                  Flags);
    915 
    916 void
    917 AcpiDmAddExternalListToNamespace (
    918     void);
    919 
    920 void
    921 AcpiDmAddOneExternalToNamespace (
    922     char                    *Path,
    923     UINT8                   Type,
    924     UINT32                  Value);
    925 
    926 UINT32
    927 AcpiDmGetUnresolvedExternalMethodCount (
    928     void);
    929 
    930 void
    931 AcpiDmClearExternalList (
    932     void);
    933 
    934 void
    935 AcpiDmEmitExternals (
    936     void);
    937 
    938 void
    939 AcpiDmEmitExternal (
    940     ACPI_PARSE_OBJECT       *NameOp,
    941     ACPI_PARSE_OBJECT       *TypeOp);
    942 
    943 void
    944 AcpiDmUnresolvedWarning (
    945     UINT8                   Type);
    946 
    947 void
    948 AcpiDmGetExternalsFromFile (
    949     void);
    950 
    951 void
    952 AcpiDmMarkExternalConflict (
    953     ACPI_NAMESPACE_NODE     *Node);
    954 
    955 
    956 /*
    957  * dmresrc
    958  */
    959 void
    960 AcpiDmDumpInteger8 (
    961     UINT8                   Value,
    962     const char              *Name);
    963 
    964 void
    965 AcpiDmDumpInteger16 (
    966     UINT16                  Value,
    967     const char              *Name);
    968 
    969 void
    970 AcpiDmDumpInteger32 (
    971     UINT32                  Value,
    972     const char              *Name);
    973 
    974 void
    975 AcpiDmDumpInteger64 (
    976     UINT64                  Value,
    977     const char              *Name);
    978 
    979 void
    980 AcpiDmResourceTemplate (
    981     ACPI_OP_WALK_INFO       *Info,
    982     ACPI_PARSE_OBJECT       *Op,
    983     UINT8                   *ByteData,
    984     UINT32                  ByteCount);
    985 
    986 ACPI_STATUS
    987 AcpiDmIsResourceTemplate (
    988     ACPI_WALK_STATE         *WalkState,
    989     ACPI_PARSE_OBJECT       *Op);
    990 
    991 void
    992 AcpiDmBitList (
    993     UINT16                  Mask);
    994 
    995 void
    996 AcpiDmDescriptorName (
    997     void);
    998 
    999 
   1000 /*
   1001  * dmresrcl
   1002  */
   1003 void
   1004 AcpiDmWordDescriptor (
   1005     ACPI_OP_WALK_INFO       *Info,
   1006     AML_RESOURCE            *Resource,
   1007     UINT32                  Length,
   1008     UINT32                  Level);
   1009 
   1010 void
   1011 AcpiDmDwordDescriptor (
   1012     ACPI_OP_WALK_INFO       *Info,
   1013     AML_RESOURCE            *Resource,
   1014     UINT32                  Length,
   1015     UINT32                  Level);
   1016 
   1017 void
   1018 AcpiDmExtendedDescriptor (
   1019     ACPI_OP_WALK_INFO       *Info,
   1020     AML_RESOURCE            *Resource,
   1021     UINT32                  Length,
   1022     UINT32                  Level);
   1023 
   1024 void
   1025 AcpiDmQwordDescriptor (
   1026     ACPI_OP_WALK_INFO       *Info,
   1027     AML_RESOURCE            *Resource,
   1028     UINT32                  Length,
   1029     UINT32                  Level);
   1030 
   1031 void
   1032 AcpiDmMemory24Descriptor (
   1033     ACPI_OP_WALK_INFO       *Info,
   1034     AML_RESOURCE            *Resource,
   1035     UINT32                  Length,
   1036     UINT32                  Level);
   1037 
   1038 void
   1039 AcpiDmMemory32Descriptor (
   1040     ACPI_OP_WALK_INFO       *Info,
   1041     AML_RESOURCE            *Resource,
   1042     UINT32                  Length,
   1043     UINT32                  Level);
   1044 
   1045 void
   1046 AcpiDmFixedMemory32Descriptor (
   1047     ACPI_OP_WALK_INFO       *Info,
   1048     AML_RESOURCE            *Resource,
   1049     UINT32                  Length,
   1050     UINT32                  Level);
   1051 
   1052 void
   1053 AcpiDmGenericRegisterDescriptor (
   1054     ACPI_OP_WALK_INFO       *Info,
   1055     AML_RESOURCE            *Resource,
   1056     UINT32                  Length,
   1057     UINT32                  Level);
   1058 
   1059 void
   1060 AcpiDmInterruptDescriptor (
   1061     ACPI_OP_WALK_INFO       *Info,
   1062     AML_RESOURCE            *Resource,
   1063     UINT32                  Length,
   1064     UINT32                  Level);
   1065 
   1066 void
   1067 AcpiDmVendorLargeDescriptor (
   1068     ACPI_OP_WALK_INFO       *Info,
   1069     AML_RESOURCE            *Resource,
   1070     UINT32                  Length,
   1071     UINT32                  Level);
   1072 
   1073 void
   1074 AcpiDmGpioDescriptor (
   1075     ACPI_OP_WALK_INFO       *Info,
   1076     AML_RESOURCE            *Resource,
   1077     UINT32                  Length,
   1078     UINT32                  Level);
   1079 
   1080 void
   1081 AcpiDmPinFunctionDescriptor (
   1082     ACPI_OP_WALK_INFO       *Info,
   1083     AML_RESOURCE            *Resource,
   1084     UINT32                  Length,
   1085     UINT32                  Level);
   1086 
   1087 void
   1088 AcpiDmPinConfigDescriptor (
   1089     ACPI_OP_WALK_INFO       *Info,
   1090     AML_RESOURCE            *Resource,
   1091     UINT32                  Length,
   1092     UINT32                  Level);
   1093 
   1094 void
   1095 AcpiDmPinGroupDescriptor (
   1096     ACPI_OP_WALK_INFO       *Info,
   1097     AML_RESOURCE            *Resource,
   1098     UINT32                  Length,
   1099     UINT32                  Level);
   1100 
   1101 void
   1102 AcpiDmPinGroupFunctionDescriptor (
   1103     ACPI_OP_WALK_INFO       *Info,
   1104     AML_RESOURCE            *Resource,
   1105     UINT32                  Length,
   1106     UINT32                  Level);
   1107 
   1108 void
   1109 AcpiDmPinGroupConfigDescriptor (
   1110     ACPI_OP_WALK_INFO       *Info,
   1111     AML_RESOURCE            *Resource,
   1112     UINT32                  Length,
   1113     UINT32                  Level);
   1114 
   1115 void
   1116 AcpiDmSerialBusDescriptor (
   1117     ACPI_OP_WALK_INFO       *Info,
   1118     AML_RESOURCE            *Resource,
   1119     UINT32                  Length,
   1120     UINT32                  Level);
   1121 
   1122 void
   1123 AcpiDmVendorCommon (
   1124     const char              *Name,
   1125     UINT8                   *ByteData,
   1126     UINT32                  Length,
   1127     UINT32                  Level);
   1128 
   1129 
   1130 /*
   1131  * dmresrcs
   1132  */
   1133 void
   1134 AcpiDmIrqDescriptor (
   1135     ACPI_OP_WALK_INFO       *Info,
   1136     AML_RESOURCE            *Resource,
   1137     UINT32                  Length,
   1138     UINT32                  Level);
   1139 
   1140 void
   1141 AcpiDmDmaDescriptor (
   1142     ACPI_OP_WALK_INFO       *Info,
   1143     AML_RESOURCE            *Resource,
   1144     UINT32                  Length,
   1145     UINT32                  Level);
   1146 
   1147 void
   1148 AcpiDmFixedDmaDescriptor (
   1149     ACPI_OP_WALK_INFO       *Info,
   1150     AML_RESOURCE            *Resource,
   1151     UINT32                  Length,
   1152     UINT32                  Level);
   1153 
   1154 void
   1155 AcpiDmIoDescriptor (
   1156     ACPI_OP_WALK_INFO       *Info,
   1157     AML_RESOURCE            *Resource,
   1158     UINT32                  Length,
   1159     UINT32                  Level);
   1160 
   1161 void
   1162 AcpiDmFixedIoDescriptor (
   1163     ACPI_OP_WALK_INFO       *Info,
   1164     AML_RESOURCE            *Resource,
   1165     UINT32                  Length,
   1166     UINT32                  Level);
   1167 
   1168 void
   1169 AcpiDmStartDependentDescriptor (
   1170     ACPI_OP_WALK_INFO       *Info,
   1171     AML_RESOURCE            *Resource,
   1172     UINT32                  Length,
   1173     UINT32                  Level);
   1174 
   1175 void
   1176 AcpiDmEndDependentDescriptor (
   1177     ACPI_OP_WALK_INFO       *Info,
   1178     AML_RESOURCE            *Resource,
   1179     UINT32                  Length,
   1180     UINT32                  Level);
   1181 
   1182 void
   1183 AcpiDmVendorSmallDescriptor (
   1184     ACPI_OP_WALK_INFO       *Info,
   1185     AML_RESOURCE            *Resource,
   1186     UINT32                  Length,
   1187     UINT32                  Level);
   1188 
   1189 
   1190 /*
   1191  * dmutils
   1192  */
   1193 void
   1194 AcpiDmDecodeAttribute (
   1195     UINT8                   Attribute);
   1196 
   1197 void
   1198 AcpiDmIndent (
   1199     UINT32                  Level);
   1200 
   1201 BOOLEAN
   1202 AcpiDmCommaIfListMember (
   1203     ACPI_PARSE_OBJECT       *Op);
   1204 
   1205 void
   1206 AcpiDmCommaIfFieldMember (
   1207     ACPI_PARSE_OBJECT       *Op);
   1208 
   1209 
   1210 /*
   1211  * dmrestag
   1212  */
   1213 void
   1214 AcpiDmFindResources (
   1215     ACPI_PARSE_OBJECT       *Root);
   1216 
   1217 void
   1218 AcpiDmCheckResourceReference (
   1219     ACPI_PARSE_OBJECT       *Op,
   1220     ACPI_WALK_STATE         *WalkState);
   1221 
   1222 
   1223 /*
   1224  * dmcstyle
   1225  */
   1226 BOOLEAN
   1227 AcpiDmCheckForSymbolicOpcode (
   1228     ACPI_PARSE_OBJECT       *Op,
   1229     ACPI_OP_WALK_INFO       *Info);
   1230 
   1231 void
   1232 AcpiDmCloseOperator (
   1233     ACPI_PARSE_OBJECT       *Op);
   1234 
   1235 
   1236 /*
   1237  * dmtables
   1238  */
   1239 ACPI_STATUS
   1240 AcpiDmProcessSwitch (
   1241     ACPI_PARSE_OBJECT       *Op);
   1242 
   1243 void
   1244 AcpiDmClearTempList(
   1245     void);
   1246 
   1247 /*
   1248  * dmtables
   1249  */
   1250 void
   1251 AdDisassemblerHeader (
   1252     char                    *Filename,
   1253     UINT8                   TableType);
   1254 
   1255 #define ACPI_IS_AML_TABLE   0
   1256 #define ACPI_IS_DATA_TABLE  1
   1257 
   1258 
   1259 /*
   1260  * adisasm
   1261  */
   1262 ACPI_STATUS
   1263 AdAmlDisassemble (
   1264     BOOLEAN                 OutToFile,
   1265     char                    *Filename,
   1266     char                    *Prefix,
   1267     char                    **OutFilename);
   1268 
   1269 ACPI_STATUS
   1270 AdGetLocalTables (
   1271     void);
   1272 
   1273 ACPI_STATUS
   1274 AdParseTable (
   1275     ACPI_TABLE_HEADER       *Table,
   1276     ACPI_OWNER_ID           *OwnerId,
   1277     BOOLEAN                 LoadTable,
   1278     BOOLEAN                 External);
   1279 
   1280 ACPI_STATUS
   1281 AdDisplayTables (
   1282     char                    *Filename,
   1283     ACPI_TABLE_HEADER       *Table);
   1284 
   1285 ACPI_STATUS
   1286 AdDisplayStatistics (
   1287     void);
   1288 
   1289 
   1290 /*
   1291  * dmwalk
   1292  */
   1293 UINT32
   1294 AcpiDmBlockType (
   1295     ACPI_PARSE_OBJECT       *Op);
   1296 
   1297 
   1298 #endif  /* __ACDISASM_H__ */
   1299