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