Home | History | Annotate | Line # | Download | only in include
acdisasm.h revision 1.4
      1 /******************************************************************************
      2  *
      3  * Name: acdisasm.h - AML disassembler
      4  *
      5  *****************************************************************************/
      6 
      7 /*
      8  * Copyright (C) 2000 - 2011, 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     UINT8                       Offset;
     67     char                        *Name;
     68     UINT8                       Flags;
     69 
     70 } ACPI_DMTABLE_INFO;
     71 
     72 #define DT_LENGTH                       0x01    /* Field is a subtable length */
     73 #define DT_FLAG                         0x02    /* Field is a flag value */
     74 #define DT_NON_ZERO                     0x04    /* Field must be non-zero */
     75 
     76 /* TBD: Not used at this time */
     77 
     78 #define DT_OPTIONAL                     0x08
     79 #define DT_COUNT                        0x10
     80 
     81 /*
     82  * Values for Opcode above.
     83  * Note: 0-7 must not change, used as a flag shift value
     84  */
     85 #define ACPI_DMT_FLAG0                  0
     86 #define ACPI_DMT_FLAG1                  1
     87 #define ACPI_DMT_FLAG2                  2
     88 #define ACPI_DMT_FLAG3                  3
     89 #define ACPI_DMT_FLAG4                  4
     90 #define ACPI_DMT_FLAG5                  5
     91 #define ACPI_DMT_FLAG6                  6
     92 #define ACPI_DMT_FLAG7                  7
     93 #define ACPI_DMT_FLAGS0                 8
     94 #define ACPI_DMT_FLAGS2                 9
     95 #define ACPI_DMT_UINT8                  10
     96 #define ACPI_DMT_UINT16                 11
     97 #define ACPI_DMT_UINT24                 12
     98 #define ACPI_DMT_UINT32                 13
     99 #define ACPI_DMT_UINT56                 14
    100 #define ACPI_DMT_UINT64                 15
    101 #define ACPI_DMT_STRING                 16
    102 #define ACPI_DMT_NAME4                  17
    103 #define ACPI_DMT_NAME6                  18
    104 #define ACPI_DMT_NAME8                  19
    105 #define ACPI_DMT_CHKSUM                 20
    106 #define ACPI_DMT_SPACEID                21
    107 #define ACPI_DMT_GAS                    22
    108 #define ACPI_DMT_ASF                    23
    109 #define ACPI_DMT_DMAR                   24
    110 #define ACPI_DMT_HEST                   25
    111 #define ACPI_DMT_HESTNTFY               26
    112 #define ACPI_DMT_HESTNTYP               27
    113 #define ACPI_DMT_MADT                   28
    114 #define ACPI_DMT_SRAT                   29
    115 #define ACPI_DMT_EXIT                   30
    116 #define ACPI_DMT_SIG                    31
    117 #define ACPI_DMT_FADTPM                 32
    118 #define ACPI_DMT_BUF16                  33
    119 #define ACPI_DMT_IVRS                   34
    120 #define ACPI_DMT_BUFFER                 35
    121 #define ACPI_DMT_PCI_PATH               36
    122 #define ACPI_DMT_EINJACT                37
    123 #define ACPI_DMT_EINJINST               38
    124 #define ACPI_DMT_ERSTACT                39
    125 #define ACPI_DMT_ERSTINST               40
    126 #define ACPI_DMT_ACCWIDTH               41
    127 #define ACPI_DMT_UNICODE                42
    128 #define ACPI_DMT_UUID                   43
    129 #define ACPI_DMT_DEVICE_PATH            44
    130 #define ACPI_DMT_LABEL                  45
    131 #define ACPI_DMT_BUF7                   46
    132 #define ACPI_DMT_BUF128                 47
    133 #define ACPI_DMT_SLIC                   48
    134 
    135 typedef
    136 void (*ACPI_DMTABLE_HANDLER) (
    137     ACPI_TABLE_HEADER       *Table);
    138 
    139 typedef
    140 ACPI_STATUS (*ACPI_CMTABLE_HANDLER) (
    141     void                    **PFieldList);
    142 
    143 typedef struct acpi_dmtable_data
    144 {
    145     char                    *Signature;
    146     ACPI_DMTABLE_INFO       *TableInfo;
    147     ACPI_DMTABLE_HANDLER    TableHandler;
    148     ACPI_CMTABLE_HANDLER    CmTableHandler;
    149     const unsigned char     *Template;
    150     char                    *Name;
    151 
    152 } ACPI_DMTABLE_DATA;
    153 
    154 
    155 typedef struct acpi_op_walk_info
    156 {
    157     UINT32                  Level;
    158     UINT32                  LastLevel;
    159     UINT32                  Count;
    160     UINT32                  BitOffset;
    161     UINT32                  Flags;
    162     ACPI_WALK_STATE         *WalkState;
    163 
    164 } ACPI_OP_WALK_INFO;
    165 
    166 /*
    167  * TBD - another copy of this is in asltypes.h, fix
    168  */
    169 #ifndef ASL_WALK_CALLBACK_DEFINED
    170 typedef
    171 ACPI_STATUS (*ASL_WALK_CALLBACK) (
    172     ACPI_PARSE_OBJECT           *Op,
    173     UINT32                      Level,
    174     void                        *Context);
    175 #define ASL_WALK_CALLBACK_DEFINED
    176 #endif
    177 
    178 
    179 typedef struct acpi_resource_tag
    180 {
    181     UINT32                  BitIndex;
    182     char                    *Tag;
    183 
    184 } ACPI_RESOURCE_TAG;
    185 
    186 /* Strings used for decoding flags to ASL keywords */
    187 
    188 extern const char               *AcpiGbl_WordDecode[];
    189 extern const char               *AcpiGbl_IrqDecode[];
    190 extern const char               *AcpiGbl_LockRule[];
    191 extern const char               *AcpiGbl_AccessTypes[];
    192 extern const char               *AcpiGbl_UpdateRules[];
    193 extern const char               *AcpiGbl_MatchOps[];
    194 
    195 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf0[];
    196 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf1[];
    197 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf1a[];
    198 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf2[];
    199 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf2a[];
    200 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf3[];
    201 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsf4[];
    202 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoAsfHdr[];
    203 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoBoot[];
    204 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoBert[];
    205 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoCpep[];
    206 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoCpep0[];
    207 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDbgp[];
    208 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmar[];
    209 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmarHdr[];
    210 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmarScope[];
    211 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmar0[];
    212 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmar1[];
    213 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmar2[];
    214 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoDmar3[];
    215 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoEcdt[];
    216 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoEinj[];
    217 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoEinj0[];
    218 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoErst[];
    219 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoErst0[];
    220 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFacs[];
    221 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFadt1[];
    222 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFadt2[];
    223 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFadt3[];
    224 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoGas[];
    225 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHeader[];
    226 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest[];
    227 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest0[];
    228 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest1[];
    229 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest2[];
    230 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest6[];
    231 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest7[];
    232 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest8[];
    233 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHest9[];
    234 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHestNotify[];
    235 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHestBank[];
    236 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoHpet[];
    237 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs[];
    238 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs0[];
    239 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs1[];
    240 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs4[];
    241 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs8a[];
    242 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs8b[];
    243 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs8c[];
    244 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrsHdr[];
    245 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt[];
    246 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt0[];
    247 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt1[];
    248 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt2[];
    249 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt3[];
    250 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt4[];
    251 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt5[];
    252 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt6[];
    253 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt7[];
    254 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt8[];
    255 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt9[];
    256 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadt10[];
    257 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMadtHdr[];
    258 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMcfg[];
    259 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMcfg0[];
    260 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMchi[];
    261 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMsct[];
    262 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoMsct0[];
    263 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoRsdp1[];
    264 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoRsdp2[];
    265 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSbst[];
    266 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSlicHdr[];
    267 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSlic0[];
    268 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSlic1[];
    269 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSlit[];
    270 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSpcr[];
    271 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSpmi[];
    272 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSrat[];
    273 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSratHdr[];
    274 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSrat0[];
    275 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSrat1[];
    276 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSrat2[];
    277 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoTcpa[];
    278 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoUefi[];
    279 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoWaet[];
    280 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoWdat[];
    281 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoWdat0[];
    282 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoWddt[];
    283 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoWdrt[];
    284 
    285 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoGeneric[][2];
    286 
    287 
    288 /*
    289  * dmtable
    290  */
    291 extern ACPI_DMTABLE_DATA        AcpiDmTableData[];
    292 
    293 UINT8
    294 AcpiDmGenerateChecksum (
    295     void                    *Table,
    296     UINT32                  Length,
    297     UINT8                   OriginalChecksum);
    298 
    299 ACPI_DMTABLE_DATA *
    300 AcpiDmGetTableData (
    301     char                    *Signature);
    302 
    303 void
    304 AcpiDmDumpDataTable (
    305     ACPI_TABLE_HEADER       *Table);
    306 
    307 ACPI_STATUS
    308 AcpiDmDumpTable (
    309     UINT32                  TableLength,
    310     UINT32                  TableOffset,
    311     void                    *Table,
    312     UINT32                  SubTableLength,
    313     ACPI_DMTABLE_INFO        *Info);
    314 
    315 void
    316 AcpiDmLineHeader (
    317     UINT32                  Offset,
    318     UINT32                  ByteLength,
    319     char                    *Name);
    320 
    321 void
    322 AcpiDmLineHeader2 (
    323     UINT32                  Offset,
    324     UINT32                  ByteLength,
    325     char                    *Name,
    326     UINT32                  Value);
    327 
    328 
    329 /*
    330  * dmtbdump
    331  */
    332 void
    333 AcpiDmDumpAsf (
    334     ACPI_TABLE_HEADER       *Table);
    335 
    336 void
    337 AcpiDmDumpCpep (
    338     ACPI_TABLE_HEADER       *Table);
    339 
    340 void
    341 AcpiDmDumpDmar (
    342     ACPI_TABLE_HEADER       *Table);
    343 
    344 void
    345 AcpiDmDumpEinj (
    346     ACPI_TABLE_HEADER       *Table);
    347 
    348 void
    349 AcpiDmDumpErst (
    350     ACPI_TABLE_HEADER       *Table);
    351 
    352 void
    353 AcpiDmDumpFadt (
    354     ACPI_TABLE_HEADER       *Table);
    355 
    356 void
    357 AcpiDmDumpHest (
    358     ACPI_TABLE_HEADER       *Table);
    359 
    360 void
    361 AcpiDmDumpIvrs (
    362     ACPI_TABLE_HEADER       *Table);
    363 
    364 void
    365 AcpiDmDumpMcfg (
    366     ACPI_TABLE_HEADER       *Table);
    367 
    368 void
    369 AcpiDmDumpMadt (
    370     ACPI_TABLE_HEADER       *Table);
    371 
    372 void
    373 AcpiDmDumpMsct (
    374     ACPI_TABLE_HEADER       *Table);
    375 
    376 UINT32
    377 AcpiDmDumpRsdp (
    378     ACPI_TABLE_HEADER       *Table);
    379 
    380 void
    381 AcpiDmDumpRsdt (
    382     ACPI_TABLE_HEADER       *Table);
    383 
    384 void
    385 AcpiDmDumpSlic (
    386     ACPI_TABLE_HEADER       *Table);
    387 
    388 void
    389 AcpiDmDumpSlit (
    390     ACPI_TABLE_HEADER       *Table);
    391 
    392 void
    393 AcpiDmDumpSrat (
    394     ACPI_TABLE_HEADER       *Table);
    395 
    396 void
    397 AcpiDmDumpWdat (
    398     ACPI_TABLE_HEADER       *Table);
    399 
    400 void
    401 AcpiDmDumpXsdt (
    402     ACPI_TABLE_HEADER       *Table);
    403 
    404 
    405 /*
    406  * dmwalk
    407  */
    408 void
    409 AcpiDmDisassemble (
    410     ACPI_WALK_STATE         *WalkState,
    411     ACPI_PARSE_OBJECT       *Origin,
    412     UINT32                  NumOpcodes);
    413 
    414 void
    415 AcpiDmWalkParseTree (
    416     ACPI_PARSE_OBJECT       *Op,
    417     ASL_WALK_CALLBACK       DescendingCallback,
    418     ASL_WALK_CALLBACK       AscendingCallback,
    419     void                    *Context);
    420 
    421 
    422 /*
    423  * dmopcode
    424  */
    425 void
    426 AcpiDmDisassembleOneOp (
    427     ACPI_WALK_STATE         *WalkState,
    428     ACPI_OP_WALK_INFO       *Info,
    429     ACPI_PARSE_OBJECT       *Op);
    430 
    431 void
    432 AcpiDmDecodeInternalObject (
    433     ACPI_OPERAND_OBJECT     *ObjDesc);
    434 
    435 UINT32
    436 AcpiDmListType (
    437     ACPI_PARSE_OBJECT       *Op);
    438 
    439 void
    440 AcpiDmMethodFlags (
    441     ACPI_PARSE_OBJECT       *Op);
    442 
    443 void
    444 AcpiDmFieldFlags (
    445     ACPI_PARSE_OBJECT       *Op);
    446 
    447 void
    448 AcpiDmAddressSpace (
    449     UINT8                   SpaceId);
    450 
    451 void
    452 AcpiDmRegionFlags (
    453     ACPI_PARSE_OBJECT       *Op);
    454 
    455 void
    456 AcpiDmMatchOp (
    457     ACPI_PARSE_OBJECT       *Op);
    458 
    459 
    460 /*
    461  * dmnames
    462  */
    463 UINT32
    464 AcpiDmDumpName (
    465     UINT32                  Name);
    466 
    467 ACPI_STATUS
    468 AcpiPsDisplayObjectPathname (
    469     ACPI_WALK_STATE         *WalkState,
    470     ACPI_PARSE_OBJECT       *Op);
    471 
    472 void
    473 AcpiDmNamestring (
    474     char                    *Name);
    475 
    476 
    477 /*
    478  * dmobject
    479  */
    480 void
    481 AcpiDmDisplayInternalObject (
    482     ACPI_OPERAND_OBJECT     *ObjDesc,
    483     ACPI_WALK_STATE         *WalkState);
    484 
    485 void
    486 AcpiDmDisplayArguments (
    487     ACPI_WALK_STATE         *WalkState);
    488 
    489 void
    490 AcpiDmDisplayLocals (
    491     ACPI_WALK_STATE         *WalkState);
    492 
    493 void
    494 AcpiDmDumpMethodInfo (
    495     ACPI_STATUS             Status,
    496     ACPI_WALK_STATE         *WalkState,
    497     ACPI_PARSE_OBJECT       *Op);
    498 
    499 
    500 /*
    501  * dmbuffer
    502  */
    503 void
    504 AcpiDmDisasmByteList (
    505     UINT32                  Level,
    506     UINT8                   *ByteData,
    507     UINT32                  ByteCount);
    508 
    509 void
    510 AcpiDmByteList (
    511     ACPI_OP_WALK_INFO       *Info,
    512     ACPI_PARSE_OBJECT       *Op);
    513 
    514 void
    515 AcpiDmIsEisaId (
    516     ACPI_PARSE_OBJECT       *Op);
    517 
    518 void
    519 AcpiDmEisaId (
    520     UINT32                  EncodedId);
    521 
    522 BOOLEAN
    523 AcpiDmIsUnicodeBuffer (
    524     ACPI_PARSE_OBJECT       *Op);
    525 
    526 BOOLEAN
    527 AcpiDmIsStringBuffer (
    528     ACPI_PARSE_OBJECT       *Op);
    529 
    530 
    531 /*
    532  * dmextern
    533  */
    534 
    535 ACPI_STATUS
    536 AcpiDmAddToExternalFileList (
    537     char                    *PathList);
    538 
    539 void
    540 AcpiDmClearExternalFileList (
    541     void);
    542 
    543 void
    544 AcpiDmAddToExternalList (
    545     ACPI_PARSE_OBJECT       *Op,
    546     char                    *Path,
    547     UINT8                   Type,
    548     UINT32                  Value);
    549 
    550 void
    551 AcpiDmAddExternalsToNamespace (
    552     void);
    553 
    554 UINT32
    555 AcpiDmGetExternalMethodCount (
    556     void);
    557 
    558 void
    559 AcpiDmClearExternalList (
    560     void);
    561 
    562 void
    563 AcpiDmEmitExternals (
    564     void);
    565 
    566 
    567 /*
    568  * dmresrc
    569  */
    570 void
    571 AcpiDmDumpInteger8 (
    572     UINT8                   Value,
    573     const char              *Name);
    574 
    575 void
    576 AcpiDmDumpInteger16 (
    577     UINT16                  Value,
    578     const char              *Name);
    579 
    580 void
    581 AcpiDmDumpInteger32 (
    582     UINT32                  Value,
    583     const char              *Name);
    584 
    585 void
    586 AcpiDmDumpInteger64 (
    587     UINT64                  Value,
    588     const char              *Name);
    589 
    590 void
    591 AcpiDmResourceTemplate (
    592     ACPI_OP_WALK_INFO       *Info,
    593     ACPI_PARSE_OBJECT       *Op,
    594     UINT8                   *ByteData,
    595     UINT32                  ByteCount);
    596 
    597 ACPI_STATUS
    598 AcpiDmIsResourceTemplate (
    599     ACPI_PARSE_OBJECT       *Op);
    600 
    601 void
    602 AcpiDmBitList (
    603     UINT16                  Mask);
    604 
    605 void
    606 AcpiDmDescriptorName (
    607     void);
    608 
    609 
    610 /*
    611  * dmresrcl
    612  */
    613 void
    614 AcpiDmWordDescriptor (
    615     AML_RESOURCE            *Resource,
    616     UINT32                  Length,
    617     UINT32                  Level);
    618 
    619 void
    620 AcpiDmDwordDescriptor (
    621     AML_RESOURCE            *Resource,
    622     UINT32                  Length,
    623     UINT32                  Level);
    624 
    625 void
    626 AcpiDmExtendedDescriptor (
    627     AML_RESOURCE            *Resource,
    628     UINT32                  Length,
    629     UINT32                  Level);
    630 
    631 void
    632 AcpiDmQwordDescriptor (
    633     AML_RESOURCE            *Resource,
    634     UINT32                  Length,
    635     UINT32                  Level);
    636 
    637 void
    638 AcpiDmMemory24Descriptor (
    639     AML_RESOURCE            *Resource,
    640     UINT32                  Length,
    641     UINT32                  Level);
    642 
    643 void
    644 AcpiDmMemory32Descriptor (
    645     AML_RESOURCE            *Resource,
    646     UINT32                  Length,
    647     UINT32                  Level);
    648 
    649 void
    650 AcpiDmFixedMemory32Descriptor (
    651     AML_RESOURCE            *Resource,
    652     UINT32                  Length,
    653     UINT32                  Level);
    654 
    655 void
    656 AcpiDmGenericRegisterDescriptor (
    657     AML_RESOURCE            *Resource,
    658     UINT32                  Length,
    659     UINT32                  Level);
    660 
    661 void
    662 AcpiDmInterruptDescriptor (
    663     AML_RESOURCE            *Resource,
    664     UINT32                  Length,
    665     UINT32                  Level);
    666 
    667 void
    668 AcpiDmVendorLargeDescriptor (
    669     AML_RESOURCE            *Resource,
    670     UINT32                  Length,
    671     UINT32                  Level);
    672 
    673 void
    674 AcpiDmVendorCommon (
    675     const char              *Name,
    676     UINT8                   *ByteData,
    677     UINT32                  Length,
    678     UINT32                  Level);
    679 
    680 
    681 /*
    682  * dmresrcs
    683  */
    684 void
    685 AcpiDmIrqDescriptor (
    686     AML_RESOURCE            *Resource,
    687     UINT32                  Length,
    688     UINT32                  Level);
    689 
    690 void
    691 AcpiDmDmaDescriptor (
    692     AML_RESOURCE            *Resource,
    693     UINT32                  Length,
    694     UINT32                  Level);
    695 
    696 void
    697 AcpiDmIoDescriptor (
    698     AML_RESOURCE            *Resource,
    699     UINT32                  Length,
    700     UINT32                  Level);
    701 
    702 void
    703 AcpiDmFixedIoDescriptor (
    704     AML_RESOURCE            *Resource,
    705     UINT32                  Length,
    706     UINT32                  Level);
    707 
    708 void
    709 AcpiDmStartDependentDescriptor (
    710     AML_RESOURCE            *Resource,
    711     UINT32                  Length,
    712     UINT32                  Level);
    713 
    714 void
    715 AcpiDmEndDependentDescriptor (
    716     AML_RESOURCE            *Resource,
    717     UINT32                  Length,
    718     UINT32                  Level);
    719 
    720 void
    721 AcpiDmVendorSmallDescriptor (
    722     AML_RESOURCE            *Resource,
    723     UINT32                  Length,
    724     UINT32                  Level);
    725 
    726 
    727 /*
    728  * dmutils
    729  */
    730 void
    731 AcpiDmDecodeAttribute (
    732     UINT8                   Attribute);
    733 
    734 void
    735 AcpiDmIndent (
    736     UINT32                  Level);
    737 
    738 BOOLEAN
    739 AcpiDmCommaIfListMember (
    740     ACPI_PARSE_OBJECT       *Op);
    741 
    742 void
    743 AcpiDmCommaIfFieldMember (
    744     ACPI_PARSE_OBJECT       *Op);
    745 
    746 
    747 /*
    748  * dmrestag
    749  */
    750 void
    751 AcpiDmFindResources (
    752     ACPI_PARSE_OBJECT       *Root);
    753 
    754 void
    755 AcpiDmCheckResourceReference (
    756     ACPI_PARSE_OBJECT       *Op,
    757     ACPI_WALK_STATE         *WalkState);
    758 
    759 
    760 /*
    761  * acdisasm
    762  */
    763 void
    764 AdDisassemblerHeader (
    765     char                    *Filename);
    766 
    767 
    768 #endif  /* __ACDISASM_H__ */
    769