1 /******************************************************************************
   2  *
   3  * Name: acdisasm.h - AML disassembler
   4  *
   5  *****************************************************************************/
   6 
   7 /*
   8  * Copyright (C) 2000 - 2014, 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     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     char                    *Name);
 719 
 720 void
 721 AcpiDmDumpInteger16 (
 722     UINT16                  Value,
 723     char                    *Name);
 724 
 725 void
 726 AcpiDmDumpInteger32 (
 727     UINT32                  Value,
 728     char                    *Name);
 729 
 730 void
 731 AcpiDmDumpInteger64 (
 732     UINT64                  Value,
 733     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     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__ */