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