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    *(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     char                    *Name);
 574 
 575 void
 576 AcpiDmDumpInteger16 (
 577     UINT16                  Value,
 578     char                    *Name);
 579 
 580 void
 581 AcpiDmDumpInteger32 (
 582     UINT32                  Value,
 583     char                    *Name);
 584 
 585 void
 586 AcpiDmDumpInteger64 (
 587     UINT64                  Value,
 588     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     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__ */