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