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