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