1/****************************************************************************** 2 * 3 * Name: acdisasm.h - AML disassembler 4 * 5 *****************************************************************************/ 6 7/****************************************************************************** 8 * 9 * 1. Copyright Notice 10 * 11 * Some or all of this work - Copyright (c) 1999 - 2012, Intel Corp. 12 * All rights reserved. 13 * 14 * 2. License 15 * 16 * 2.1. This is your license from Intel Corp. under its intellectual property 17 * rights. You may have additional license terms from the party that provided 18 * you this software, covering your right to use that party's intellectual 19 * property rights. 20 * 21 * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a 22 * copy of the source code appearing in this file ("Covered Code") an 23 * irrevocable, perpetual, worldwide license under Intel's copyrights in the 24 * base code distributed originally by Intel ("Original Intel Code") to copy, 25 * make derivatives, distribute, use and display any portion of the Covered 26 * Code in any form, with the right to sublicense such rights; and 27 * 28 * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent 29 * license (with the right to sublicense), under only those claims of Intel 30 * patents that are infringed by the Original Intel Code, to make, use, sell, 31 * offer to sell, and import the Covered Code and derivative works thereof 32 * solely to the minimum extent necessary to exercise the above copyright 33 * license, and in no event shall the patent license extend to any additions 34 * to or modifications of the Original Intel Code. No other license or right 35 * is granted directly or by implication, estoppel or otherwise; 36 * 37 * The above copyright and patent license is granted only if the following 38 * conditions are met: 39 * 40 * 3. Conditions 41 * 42 * 3.1. Redistribution of Source with Rights to Further Distribute Source. 43 * Redistribution of source code of any substantial portion of the Covered 44 * Code or modification with rights to further distribute source must include 45 * the above Copyright Notice, the above License, this list of Conditions, 46 * and the following Disclaimer and Export Compliance provision. In addition, 47 * Licensee must cause all Covered Code to which Licensee contributes to 48 * contain a file documenting the changes Licensee made to create that Covered 49 * Code and the date of any change. Licensee must include in that file the 50 * documentation of any changes made by any predecessor Licensee. Licensee 51 * must include a prominent statement that the modification is derived, 52 * directly or indirectly, from Original Intel Code. 53 * 54 * 3.2. Redistribution of Source with no Rights to Further Distribute Source. 55 * Redistribution of source code of any substantial portion of the Covered 56 * Code or modification without rights to further distribute source must 57 * include the following Disclaimer and Export Compliance provision in the 58 * documentation and/or other materials provided with distribution. In 59 * addition, Licensee may not authorize further sublicense of source of any 60 * portion of the Covered Code, and must include terms to the effect that the 61 * license from Licensee to its licensee is limited to the intellectual 62 * property embodied in the software Licensee provides to its licensee, and 63 * not to intellectual property embodied in modifications its licensee may 64 * make. 65 * 66 * 3.3. Redistribution of Executable. Redistribution in executable form of any 67 * substantial portion of the Covered Code or modification must reproduce the 68 * above Copyright Notice, and the following Disclaimer and Export Compliance 69 * provision in the documentation and/or other materials provided with the 70 * distribution. 71 * 72 * 3.4. Intel retains all right, title, and interest in and to the Original 73 * Intel Code. 74 * 75 * 3.5. Neither the name Intel nor any other trademark owned or controlled by 76 * Intel shall be used in advertising or otherwise to promote the sale, use or 77 * other dealings in products derived from or relating to the Covered Code 78 * without prior written authorization from Intel. 79 * 80 * 4. Disclaimer and Export Compliance 81 * 82 * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED 83 * HERE. ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE 84 * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT, ASSISTANCE, 85 * INSTALLATION, TRAINING OR OTHER SERVICES. INTEL WILL NOT PROVIDE ANY 86 * UPDATES, ENHANCEMENTS OR EXTENSIONS. INTEL SPECIFICALLY DISCLAIMS ANY 87 * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A 88 * PARTICULAR PURPOSE. 89 * 90 * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES 91 * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR 92 * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT, 93 * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY 94 * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL 95 * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. THESE LIMITATIONS 96 * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY 97 * LIMITED REMEDY. 98 * 99 * 4.3. Licensee shall not export, either directly or indirectly, any of this 100 * software or system incorporating such software without first obtaining any 101 * required license or other approval from the U. S. Department of Commerce or 102 * any other agency or department of the United States Government. In the 103 * event Licensee exports any such software from the United States or 104 * re-exports any such software from a foreign destination, Licensee shall 105 * ensure that the distribution and export/re-export of the software is in 106 * compliance with all laws, regulations, orders, or other restrictions of the 107 * U.S. Export Administration Regulations. Licensee agrees that neither it nor 108 * any of its subsidiaries will export/re-export any technical data, process, 109 * software, or service, directly or indirectly, to any country for which the 110 * United States government or any agency thereof requires an export license, 111 * other governmental approval, or letter of assurance, without first obtaining 112 * such license, approval or letter. 113 * 114 *****************************************************************************/ 115 116#ifndef __ACDISASM_H__ 117#define __ACDISASM_H__ 118 119#include "amlresrc.h" 120 121 122#define BLOCK_NONE 0 123#define BLOCK_PAREN 1 124#define BLOCK_BRACE 2 125#define BLOCK_COMMA_LIST 4 126#define ACPI_DEFAULT_RESNAME *(UINT32 *) "__RD" 127 128/* 129 * Raw table data header. Used by disassembler and data table compiler. 130 * Do not change. 131 */ 132#define ACPI_RAW_TABLE_DATA_HEADER "Raw Table Data" 133 134 135typedef const struct acpi_dmtable_info 136{ 137 UINT8 Opcode; 138 UINT16 Offset; 139 char *Name; 140 UINT8 Flags; 141 142} ACPI_DMTABLE_INFO; 143 144#define DT_LENGTH 0x01 /* Field is a subtable length */ 145#define DT_FLAG 0x02 /* Field is a flag value */ 146#define DT_NON_ZERO 0x04 /* Field must be non-zero */ 147 148/* TBD: Not used at this time */ 149 150#define DT_OPTIONAL 0x08 151#define DT_COUNT 0x10 152 153/* 154 * Values for Opcode above. 155 * Note: 0-7 must not change, they are used as a flag shift value. Other 156 * than those, new values can be added wherever appropriate. 157 */ 158typedef enum 159{ 160 /* Simple Data Types */ 161 162 ACPI_DMT_FLAG0 = 0, 163 ACPI_DMT_FLAG1 = 1, 164 ACPI_DMT_FLAG2 = 2, 165 ACPI_DMT_FLAG3 = 3, 166 ACPI_DMT_FLAG4 = 4, 167 ACPI_DMT_FLAG5 = 5, 168 ACPI_DMT_FLAG6 = 6, 169 ACPI_DMT_FLAG7 = 7, 170 ACPI_DMT_FLAGS0, 171 ACPI_DMT_FLAGS1, 172 ACPI_DMT_FLAGS2, 173 ACPI_DMT_FLAGS4, 174 ACPI_DMT_UINT8, 175 ACPI_DMT_UINT16, 176 ACPI_DMT_UINT24, 177 ACPI_DMT_UINT32, 178 ACPI_DMT_UINT40, 179 ACPI_DMT_UINT48, 180 ACPI_DMT_UINT56, 181 ACPI_DMT_UINT64, 182 ACPI_DMT_BUF7, 183 ACPI_DMT_BUF16, 184 ACPI_DMT_BUF128, 185 ACPI_DMT_SIG, 186 ACPI_DMT_STRING, 187 ACPI_DMT_NAME4, 188 ACPI_DMT_NAME6, 189 ACPI_DMT_NAME8, 190 191 /* Types that are decoded to strings and miscellaneous */ 192 193 ACPI_DMT_ACCWIDTH, 194 ACPI_DMT_CHKSUM, 195 ACPI_DMT_GAS, 196 ACPI_DMT_SPACEID, 197 ACPI_DMT_UNICODE, 198 ACPI_DMT_UUID, 199 200 /* Types used only for the Data Table Compiler */ 201 202 ACPI_DMT_BUFFER, 203 ACPI_DMT_DEVICE_PATH, 204 ACPI_DMT_LABEL, 205 ACPI_DMT_PCI_PATH, 206 207 /* Types that are specific to particular ACPI tables */ 208 209 ACPI_DMT_ASF, 210 ACPI_DMT_DMAR, 211 ACPI_DMT_EINJACT, 212 ACPI_DMT_EINJINST, 213 ACPI_DMT_ERSTACT, 214 ACPI_DMT_ERSTINST, 215 ACPI_DMT_FADTPM, 216 ACPI_DMT_HEST, 217 ACPI_DMT_HESTNTFY, 218 ACPI_DMT_HESTNTYP, 219 ACPI_DMT_IVRS, 220 ACPI_DMT_MADT, 221 ACPI_DMT_PMTT, 222 ACPI_DMT_SLIC, 223 ACPI_DMT_SRAT, 224 225 /* Special opcodes */ 226 227 ACPI_DMT_EXTRA_TEXT, 228 ACPI_DMT_EXIT 229 230} ACPI_ENTRY_TYPES; 231 232typedef 233void (*ACPI_DMTABLE_HANDLER) ( 234 ACPI_TABLE_HEADER *Table); 235 236typedef 237ACPI_STATUS (*ACPI_CMTABLE_HANDLER) ( 238 void **PFieldList); 239 240typedef struct acpi_dmtable_data 241{ 242 char *Signature; 243 ACPI_DMTABLE_INFO *TableInfo; 244 ACPI_DMTABLE_HANDLER TableHandler; 245 ACPI_CMTABLE_HANDLER CmTableHandler; 246 const unsigned char *Template; 247 char *Name; 248 249} ACPI_DMTABLE_DATA; 250 251 252typedef struct acpi_op_walk_info 253{ 254 UINT32 Level; 255 UINT32 LastLevel; 256 UINT32 Count; 257 UINT32 BitOffset; 258 UINT32 Flags; 259 ACPI_WALK_STATE *WalkState; 260 261} ACPI_OP_WALK_INFO; 262 263/* 264 * TBD - another copy of this is in asltypes.h, fix 265 */ 266#ifndef ASL_WALK_CALLBACK_DEFINED 267typedef 268ACPI_STATUS (*ASL_WALK_CALLBACK) ( 269 ACPI_PARSE_OBJECT *Op, 270 UINT32 Level, 271 void *Context); 272#define ASL_WALK_CALLBACK_DEFINED 273#endif 274 275typedef 276void (*ACPI_RESOURCE_HANDLER) ( 277 AML_RESOURCE *Resource, 278 UINT32 Length, 279 UINT32 Level); 280 281typedef struct acpi_resource_tag 282{ 283 UINT32 BitIndex; 284 char *Tag; 285 286} ACPI_RESOURCE_TAG; 287 288/* Strings used for decoding flags to ASL keywords */ 289 290extern const char *AcpiGbl_WordDecode[]; 291extern const char *AcpiGbl_IrqDecode[]; 292extern const char *AcpiGbl_LockRule[]; 293extern const char *AcpiGbl_AccessTypes[]; 294extern const char *AcpiGbl_UpdateRules[]; 295extern const char *AcpiGbl_MatchOps[]; 296 297extern ACPI_DMTABLE_INFO AcpiDmTableInfoAsf0[]; 298extern ACPI_DMTABLE_INFO AcpiDmTableInfoAsf1[]; 299extern ACPI_DMTABLE_INFO AcpiDmTableInfoAsf1a[]; 300extern ACPI_DMTABLE_INFO AcpiDmTableInfoAsf2[]; 301extern ACPI_DMTABLE_INFO AcpiDmTableInfoAsf2a[]; 302extern ACPI_DMTABLE_INFO AcpiDmTableInfoAsf3[]; 303extern ACPI_DMTABLE_INFO AcpiDmTableInfoAsf4[]; 304extern ACPI_DMTABLE_INFO AcpiDmTableInfoAsfHdr[]; 305extern ACPI_DMTABLE_INFO AcpiDmTableInfoBoot[]; 306extern ACPI_DMTABLE_INFO AcpiDmTableInfoBert[]; 307extern ACPI_DMTABLE_INFO AcpiDmTableInfoBgrt[]; 308extern ACPI_DMTABLE_INFO AcpiDmTableInfoCpep[]; 309extern ACPI_DMTABLE_INFO AcpiDmTableInfoCpep0[]; 310extern ACPI_DMTABLE_INFO AcpiDmTableInfoCsrt0[]; 311extern ACPI_DMTABLE_INFO AcpiDmTableInfoCsrt1[]; 312extern ACPI_DMTABLE_INFO AcpiDmTableInfoDbg2[]; 313extern ACPI_DMTABLE_INFO AcpiDmTableInfoDbg2Device[]; 314extern ACPI_DMTABLE_INFO AcpiDmTableInfoDbg2Addr[]; 315extern ACPI_DMTABLE_INFO AcpiDmTableInfoDbg2Size[]; 316extern ACPI_DMTABLE_INFO AcpiDmTableInfoDbg2Name[]; 317extern ACPI_DMTABLE_INFO AcpiDmTableInfoDbgp[]; 318extern ACPI_DMTABLE_INFO AcpiDmTableInfoDmar[]; 319extern ACPI_DMTABLE_INFO AcpiDmTableInfoDmarHdr[]; 320extern ACPI_DMTABLE_INFO AcpiDmTableInfoDmarScope[]; 321extern ACPI_DMTABLE_INFO AcpiDmTableInfoDmar0[]; 322extern ACPI_DMTABLE_INFO AcpiDmTableInfoDmar1[]; 323extern ACPI_DMTABLE_INFO AcpiDmTableInfoDmar2[]; 324extern ACPI_DMTABLE_INFO AcpiDmTableInfoDmar3[]; 325extern ACPI_DMTABLE_INFO AcpiDmTableInfoDrtm[]; 326extern ACPI_DMTABLE_INFO AcpiDmTableInfoEcdt[]; 327extern ACPI_DMTABLE_INFO AcpiDmTableInfoEinj[]; 328extern ACPI_DMTABLE_INFO AcpiDmTableInfoEinj0[]; 329extern ACPI_DMTABLE_INFO AcpiDmTableInfoErst[]; 330extern ACPI_DMTABLE_INFO AcpiDmTableInfoErst0[]; 331extern ACPI_DMTABLE_INFO AcpiDmTableInfoFacs[]; 332extern ACPI_DMTABLE_INFO AcpiDmTableInfoFadt1[]; 333extern ACPI_DMTABLE_INFO AcpiDmTableInfoFadt2[]; 334extern ACPI_DMTABLE_INFO AcpiDmTableInfoFadt3[]; 335extern ACPI_DMTABLE_INFO AcpiDmTableInfoFadt5[]; 336extern ACPI_DMTABLE_INFO AcpiDmTableInfoFpdt[]; 337extern ACPI_DMTABLE_INFO AcpiDmTableInfoFpdtHdr[]; 338extern ACPI_DMTABLE_INFO AcpiDmTableInfoFpdt0[]; 339extern ACPI_DMTABLE_INFO AcpiDmTableInfoFpdt1[]; 340extern ACPI_DMTABLE_INFO AcpiDmTableInfoGas[]; 341extern ACPI_DMTABLE_INFO AcpiDmTableInfoGtdt[]; 342extern ACPI_DMTABLE_INFO AcpiDmTableInfoHeader[]; 343extern ACPI_DMTABLE_INFO AcpiDmTableInfoHest[]; 344extern ACPI_DMTABLE_INFO AcpiDmTableInfoHest0[]; 345extern ACPI_DMTABLE_INFO AcpiDmTableInfoHest1[]; 346extern ACPI_DMTABLE_INFO AcpiDmTableInfoHest2[]; 347extern ACPI_DMTABLE_INFO AcpiDmTableInfoHest6[]; 348extern ACPI_DMTABLE_INFO AcpiDmTableInfoHest7[]; 349extern ACPI_DMTABLE_INFO AcpiDmTableInfoHest8[]; 350extern ACPI_DMTABLE_INFO AcpiDmTableInfoHest9[]; 351extern ACPI_DMTABLE_INFO AcpiDmTableInfoHestNotify[]; 352extern ACPI_DMTABLE_INFO AcpiDmTableInfoHestBank[]; 353extern ACPI_DMTABLE_INFO AcpiDmTableInfoHpet[]; 354extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs[]; 355extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs0[]; 356extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs1[]; 357extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs4[]; 358extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs8a[]; 359extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs8b[]; 360extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs8c[]; 361extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrsHdr[]; 362extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt[]; 363extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt0[]; 364extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt1[]; 365extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt2[]; 366extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt3[]; 367extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt4[]; 368extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt5[]; 369extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt6[]; 370extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt7[]; 371extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt8[]; 372extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt9[]; 373extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt10[]; 374extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt11[]; 375extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt12[]; 376extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadtHdr[]; 377extern ACPI_DMTABLE_INFO AcpiDmTableInfoMcfg[]; 378extern ACPI_DMTABLE_INFO AcpiDmTableInfoMcfg0[]; 379extern ACPI_DMTABLE_INFO AcpiDmTableInfoMchi[]; 380extern ACPI_DMTABLE_INFO AcpiDmTableInfoMpst[]; 381extern ACPI_DMTABLE_INFO AcpiDmTableInfoMpst0[]; 382extern ACPI_DMTABLE_INFO AcpiDmTableInfoMpst0A[]; 383extern ACPI_DMTABLE_INFO AcpiDmTableInfoMpst0B[]; 384extern ACPI_DMTABLE_INFO AcpiDmTableInfoMpst1[]; 385extern ACPI_DMTABLE_INFO AcpiDmTableInfoMpst2[]; 386extern ACPI_DMTABLE_INFO AcpiDmTableInfoMsct[]; 387extern ACPI_DMTABLE_INFO AcpiDmTableInfoMsct0[]; 388extern ACPI_DMTABLE_INFO AcpiDmTableInfoPmtt[]; 389extern ACPI_DMTABLE_INFO AcpiDmTableInfoPmtt0[]; 390extern ACPI_DMTABLE_INFO AcpiDmTableInfoPmtt1[]; 391extern ACPI_DMTABLE_INFO AcpiDmTableInfoPmtt1a[]; 392extern ACPI_DMTABLE_INFO AcpiDmTableInfoPmtt2[]; 393extern ACPI_DMTABLE_INFO AcpiDmTableInfoPmttHdr[]; 394extern ACPI_DMTABLE_INFO AcpiDmTableInfoPcct[]; 395extern ACPI_DMTABLE_INFO AcpiDmTableInfoPcct0[]; 396extern ACPI_DMTABLE_INFO AcpiDmTableInfoRsdp1[]; 397extern ACPI_DMTABLE_INFO AcpiDmTableInfoRsdp2[]; 398extern ACPI_DMTABLE_INFO AcpiDmTableInfoS3pt[]; 399extern ACPI_DMTABLE_INFO AcpiDmTableInfoS3ptHdr[]; 400extern ACPI_DMTABLE_INFO AcpiDmTableInfoS3pt0[]; 401extern ACPI_DMTABLE_INFO AcpiDmTableInfoS3pt1[]; 402extern ACPI_DMTABLE_INFO AcpiDmTableInfoSbst[]; 403extern ACPI_DMTABLE_INFO AcpiDmTableInfoSlicHdr[]; 404extern ACPI_DMTABLE_INFO AcpiDmTableInfoSlic0[]; 405extern ACPI_DMTABLE_INFO AcpiDmTableInfoSlic1[]; 406extern ACPI_DMTABLE_INFO AcpiDmTableInfoSlit[]; 407extern ACPI_DMTABLE_INFO AcpiDmTableInfoSpcr[]; 408extern ACPI_DMTABLE_INFO AcpiDmTableInfoSpmi[]; 409extern ACPI_DMTABLE_INFO AcpiDmTableInfoSrat[]; 410extern ACPI_DMTABLE_INFO AcpiDmTableInfoSratHdr[]; 411extern ACPI_DMTABLE_INFO AcpiDmTableInfoSrat0[]; 412extern ACPI_DMTABLE_INFO AcpiDmTableInfoSrat1[]; 413extern ACPI_DMTABLE_INFO AcpiDmTableInfoSrat2[]; 414extern ACPI_DMTABLE_INFO AcpiDmTableInfoTcpa[]; 415extern ACPI_DMTABLE_INFO AcpiDmTableInfoUefi[]; 416extern ACPI_DMTABLE_INFO AcpiDmTableInfoWaet[]; 417extern ACPI_DMTABLE_INFO AcpiDmTableInfoWdat[]; 418extern ACPI_DMTABLE_INFO AcpiDmTableInfoWdat0[]; 419extern ACPI_DMTABLE_INFO AcpiDmTableInfoWddt[]; 420extern ACPI_DMTABLE_INFO AcpiDmTableInfoWdrt[]; 421 422extern ACPI_DMTABLE_INFO AcpiDmTableInfoGeneric[][2]; 423 424 425/* 426 * dmtable 427 */ 428extern ACPI_DMTABLE_DATA AcpiDmTableData[]; 429 430UINT8 431AcpiDmGenerateChecksum ( 432 void *Table, 433 UINT32 Length, 434 UINT8 OriginalChecksum); 435 436ACPI_DMTABLE_DATA * 437AcpiDmGetTableData ( 438 char *Signature); 439 440void 441AcpiDmDumpDataTable ( 442 ACPI_TABLE_HEADER *Table); 443 444ACPI_STATUS 445AcpiDmDumpTable ( 446 UINT32 TableLength, 447 UINT32 TableOffset, 448 void *Table, 449 UINT32 SubTableLength, 450 ACPI_DMTABLE_INFO *Info); 451 452void 453AcpiDmLineHeader ( 454 UINT32 Offset, 455 UINT32 ByteLength, 456 char *Name); 457 458void 459AcpiDmLineHeader2 ( 460 UINT32 Offset, 461 UINT32 ByteLength, 462 char *Name, 463 UINT32 Value); 464 465 466/* 467 * dmtbdump 468 */ 469void 470AcpiDmDumpAsf ( 471 ACPI_TABLE_HEADER *Table); 472 473void 474AcpiDmDumpCpep ( 475 ACPI_TABLE_HEADER *Table); 476 477void 478AcpiDmDumpCsrt ( 479 ACPI_TABLE_HEADER *Table); 480 481void 482AcpiDmDumpDbg2 ( 483 ACPI_TABLE_HEADER *Table); 484 485void 486AcpiDmDumpDmar ( 487 ACPI_TABLE_HEADER *Table); 488 489void 490AcpiDmDumpEinj ( 491 ACPI_TABLE_HEADER *Table); 492 493void 494AcpiDmDumpErst ( 495 ACPI_TABLE_HEADER *Table); 496 497void 498AcpiDmDumpFadt ( 499 ACPI_TABLE_HEADER *Table); 500 501void 502AcpiDmDumpFpdt ( 503 ACPI_TABLE_HEADER *Table); 504 505void 506AcpiDmDumpHest ( 507 ACPI_TABLE_HEADER *Table); 508 509void 510AcpiDmDumpIvrs ( 511 ACPI_TABLE_HEADER *Table); 512 513void 514AcpiDmDumpMadt ( 515 ACPI_TABLE_HEADER *Table); 516 517void 518AcpiDmDumpMcfg ( 519 ACPI_TABLE_HEADER *Table); 520 521void 522AcpiDmDumpMpst ( 523 ACPI_TABLE_HEADER *Table); 524 525void 526AcpiDmDumpMsct ( 527 ACPI_TABLE_HEADER *Table); 528 529void 530AcpiDmDumpPcct ( 531 ACPI_TABLE_HEADER *Table); 532 533void 534AcpiDmDumpPmtt ( 535 ACPI_TABLE_HEADER *Table); 536 537UINT32 538AcpiDmDumpRsdp ( 539 ACPI_TABLE_HEADER *Table); 540 541void 542AcpiDmDumpRsdt ( 543 ACPI_TABLE_HEADER *Table); 544 545UINT32 546AcpiDmDumpS3pt ( 547 ACPI_TABLE_HEADER *Table); 548 549void 550AcpiDmDumpSlic ( 551 ACPI_TABLE_HEADER *Table); 552 553void 554AcpiDmDumpSlit ( 555 ACPI_TABLE_HEADER *Table); 556 557void 558AcpiDmDumpSrat ( 559 ACPI_TABLE_HEADER *Table); 560 561void 562AcpiDmDumpWdat ( 563 ACPI_TABLE_HEADER *Table); 564 565void 566AcpiDmDumpXsdt ( 567 ACPI_TABLE_HEADER *Table); 568 569 570/* 571 * dmwalk 572 */ 573void 574AcpiDmDisassemble ( 575 ACPI_WALK_STATE *WalkState, 576 ACPI_PARSE_OBJECT *Origin, 577 UINT32 NumOpcodes); 578 579void 580AcpiDmWalkParseTree ( 581 ACPI_PARSE_OBJECT *Op, 582 ASL_WALK_CALLBACK DescendingCallback, 583 ASL_WALK_CALLBACK AscendingCallback, 584 void *Context); 585 586 587/* 588 * dmopcode 589 */ 590void 591AcpiDmDisassembleOneOp ( 592 ACPI_WALK_STATE *WalkState, 593 ACPI_OP_WALK_INFO *Info, 594 ACPI_PARSE_OBJECT *Op); 595 596void 597AcpiDmDecodeInternalObject ( 598 ACPI_OPERAND_OBJECT *ObjDesc); 599 600UINT32 601AcpiDmListType ( 602 ACPI_PARSE_OBJECT *Op); 603 604void 605AcpiDmMethodFlags ( 606 ACPI_PARSE_OBJECT *Op); 607 608void 609AcpiDmPredefinedDescription ( 610 ACPI_PARSE_OBJECT *Op); 611 612void 613AcpiDmFieldPredefinedDescription ( 614 ACPI_PARSE_OBJECT *Op); 615 616void 617AcpiDmFieldFlags ( 618 ACPI_PARSE_OBJECT *Op); 619 620void 621AcpiDmAddressSpace ( 622 UINT8 SpaceId); 623 624void 625AcpiDmRegionFlags ( 626 ACPI_PARSE_OBJECT *Op); 627 628void 629AcpiDmMatchOp ( 630 ACPI_PARSE_OBJECT *Op); 631 632 633/* 634 * dmnames 635 */ 636UINT32 637AcpiDmDumpName ( 638 UINT32 Name); 639 640ACPI_STATUS 641AcpiPsDisplayObjectPathname ( 642 ACPI_WALK_STATE *WalkState, 643 ACPI_PARSE_OBJECT *Op); 644 645void 646AcpiDmNamestring ( 647 char *Name); 648 649 650/* 651 * dmobject 652 */ 653void 654AcpiDmDisplayInternalObject ( 655 ACPI_OPERAND_OBJECT *ObjDesc, 656 ACPI_WALK_STATE *WalkState); 657 658void 659AcpiDmDisplayArguments ( 660 ACPI_WALK_STATE *WalkState); 661 662void 663AcpiDmDisplayLocals ( 664 ACPI_WALK_STATE *WalkState); 665 666void 667AcpiDmDumpMethodInfo ( 668 ACPI_STATUS Status, 669 ACPI_WALK_STATE *WalkState, 670 ACPI_PARSE_OBJECT *Op); 671 672 673/* 674 * dmbuffer 675 */ 676void 677AcpiDmDisasmByteList ( 678 UINT32 Level, 679 UINT8 *ByteData, 680 UINT32 ByteCount); 681 682void 683AcpiDmByteList ( 684 ACPI_OP_WALK_INFO *Info, 685 ACPI_PARSE_OBJECT *Op); 686 687void 688AcpiDmIsEisaId ( 689 ACPI_PARSE_OBJECT *Op); 690 691void 692AcpiDmEisaId ( 693 UINT32 EncodedId); 694 695BOOLEAN 696AcpiDmIsUnicodeBuffer ( 697 ACPI_PARSE_OBJECT *Op); 698 699BOOLEAN 700AcpiDmIsStringBuffer ( 701 ACPI_PARSE_OBJECT *Op); 702 703BOOLEAN 704AcpiDmIsPldBuffer ( 705 ACPI_PARSE_OBJECT *Op); 706 707 708/* 709 * dmextern 710 */ 711 712ACPI_STATUS 713AcpiDmAddToExternalFileList ( 714 char *PathList); 715 716void 717AcpiDmClearExternalFileList ( 718 void); 719 720void 721AcpiDmAddToExternalList ( 722 ACPI_PARSE_OBJECT *Op, 723 char *Path, 724 UINT8 Type, 725 UINT32 Value); 726 727void 728AcpiDmAddExternalsToNamespace ( 729 void); 730 731UINT32 732AcpiDmGetExternalMethodCount ( 733 void); 734 735void 736AcpiDmClearExternalList ( 737 void); 738 739void 740AcpiDmEmitExternals ( 741 void); 742 743 744/* 745 * dmresrc 746 */ 747void 748AcpiDmDumpInteger8 ( 749 UINT8 Value, 750 char *Name); 751 752void 753AcpiDmDumpInteger16 ( 754 UINT16 Value, 755 char *Name); 756 757void 758AcpiDmDumpInteger32 ( 759 UINT32 Value, 760 char *Name); 761 762void 763AcpiDmDumpInteger64 ( 764 UINT64 Value, 765 char *Name); 766 767void 768AcpiDmResourceTemplate ( 769 ACPI_OP_WALK_INFO *Info, 770 ACPI_PARSE_OBJECT *Op, 771 UINT8 *ByteData, 772 UINT32 ByteCount); 773 774ACPI_STATUS 775AcpiDmIsResourceTemplate ( 776 ACPI_PARSE_OBJECT *Op); 777 778void 779AcpiDmBitList ( 780 UINT16 Mask); 781 782void 783AcpiDmDescriptorName ( 784 void); 785 786 787/* 788 * dmresrcl 789 */ 790void 791AcpiDmWordDescriptor ( 792 AML_RESOURCE *Resource, 793 UINT32 Length, 794 UINT32 Level); 795 796void 797AcpiDmDwordDescriptor ( 798 AML_RESOURCE *Resource, 799 UINT32 Length, 800 UINT32 Level); 801 802void 803AcpiDmExtendedDescriptor ( 804 AML_RESOURCE *Resource, 805 UINT32 Length, 806 UINT32 Level); 807 808void 809AcpiDmQwordDescriptor ( 810 AML_RESOURCE *Resource, 811 UINT32 Length, 812 UINT32 Level); 813 814void 815AcpiDmMemory24Descriptor ( 816 AML_RESOURCE *Resource, 817 UINT32 Length, 818 UINT32 Level); 819 820void 821AcpiDmMemory32Descriptor ( 822 AML_RESOURCE *Resource, 823 UINT32 Length, 824 UINT32 Level); 825 826void 827AcpiDmFixedMemory32Descriptor ( 828 AML_RESOURCE *Resource, 829 UINT32 Length, 830 UINT32 Level); 831 832void 833AcpiDmGenericRegisterDescriptor ( 834 AML_RESOURCE *Resource, 835 UINT32 Length, 836 UINT32 Level); 837 838void 839AcpiDmInterruptDescriptor ( 840 AML_RESOURCE *Resource, 841 UINT32 Length, 842 UINT32 Level); 843 844void 845AcpiDmVendorLargeDescriptor ( 846 AML_RESOURCE *Resource, 847 UINT32 Length, 848 UINT32 Level); 849 850void 851AcpiDmGpioDescriptor ( 852 AML_RESOURCE *Resource, 853 UINT32 Length, 854 UINT32 Level); 855 856void 857AcpiDmSerialBusDescriptor ( 858 AML_RESOURCE *Resource, 859 UINT32 Length, 860 UINT32 Level); 861 862void 863AcpiDmVendorCommon ( 864 char *Name, 865 UINT8 *ByteData, 866 UINT32 Length, 867 UINT32 Level); 868 869 870/* 871 * dmresrcs 872 */ 873void 874AcpiDmIrqDescriptor ( 875 AML_RESOURCE *Resource, 876 UINT32 Length, 877 UINT32 Level); 878 879void 880AcpiDmDmaDescriptor ( 881 AML_RESOURCE *Resource, 882 UINT32 Length, 883 UINT32 Level); 884 885void 886AcpiDmFixedDmaDescriptor ( 887 AML_RESOURCE *Resource, 888 UINT32 Length, 889 UINT32 Level); 890 891void 892AcpiDmIoDescriptor ( 893 AML_RESOURCE *Resource, 894 UINT32 Length, 895 UINT32 Level); 896 897void 898AcpiDmFixedIoDescriptor ( 899 AML_RESOURCE *Resource, 900 UINT32 Length, 901 UINT32 Level); 902 903void 904AcpiDmStartDependentDescriptor ( 905 AML_RESOURCE *Resource, 906 UINT32 Length, 907 UINT32 Level); 908 909void 910AcpiDmEndDependentDescriptor ( 911 AML_RESOURCE *Resource, 912 UINT32 Length, 913 UINT32 Level); 914 915void 916AcpiDmVendorSmallDescriptor ( 917 AML_RESOURCE *Resource, 918 UINT32 Length, 919 UINT32 Level); 920 921 922/* 923 * dmutils 924 */ 925void 926AcpiDmDecodeAttribute ( 927 UINT8 Attribute); 928 929void 930AcpiDmIndent ( 931 UINT32 Level); 932 933BOOLEAN 934AcpiDmCommaIfListMember ( 935 ACPI_PARSE_OBJECT *Op); 936 937void 938AcpiDmCommaIfFieldMember ( 939 ACPI_PARSE_OBJECT *Op); 940 941 942/* 943 * dmrestag 944 */ 945void 946AcpiDmFindResources ( 947 ACPI_PARSE_OBJECT *Root); 948 949void 950AcpiDmCheckResourceReference ( 951 ACPI_PARSE_OBJECT *Op, 952 ACPI_WALK_STATE *WalkState); 953 954 955/* 956 * acdisasm 957 */ 958void 959AdDisassemblerHeader ( 960 char *Filename); 961 962 963#endif /* __ACDISASM_H__ */ 964