Home | History | Annotate | Line # | Download | only in include
acdisasm.h revision 1.5
      1 /******************************************************************************
      2  *
      3  * Name: acdisasm.h - AML disassembler
      4  *
      5  *****************************************************************************/
      6 
      7 /*
      8  * Copyright (C) 2000 - 2013, 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 const 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_UINT8,
    103     ACPI_DMT_UINT16,
    104     ACPI_DMT_UINT24,
    105     ACPI_DMT_UINT32,
    106     ACPI_DMT_UINT40,
    107     ACPI_DMT_UINT48,
    108     ACPI_DMT_UINT56,
    109     ACPI_DMT_UINT64,
    110     ACPI_DMT_BUF7,
    111     ACPI_DMT_BUF10,
    112     ACPI_DMT_BUF16,
    113     ACPI_DMT_BUF128,
    114     ACPI_DMT_SIG,
    115     ACPI_DMT_STRING,
    116     ACPI_DMT_NAME4,
    117     ACPI_DMT_NAME6,
    118     ACPI_DMT_NAME8,
    119 
    120     /* Types that are decoded to strings and miscellaneous */
    121 
    122     ACPI_DMT_ACCWIDTH,
    123     ACPI_DMT_CHKSUM,
    124     ACPI_DMT_GAS,
    125     ACPI_DMT_SPACEID,
    126     ACPI_DMT_UNICODE,
    127     ACPI_DMT_UUID,
    128 
    129     /* Types used only for the Data Table Compiler */
    130 
    131     ACPI_DMT_BUFFER,
    132     ACPI_DMT_DEVICE_PATH,
    133     ACPI_DMT_LABEL,
    134     ACPI_DMT_PCI_PATH,
    135 
    136     /* Types that are specific to particular ACPI tables */
    137 
    138     ACPI_DMT_ASF,
    139     ACPI_DMT_DMAR,
    140     ACPI_DMT_EINJACT,
    141     ACPI_DMT_EINJINST,
    142     ACPI_DMT_ERSTACT,
    143     ACPI_DMT_ERSTINST,
    144     ACPI_DMT_FADTPM,
    145     ACPI_DMT_HEST,
    146     ACPI_DMT_HESTNTFY,
    147     ACPI_DMT_HESTNTYP,
    148     ACPI_DMT_IVRS,
    149     ACPI_DMT_MADT,
    150     ACPI_DMT_PCCT,
    151     ACPI_DMT_PMTT,
    152     ACPI_DMT_SLIC,
    153     ACPI_DMT_SRAT,
    154 
    155     /* Special opcodes */
    156 
    157     ACPI_DMT_EXTRA_TEXT,
    158     ACPI_DMT_EXIT
    159 
    160 } ACPI_ENTRY_TYPES;
    161 
    162 typedef
    163 void (*ACPI_DMTABLE_HANDLER) (
    164     ACPI_TABLE_HEADER       *Table);
    165 
    166 typedef
    167 ACPI_STATUS (*ACPI_CMTABLE_HANDLER) (
    168     void                    **PFieldList);
    169 
    170 typedef struct acpi_dmtable_data
    171 {
    172     char                    *Signature;
    173     ACPI_DMTABLE_INFO       *TableInfo;
    174     ACPI_DMTABLE_HANDLER    TableHandler;
    175     ACPI_CMTABLE_HANDLER    CmTableHandler;
    176     const unsigned char     *Template;
    177     char                    *Name;
    178 
    179 } ACPI_DMTABLE_DATA;
    180 
    181 
    182 typedef struct acpi_op_walk_info
    183 {
    184     UINT32                  Level;
    185     UINT32                  LastLevel;
    186     UINT32                  Count;
    187     UINT32                  BitOffset;
    188     UINT32                  Flags;
    189     ACPI_WALK_STATE         *WalkState;
    190 
    191 } ACPI_OP_WALK_INFO;
    192 
    193 /*
    194  * TBD - another copy of this is in asltypes.h, fix
    195  */
    196 #ifndef ASL_WALK_CALLBACK_DEFINED
    197 typedef
    198 ACPI_STATUS (*ASL_WALK_CALLBACK) (
    199     ACPI_PARSE_OBJECT           *Op,
    200     UINT32                      Level,
    201     void                        *Context);
    202 #define ASL_WALK_CALLBACK_DEFINED
    203 #endif
    204 
    205 typedef
    206 void (*ACPI_RESOURCE_HANDLER) (
    207     AML_RESOURCE            *Resource,
    208     UINT32                  Length,
    209     UINT32                  Level);
    210 
    211 typedef struct acpi_resource_tag
    212 {
    213     UINT32                  BitIndex;
    214     char                    *Tag;
    215 
    216 } ACPI_RESOURCE_TAG;
    217 
    218 /* Strings used for decoding flags to ASL keywords */
    219 
    220 extern const char               *AcpiGbl_WordDecode[];
    221 extern const char               *AcpiGbl_IrqDecode[];
    222 extern const char               *AcpiGbl_LockRule[];
    223 extern const char               *AcpiGbl_AccessTypes[];
    224 extern const char               *AcpiGbl_UpdateRules[];
    225 extern const char               *AcpiGbl_MatchOps[];
    226 
    227 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf0[];
    228 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf1[];
    229 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf1a[];
    230 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf2[];
    231 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf2a[];
    232 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf3[];
    233 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf4[];
    234 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsfHdr[];
    235 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoBoot[];
    236 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoBert[];
    237 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoBgrt[];
    238 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoCpep[];
    239 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoCpep0[];
    240 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoCsrt0[];
    241 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoCsrt1[];
    242 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoCsrt2[];
    243 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDbg2[];
    244 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDbg2Device[];
    245 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDbg2Addr[];
    246 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDbg2Size[];
    247 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDbg2Name[];
    248 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDbg2OemData[];
    249 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDbgp[];
    250 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmar[];
    251 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmarHdr[];
    252 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmarScope[];
    253 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmar0[];
    254 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmar1[];
    255 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmar2[];
    256 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmar3[];
    257 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDrtm[];
    258 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoEcdt[];
    259 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoEinj[];
    260 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoEinj0[];
    261 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoErst[];
    262 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoErst0[];
    263 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFacs[];
    264 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFadt1[];
    265 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFadt2[];
    266 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFadt3[];
    267 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFadt5[];
    268 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFpdt[];
    269 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFpdtHdr[];
    270 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFpdt0[];
    271 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFpdt1[];
    272 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoGas[];
    273 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoGtdt[];
    274 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHeader[];
    275 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest[];
    276 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest0[];
    277 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest1[];
    278 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest2[];
    279 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest6[];
    280 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest7[];
    281 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest8[];
    282 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest9[];
    283 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHestNotify[];
    284 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHestBank[];
    285 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHpet[];
    286 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs[];
    287 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs0[];
    288 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs1[];
    289 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs4[];
    290 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs8a[];
    291 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs8b[];
    292 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs8c[];
    293 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrsHdr[];
    294 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt[];
    295 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt0[];
    296 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt1[];
    297 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt2[];
    298 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt3[];
    299 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt4[];
    300 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt5[];
    301 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt6[];
    302 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt7[];
    303 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt8[];
    304 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt9[];
    305 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt10[];
    306 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt11[];
    307 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt12[];
    308 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadtHdr[];
    309 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMcfg[];
    310 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMcfg0[];
    311 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMchi[];
    312 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMpst[];
    313 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMpst0[];
    314 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMpst0A[];
    315 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMpst0B[];
    316 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMpst1[];
    317 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMpst2[];
    318 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMsct[];
    319 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMsct0[];
    320 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMtmr[];
    321 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMtmr0[];
    322 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPmtt[];
    323 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPmtt0[];
    324 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPmtt1[];
    325 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPmtt1a[];
    326 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPmtt2[];
    327 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPmttHdr[];
    328 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPcct[];
    329 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPcctHdr[];
    330 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoPcct0[];
    331 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoRsdp1[];
    332 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoRsdp2[];
    333 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoS3pt[];
    334 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoS3ptHdr[];
    335 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoS3pt0[];
    336 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoS3pt1[];
    337 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSbst[];
    338 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSlicHdr[];
    339 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSlic0[];
    340 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSlic1[];
    341 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSlit[];
    342 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSpcr[];
    343 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSpmi[];
    344 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSrat[];
    345 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSratHdr[];
    346 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSrat0[];
    347 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSrat1[];
    348 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSrat2[];
    349 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoTcpa[];
    350 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoTpm2[];
    351 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoUefi[];
    352 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoVrtc[];
    353 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoVrtc0[];
    354 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoWaet[];
    355 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoWdat[];
    356 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoWdat0[];
    357 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoWddt[];
    358 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoWdrt[];
    359 
    360 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoGeneric[][2];
    361 
    362 
    363 /*
    364  * dmtable
    365  */
    366 extern ACPI_DMTABLE_DATA        AcpiDmTableData[];
    367 
    368 UINT8
    369 AcpiDmGenerateChecksum (
    370     void                    *Table,
    371     UINT32                  Length,
    372     UINT8                   OriginalChecksum);
    373 
    374 ACPI_DMTABLE_DATA *
    375 AcpiDmGetTableData (
    376     char                    *Signature);
    377 
    378 void
    379 AcpiDmDumpDataTable (
    380     ACPI_TABLE_HEADER       *Table);
    381 
    382 ACPI_STATUS
    383 AcpiDmDumpTable (
    384     UINT32                  TableLength,
    385     UINT32                  TableOffset,
    386     void                    *Table,
    387     UINT32                  SubTableLength,
    388     ACPI_DMTABLE_INFO        *Info);
    389 
    390 void
    391 AcpiDmLineHeader (
    392     UINT32                  Offset,
    393     UINT32                  ByteLength,
    394     char                    *Name);
    395 
    396 void
    397 AcpiDmLineHeader2 (
    398     UINT32                  Offset,
    399     UINT32                  ByteLength,
    400     char                    *Name,
    401     UINT32                  Value);
    402 
    403 
    404 /*
    405  * dmtbdump
    406  */
    407 void
    408 AcpiDmDumpAsf (
    409     ACPI_TABLE_HEADER       *Table);
    410 
    411 void
    412 AcpiDmDumpCpep (
    413     ACPI_TABLE_HEADER       *Table);
    414 
    415 void
    416 AcpiDmDumpCsrt (
    417     ACPI_TABLE_HEADER       *Table);
    418 
    419 void
    420 AcpiDmDumpDbg2 (
    421     ACPI_TABLE_HEADER       *Table);
    422 
    423 void
    424 AcpiDmDumpDmar (
    425     ACPI_TABLE_HEADER       *Table);
    426 
    427 void
    428 AcpiDmDumpEinj (
    429     ACPI_TABLE_HEADER       *Table);
    430 
    431 void
    432 AcpiDmDumpErst (
    433     ACPI_TABLE_HEADER       *Table);
    434 
    435 void
    436 AcpiDmDumpFadt (
    437     ACPI_TABLE_HEADER       *Table);
    438 
    439 void
    440 AcpiDmDumpFpdt (
    441     ACPI_TABLE_HEADER       *Table);
    442 
    443 void
    444 AcpiDmDumpHest (
    445     ACPI_TABLE_HEADER       *Table);
    446 
    447 void
    448 AcpiDmDumpIvrs (
    449     ACPI_TABLE_HEADER       *Table);
    450 
    451 void
    452 AcpiDmDumpMadt (
    453     ACPI_TABLE_HEADER       *Table);
    454 
    455 void
    456 AcpiDmDumpMcfg (
    457     ACPI_TABLE_HEADER       *Table);
    458 
    459 void
    460 AcpiDmDumpMpst (
    461     ACPI_TABLE_HEADER       *Table);
    462 
    463 void
    464 AcpiDmDumpMsct (
    465     ACPI_TABLE_HEADER       *Table);
    466 
    467 void
    468 AcpiDmDumpMtmr (
    469     ACPI_TABLE_HEADER       *Table);
    470 
    471 void
    472 AcpiDmDumpPcct (
    473     ACPI_TABLE_HEADER       *Table);
    474 
    475 void
    476 AcpiDmDumpPmtt (
    477     ACPI_TABLE_HEADER       *Table);
    478 
    479 UINT32
    480 AcpiDmDumpRsdp (
    481     ACPI_TABLE_HEADER       *Table);
    482 
    483 void
    484 AcpiDmDumpRsdt (
    485     ACPI_TABLE_HEADER       *Table);
    486 
    487 UINT32
    488 AcpiDmDumpS3pt (
    489     ACPI_TABLE_HEADER       *Table);
    490 
    491 void
    492 AcpiDmDumpSlic (
    493     ACPI_TABLE_HEADER       *Table);
    494 
    495 void
    496 AcpiDmDumpSlit (
    497     ACPI_TABLE_HEADER       *Table);
    498 
    499 void
    500 AcpiDmDumpSrat (
    501     ACPI_TABLE_HEADER       *Table);
    502 
    503 void
    504 AcpiDmDumpVrtc (
    505     ACPI_TABLE_HEADER       *Table);
    506 
    507 void
    508 AcpiDmDumpWdat (
    509     ACPI_TABLE_HEADER       *Table);
    510 
    511 void
    512 AcpiDmDumpXsdt (
    513     ACPI_TABLE_HEADER       *Table);
    514 
    515 
    516 /*
    517  * dmwalk
    518  */
    519 void
    520 AcpiDmDisassemble (
    521     ACPI_WALK_STATE         *WalkState,
    522     ACPI_PARSE_OBJECT       *Origin,
    523     UINT32                  NumOpcodes);
    524 
    525 void
    526 AcpiDmWalkParseTree (
    527     ACPI_PARSE_OBJECT       *Op,
    528     ASL_WALK_CALLBACK       DescendingCallback,
    529     ASL_WALK_CALLBACK       AscendingCallback,
    530     void                    *Context);
    531 
    532 
    533 /*
    534  * dmopcode
    535  */
    536 void
    537 AcpiDmDisassembleOneOp (
    538     ACPI_WALK_STATE         *WalkState,
    539     ACPI_OP_WALK_INFO       *Info,
    540     ACPI_PARSE_OBJECT       *Op);
    541 
    542 void
    543 AcpiDmDecodeInternalObject (
    544     ACPI_OPERAND_OBJECT     *ObjDesc);
    545 
    546 UINT32
    547 AcpiDmListType (
    548     ACPI_PARSE_OBJECT       *Op);
    549 
    550 void
    551 AcpiDmMethodFlags (
    552     ACPI_PARSE_OBJECT       *Op);
    553 
    554 void
    555 AcpiDmPredefinedDescription (
    556     ACPI_PARSE_OBJECT       *Op);
    557 
    558 void
    559 AcpiDmFieldPredefinedDescription (
    560     ACPI_PARSE_OBJECT       *Op);
    561 
    562 void
    563 AcpiDmFieldFlags (
    564     ACPI_PARSE_OBJECT       *Op);
    565 
    566 void
    567 AcpiDmAddressSpace (
    568     UINT8                   SpaceId);
    569 
    570 void
    571 AcpiDmRegionFlags (
    572     ACPI_PARSE_OBJECT       *Op);
    573 
    574 void
    575 AcpiDmMatchOp (
    576     ACPI_PARSE_OBJECT       *Op);
    577 
    578 
    579 /*
    580  * dmnames
    581  */
    582 UINT32
    583 AcpiDmDumpName (
    584     UINT32                  Name);
    585 
    586 ACPI_STATUS
    587 AcpiPsDisplayObjectPathname (
    588     ACPI_WALK_STATE         *WalkState,
    589     ACPI_PARSE_OBJECT       *Op);
    590 
    591 void
    592 AcpiDmNamestring (
    593     char                    *Name);
    594 
    595 
    596 /*
    597  * dmobject
    598  */
    599 void
    600 AcpiDmDisplayInternalObject (
    601     ACPI_OPERAND_OBJECT     *ObjDesc,
    602     ACPI_WALK_STATE         *WalkState);
    603 
    604 void
    605 AcpiDmDisplayArguments (
    606     ACPI_WALK_STATE         *WalkState);
    607 
    608 void
    609 AcpiDmDisplayLocals (
    610     ACPI_WALK_STATE         *WalkState);
    611 
    612 void
    613 AcpiDmDumpMethodInfo (
    614     ACPI_STATUS             Status,
    615     ACPI_WALK_STATE         *WalkState,
    616     ACPI_PARSE_OBJECT       *Op);
    617 
    618 
    619 /*
    620  * dmbuffer
    621  */
    622 void
    623 AcpiDmDisasmByteList (
    624     UINT32                  Level,
    625     UINT8                   *ByteData,
    626     UINT32                  ByteCount);
    627 
    628 void
    629 AcpiDmByteList (
    630     ACPI_OP_WALK_INFO       *Info,
    631     ACPI_PARSE_OBJECT       *Op);
    632 
    633 void
    634 AcpiDmIsEisaId (
    635     ACPI_PARSE_OBJECT       *Op);
    636 
    637 void
    638 AcpiDmEisaId (
    639     UINT32                  EncodedId);
    640 
    641 BOOLEAN
    642 AcpiDmIsUnicodeBuffer (
    643     ACPI_PARSE_OBJECT       *Op);
    644 
    645 BOOLEAN
    646 AcpiDmIsStringBuffer (
    647     ACPI_PARSE_OBJECT       *Op);
    648 
    649 BOOLEAN
    650 AcpiDmIsPldBuffer (
    651     ACPI_PARSE_OBJECT       *Op);
    652 
    653 
    654 /*
    655  * dmdeferred
    656  */
    657 ACPI_STATUS
    658 AcpiDmParseDeferredOps (
    659     ACPI_PARSE_OBJECT       *Root);
    660 
    661 
    662 /*
    663  * dmextern
    664  */
    665 ACPI_STATUS
    666 AcpiDmAddToExternalFileList (
    667     char                    *PathList);
    668 
    669 void
    670 AcpiDmClearExternalFileList (
    671     void);
    672 
    673 void
    674 AcpiDmAddOpToExternalList (
    675     ACPI_PARSE_OBJECT       *Op,
    676     char                    *Path,
    677     UINT8                   Type,
    678     UINT32                  Value,
    679     UINT16                  Flags);
    680 
    681 void
    682 AcpiDmAddNodeToExternalList (
    683     ACPI_NAMESPACE_NODE     *Node,
    684     UINT8                   Type,
    685     UINT32                  Value,
    686     UINT16                  Flags);
    687 
    688 void
    689 AcpiDmAddExternalsToNamespace (
    690     void);
    691 
    692 UINT32
    693 AcpiDmGetExternalMethodCount (
    694     void);
    695 
    696 void
    697 AcpiDmClearExternalList (
    698     void);
    699 
    700 void
    701 AcpiDmEmitExternals (
    702     void);
    703 
    704 void
    705 AcpiDmUnresolvedWarning (
    706     UINT8                   Type);
    707 
    708 void
    709 AcpiDmGetExternalsFromFile (
    710     void);
    711 
    712 /*
    713  * dmresrc
    714  */
    715 void
    716 AcpiDmDumpInteger8 (
    717     UINT8                   Value,
    718     const char              *Name);
    719 
    720 void
    721 AcpiDmDumpInteger16 (
    722     UINT16                  Value,
    723     const char              *Name);
    724 
    725 void
    726 AcpiDmDumpInteger32 (
    727     UINT32                  Value,
    728     const char              *Name);
    729 
    730 void
    731 AcpiDmDumpInteger64 (
    732     UINT64                  Value,
    733     const char              *Name);
    734 
    735 void
    736 AcpiDmResourceTemplate (
    737     ACPI_OP_WALK_INFO       *Info,
    738     ACPI_PARSE_OBJECT       *Op,
    739     UINT8                   *ByteData,
    740     UINT32                  ByteCount);
    741 
    742 ACPI_STATUS
    743 AcpiDmIsResourceTemplate (
    744     ACPI_WALK_STATE         *WalkState,
    745     ACPI_PARSE_OBJECT       *Op);
    746 
    747 void
    748 AcpiDmBitList (
    749     UINT16                  Mask);
    750 
    751 void
    752 AcpiDmDescriptorName (
    753     void);
    754 
    755 
    756 /*
    757  * dmresrcl
    758  */
    759 void
    760 AcpiDmWordDescriptor (
    761     AML_RESOURCE            *Resource,
    762     UINT32                  Length,
    763     UINT32                  Level);
    764 
    765 void
    766 AcpiDmDwordDescriptor (
    767     AML_RESOURCE            *Resource,
    768     UINT32                  Length,
    769     UINT32                  Level);
    770 
    771 void
    772 AcpiDmExtendedDescriptor (
    773     AML_RESOURCE            *Resource,
    774     UINT32                  Length,
    775     UINT32                  Level);
    776 
    777 void
    778 AcpiDmQwordDescriptor (
    779     AML_RESOURCE            *Resource,
    780     UINT32                  Length,
    781     UINT32                  Level);
    782 
    783 void
    784 AcpiDmMemory24Descriptor (
    785     AML_RESOURCE            *Resource,
    786     UINT32                  Length,
    787     UINT32                  Level);
    788 
    789 void
    790 AcpiDmMemory32Descriptor (
    791     AML_RESOURCE            *Resource,
    792     UINT32                  Length,
    793     UINT32                  Level);
    794 
    795 void
    796 AcpiDmFixedMemory32Descriptor (
    797     AML_RESOURCE            *Resource,
    798     UINT32                  Length,
    799     UINT32                  Level);
    800 
    801 void
    802 AcpiDmGenericRegisterDescriptor (
    803     AML_RESOURCE            *Resource,
    804     UINT32                  Length,
    805     UINT32                  Level);
    806 
    807 void
    808 AcpiDmInterruptDescriptor (
    809     AML_RESOURCE            *Resource,
    810     UINT32                  Length,
    811     UINT32                  Level);
    812 
    813 void
    814 AcpiDmVendorLargeDescriptor (
    815     AML_RESOURCE            *Resource,
    816     UINT32                  Length,
    817     UINT32                  Level);
    818 
    819 void
    820 AcpiDmGpioDescriptor (
    821     AML_RESOURCE            *Resource,
    822     UINT32                  Length,
    823     UINT32                  Level);
    824 
    825 void
    826 AcpiDmSerialBusDescriptor (
    827     AML_RESOURCE            *Resource,
    828     UINT32                  Length,
    829     UINT32                  Level);
    830 
    831 void
    832 AcpiDmVendorCommon (
    833     const char              *Name,
    834     UINT8                   *ByteData,
    835     UINT32                  Length,
    836     UINT32                  Level);
    837 
    838 
    839 /*
    840  * dmresrcs
    841  */
    842 void
    843 AcpiDmIrqDescriptor (
    844     AML_RESOURCE            *Resource,
    845     UINT32                  Length,
    846     UINT32                  Level);
    847 
    848 void
    849 AcpiDmDmaDescriptor (
    850     AML_RESOURCE            *Resource,
    851     UINT32                  Length,
    852     UINT32                  Level);
    853 
    854 void
    855 AcpiDmFixedDmaDescriptor (
    856     AML_RESOURCE            *Resource,
    857     UINT32                  Length,
    858     UINT32                  Level);
    859 
    860 void
    861 AcpiDmIoDescriptor (
    862     AML_RESOURCE            *Resource,
    863     UINT32                  Length,
    864     UINT32                  Level);
    865 
    866 void
    867 AcpiDmFixedIoDescriptor (
    868     AML_RESOURCE            *Resource,
    869     UINT32                  Length,
    870     UINT32                  Level);
    871 
    872 void
    873 AcpiDmStartDependentDescriptor (
    874     AML_RESOURCE            *Resource,
    875     UINT32                  Length,
    876     UINT32                  Level);
    877 
    878 void
    879 AcpiDmEndDependentDescriptor (
    880     AML_RESOURCE            *Resource,
    881     UINT32                  Length,
    882     UINT32                  Level);
    883 
    884 void
    885 AcpiDmVendorSmallDescriptor (
    886     AML_RESOURCE            *Resource,
    887     UINT32                  Length,
    888     UINT32                  Level);
    889 
    890 
    891 /*
    892  * dmutils
    893  */
    894 void
    895 AcpiDmDecodeAttribute (
    896     UINT8                   Attribute);
    897 
    898 void
    899 AcpiDmIndent (
    900     UINT32                  Level);
    901 
    902 BOOLEAN
    903 AcpiDmCommaIfListMember (
    904     ACPI_PARSE_OBJECT       *Op);
    905 
    906 void
    907 AcpiDmCommaIfFieldMember (
    908     ACPI_PARSE_OBJECT       *Op);
    909 
    910 
    911 /*
    912  * dmrestag
    913  */
    914 void
    915 AcpiDmFindResources (
    916     ACPI_PARSE_OBJECT       *Root);
    917 
    918 void
    919 AcpiDmCheckResourceReference (
    920     ACPI_PARSE_OBJECT       *Op,
    921     ACPI_WALK_STATE         *WalkState);
    922 
    923 
    924 /*
    925  * acdisasm
    926  */
    927 void
    928 AdDisassemblerHeader (
    929     char                    *Filename);
    930 
    931 
    932 #endif  /* __ACDISASM_H__ */
    933