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