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