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