acdisasm.h revision 217365
1100966Siwasaki/****************************************************************************** 2100966Siwasaki * 3100966Siwasaki * Name: acdisasm.h - AML disassembler 4100966Siwasaki * 5100966Siwasaki *****************************************************************************/ 6100966Siwasaki 7217365Sjkim/* 8217365Sjkim * Copyright (C) 2000 - 2011, Intel Corp. 9100966Siwasaki * All rights reserved. 10100966Siwasaki * 11217365Sjkim * Redistribution and use in source and binary forms, with or without 12217365Sjkim * modification, are permitted provided that the following conditions 13217365Sjkim * are met: 14217365Sjkim * 1. Redistributions of source code must retain the above copyright 15217365Sjkim * notice, this list of conditions, and the following disclaimer, 16217365Sjkim * without modification. 17217365Sjkim * 2. Redistributions in binary form must reproduce at minimum a disclaimer 18217365Sjkim * substantially similar to the "NO WARRANTY" disclaimer below 19217365Sjkim * ("Disclaimer") and any redistribution must be conditioned upon 20217365Sjkim * including a substantially similar Disclaimer requirement for further 21217365Sjkim * binary redistribution. 22217365Sjkim * 3. Neither the names of the above-listed copyright holders nor the names 23217365Sjkim * of any contributors may be used to endorse or promote products derived 24217365Sjkim * from this software without specific prior written permission. 25100966Siwasaki * 26217365Sjkim * Alternatively, this software may be distributed under the terms of the 27217365Sjkim * GNU General Public License ("GPL") version 2 as published by the Free 28217365Sjkim * Software Foundation. 29100966Siwasaki * 30217365Sjkim * NO WARRANTY 31217365Sjkim * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 32217365Sjkim * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 33217365Sjkim * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR 34217365Sjkim * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 35217365Sjkim * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 36217365Sjkim * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 37217365Sjkim * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 38217365Sjkim * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 39217365Sjkim * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING 40217365Sjkim * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 41217365Sjkim * POSSIBILITY OF SUCH DAMAGES. 42217365Sjkim */ 43100966Siwasaki 44100966Siwasaki#ifndef __ACDISASM_H__ 45100966Siwasaki#define __ACDISASM_H__ 46100966Siwasaki 47193341Sjkim#include <contrib/dev/acpica/include/amlresrc.h> 48100966Siwasaki 49100966Siwasaki 50100966Siwasaki#define BLOCK_NONE 0 51100966Siwasaki#define BLOCK_PAREN 1 52100966Siwasaki#define BLOCK_BRACE 2 53100966Siwasaki#define BLOCK_COMMA_LIST 4 54167802Sjkim#define ACPI_DEFAULT_RESNAME *(UINT32 *) "__RD" 55100966Siwasaki 56217365Sjkim/* 57217365Sjkim * Raw table data header. Used by disassembler and data table compiler. 58217365Sjkim * Do not change. 59217365Sjkim */ 60217365Sjkim#define ACPI_RAW_TABLE_DATA_HEADER "Raw Table Data" 61128212Snjl 62217365Sjkim 63167802Sjkimtypedef const struct acpi_dmtable_info 64167802Sjkim{ 65167802Sjkim UINT8 Opcode; 66167802Sjkim UINT8 Offset; 67167802Sjkim char *Name; 68209746Sjkim UINT8 Flags; 69100966Siwasaki 70167802Sjkim} ACPI_DMTABLE_INFO; 71100966Siwasaki 72209746Sjkim#define DT_LENGTH 0x01 /* Field is a subtable length */ 73209746Sjkim#define DT_FLAG 0x02 /* Field is a flag value */ 74209746Sjkim#define DT_NON_ZERO 0x04 /* Field must be non-zero */ 75209746Sjkim 76209746Sjkim/* TBD: Not used at this time */ 77209746Sjkim 78209746Sjkim#define DT_OPTIONAL 0x08 79209746Sjkim#define DT_COUNT 0x10 80209746Sjkim 81167802Sjkim/* 82167802Sjkim * Values for Opcode above. 83167802Sjkim * Note: 0-7 must not change, used as a flag shift value 84167802Sjkim */ 85167802Sjkim#define ACPI_DMT_FLAG0 0 86167802Sjkim#define ACPI_DMT_FLAG1 1 87167802Sjkim#define ACPI_DMT_FLAG2 2 88167802Sjkim#define ACPI_DMT_FLAG3 3 89167802Sjkim#define ACPI_DMT_FLAG4 4 90167802Sjkim#define ACPI_DMT_FLAG5 5 91167802Sjkim#define ACPI_DMT_FLAG6 6 92167802Sjkim#define ACPI_DMT_FLAG7 7 93167802Sjkim#define ACPI_DMT_FLAGS0 8 94167802Sjkim#define ACPI_DMT_FLAGS2 9 95167802Sjkim#define ACPI_DMT_UINT8 10 96167802Sjkim#define ACPI_DMT_UINT16 11 97167802Sjkim#define ACPI_DMT_UINT24 12 98167802Sjkim#define ACPI_DMT_UINT32 13 99167802Sjkim#define ACPI_DMT_UINT56 14 100167802Sjkim#define ACPI_DMT_UINT64 15 101167802Sjkim#define ACPI_DMT_STRING 16 102167802Sjkim#define ACPI_DMT_NAME4 17 103167802Sjkim#define ACPI_DMT_NAME6 18 104167802Sjkim#define ACPI_DMT_NAME8 19 105167802Sjkim#define ACPI_DMT_CHKSUM 20 106167802Sjkim#define ACPI_DMT_SPACEID 21 107167802Sjkim#define ACPI_DMT_GAS 22 108193267Sjkim#define ACPI_DMT_ASF 23 109193267Sjkim#define ACPI_DMT_DMAR 24 110193267Sjkim#define ACPI_DMT_HEST 25 111193267Sjkim#define ACPI_DMT_HESTNTFY 26 112193267Sjkim#define ACPI_DMT_HESTNTYP 27 113193267Sjkim#define ACPI_DMT_MADT 28 114193267Sjkim#define ACPI_DMT_SRAT 29 115193267Sjkim#define ACPI_DMT_EXIT 30 116193267Sjkim#define ACPI_DMT_SIG 31 117193267Sjkim#define ACPI_DMT_FADTPM 32 118197104Sjkim#define ACPI_DMT_BUF16 33 119197104Sjkim#define ACPI_DMT_IVRS 34 120209746Sjkim#define ACPI_DMT_BUFFER 35 121209746Sjkim#define ACPI_DMT_PCI_PATH 36 122209746Sjkim#define ACPI_DMT_EINJACT 37 123209746Sjkim#define ACPI_DMT_EINJINST 38 124209746Sjkim#define ACPI_DMT_ERSTACT 39 125209746Sjkim#define ACPI_DMT_ERSTINST 40 126216471Sjkim#define ACPI_DMT_ACCWIDTH 41 127217365Sjkim#define ACPI_DMT_UNICODE 42 128217365Sjkim#define ACPI_DMT_UUID 43 129217365Sjkim#define ACPI_DMT_DEVICE_PATH 44 130167802Sjkim 131197104Sjkim 132167802Sjkimtypedef 133193267Sjkimvoid (*ACPI_DMTABLE_HANDLER) ( 134167802Sjkim ACPI_TABLE_HEADER *Table); 135167802Sjkim 136209746Sjkimtypedef 137209746SjkimACPI_STATUS (*ACPI_CMTABLE_HANDLER) ( 138209746Sjkim void **PFieldList); 139209746Sjkim 140167802Sjkimtypedef struct acpi_dmtable_data 141167802Sjkim{ 142167802Sjkim char *Signature; 143193267Sjkim ACPI_DMTABLE_INFO *TableInfo; 144193267Sjkim ACPI_DMTABLE_HANDLER TableHandler; 145209746Sjkim ACPI_CMTABLE_HANDLER CmTableHandler; 146209746Sjkim const unsigned char *Template; 147167802Sjkim char *Name; 148167802Sjkim 149167802Sjkim} ACPI_DMTABLE_DATA; 150167802Sjkim 151167802Sjkim 152100966Siwasakitypedef struct acpi_op_walk_info 153100966Siwasaki{ 154100966Siwasaki UINT32 Level; 155167802Sjkim UINT32 LastLevel; 156167802Sjkim UINT32 Count; 157100966Siwasaki UINT32 BitOffset; 158167802Sjkim UINT32 Flags; 159151937Sjkim ACPI_WALK_STATE *WalkState; 160100966Siwasaki 161100966Siwasaki} ACPI_OP_WALK_INFO; 162100966Siwasaki 163209746Sjkim/* 164209746Sjkim * TBD - another copy of this is in asltypes.h, fix 165209746Sjkim */ 166209746Sjkim#ifndef ASL_WALK_CALLBACK_DEFINED 167100966Siwasakitypedef 168100966SiwasakiACPI_STATUS (*ASL_WALK_CALLBACK) ( 169100966Siwasaki ACPI_PARSE_OBJECT *Op, 170100966Siwasaki UINT32 Level, 171100966Siwasaki void *Context); 172209746Sjkim#define ASL_WALK_CALLBACK_DEFINED 173209746Sjkim#endif 174100966Siwasaki 175209746Sjkim 176167802Sjkimtypedef struct acpi_resource_tag 177167802Sjkim{ 178167802Sjkim UINT32 BitIndex; 179167802Sjkim char *Tag; 180100966Siwasaki 181167802Sjkim} ACPI_RESOURCE_TAG; 182167802Sjkim 183167802Sjkim/* Strings used for decoding flags to ASL keywords */ 184167802Sjkim 185167802Sjkimextern const char *AcpiGbl_WordDecode[]; 186167802Sjkimextern const char *AcpiGbl_IrqDecode[]; 187167802Sjkimextern const char *AcpiGbl_LockRule[]; 188167802Sjkimextern const char *AcpiGbl_AccessTypes[]; 189167802Sjkimextern const char *AcpiGbl_UpdateRules[]; 190167802Sjkimextern const char *AcpiGbl_MatchOps[]; 191167802Sjkim 192167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoAsf0[]; 193167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoAsf1[]; 194167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoAsf1a[]; 195167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoAsf2[]; 196167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoAsf2a[]; 197167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoAsf3[]; 198167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoAsf4[]; 199167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoAsfHdr[]; 200167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoBoot[]; 201193267Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoBert[]; 202167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoCpep[]; 203167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoCpep0[]; 204167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoDbgp[]; 205167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoDmar[]; 206167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoDmarHdr[]; 207167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoDmarScope[]; 208167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoDmar0[]; 209167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoDmar1[]; 210193267Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoDmar2[]; 211197104Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoDmar3[]; 212167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoEcdt[]; 213193267Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoEinj[]; 214193267Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoEinj0[]; 215193267Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoErst[]; 216209746Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoErst0[]; 217167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoFacs[]; 218167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoFadt1[]; 219167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoFadt2[]; 220193267Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoFadt3[]; 221167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoGas[]; 222167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoHeader[]; 223193267Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoHest[]; 224193267Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoHest0[]; 225193267Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoHest1[]; 226197104Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoHest2[]; 227193267Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoHest6[]; 228193267Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoHest7[]; 229193267Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoHest8[]; 230193267Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoHest9[]; 231193267Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoHestNotify[]; 232197104Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoHestBank[]; 233167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoHpet[]; 234197104Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs[]; 235197104Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs0[]; 236197104Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs1[]; 237197104Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs4[]; 238197104Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs8a[]; 239197104Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs8b[]; 240197104Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs8c[]; 241197104Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrsHdr[]; 242167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt[]; 243167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt0[]; 244167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt1[]; 245167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt2[]; 246167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt3[]; 247167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt4[]; 248167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt5[]; 249167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt6[]; 250167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt7[]; 251167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt8[]; 252193267Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt9[]; 253193267Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt10[]; 254167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoMadtHdr[]; 255167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoMcfg[]; 256167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoMcfg0[]; 257204773Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoMchi[]; 258197104Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoMsct[]; 259197104Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoMsct0[]; 260167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoRsdp1[]; 261167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoRsdp2[]; 262167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoSbst[]; 263193267Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoSlic[]; 264167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoSlit[]; 265167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoSpcr[]; 266167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoSpmi[]; 267167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoSrat[]; 268193267Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoSratHdr[]; 269167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoSrat0[]; 270167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoSrat1[]; 271193267Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoSrat2[]; 272167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoTcpa[]; 273197104Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoUefi[]; 274197104Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoWaet[]; 275197104Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoWdat[]; 276197104Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoWdat0[]; 277209746Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoWddt[]; 278167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoWdrt[]; 279167802Sjkim 280217365Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoGeneric[][2]; 281167802Sjkim 282217365Sjkim 283100966Siwasaki/* 284167802Sjkim * dmtable 285167802Sjkim */ 286209746Sjkimextern ACPI_DMTABLE_DATA AcpiDmTableData[]; 287209746Sjkim 288209746SjkimUINT8 289209746SjkimAcpiDmGenerateChecksum ( 290209746Sjkim void *Table, 291209746Sjkim UINT32 Length, 292209746Sjkim UINT8 OriginalChecksum); 293209746Sjkim 294209746SjkimACPI_DMTABLE_DATA * 295209746SjkimAcpiDmGetTableData ( 296209746Sjkim char *Signature); 297209746Sjkim 298167802Sjkimvoid 299167802SjkimAcpiDmDumpDataTable ( 300167802Sjkim ACPI_TABLE_HEADER *Table); 301167802Sjkim 302193267SjkimACPI_STATUS 303167802SjkimAcpiDmDumpTable ( 304167802Sjkim UINT32 TableLength, 305167802Sjkim UINT32 TableOffset, 306167802Sjkim void *Table, 307167802Sjkim UINT32 SubTableLength, 308167802Sjkim ACPI_DMTABLE_INFO *Info); 309167802Sjkim 310167802Sjkimvoid 311167802SjkimAcpiDmLineHeader ( 312167802Sjkim UINT32 Offset, 313167802Sjkim UINT32 ByteLength, 314167802Sjkim char *Name); 315167802Sjkim 316167802Sjkimvoid 317167802SjkimAcpiDmLineHeader2 ( 318167802Sjkim UINT32 Offset, 319167802Sjkim UINT32 ByteLength, 320167802Sjkim char *Name, 321167802Sjkim UINT32 Value); 322167802Sjkim 323167802Sjkim 324167802Sjkim/* 325167802Sjkim * dmtbdump 326167802Sjkim */ 327167802Sjkimvoid 328167802SjkimAcpiDmDumpAsf ( 329167802Sjkim ACPI_TABLE_HEADER *Table); 330167802Sjkim 331167802Sjkimvoid 332167802SjkimAcpiDmDumpCpep ( 333167802Sjkim ACPI_TABLE_HEADER *Table); 334167802Sjkim 335167802Sjkimvoid 336167802SjkimAcpiDmDumpDmar ( 337167802Sjkim ACPI_TABLE_HEADER *Table); 338167802Sjkim 339167802Sjkimvoid 340193267SjkimAcpiDmDumpEinj ( 341193267Sjkim ACPI_TABLE_HEADER *Table); 342193267Sjkim 343193267Sjkimvoid 344193267SjkimAcpiDmDumpErst ( 345193267Sjkim ACPI_TABLE_HEADER *Table); 346193267Sjkim 347193267Sjkimvoid 348167802SjkimAcpiDmDumpFadt ( 349167802Sjkim ACPI_TABLE_HEADER *Table); 350167802Sjkim 351167802Sjkimvoid 352193267SjkimAcpiDmDumpHest ( 353167802Sjkim ACPI_TABLE_HEADER *Table); 354167802Sjkim 355167802Sjkimvoid 356197104SjkimAcpiDmDumpIvrs ( 357197104Sjkim ACPI_TABLE_HEADER *Table); 358197104Sjkim 359197104Sjkimvoid 360167802SjkimAcpiDmDumpMcfg ( 361167802Sjkim ACPI_TABLE_HEADER *Table); 362167802Sjkim 363167802Sjkimvoid 364167802SjkimAcpiDmDumpMadt ( 365167802Sjkim ACPI_TABLE_HEADER *Table); 366167802Sjkim 367197104Sjkimvoid 368197104SjkimAcpiDmDumpMsct ( 369197104Sjkim ACPI_TABLE_HEADER *Table); 370197104Sjkim 371167802SjkimUINT32 372167802SjkimAcpiDmDumpRsdp ( 373167802Sjkim ACPI_TABLE_HEADER *Table); 374167802Sjkim 375167802Sjkimvoid 376167802SjkimAcpiDmDumpRsdt ( 377167802Sjkim ACPI_TABLE_HEADER *Table); 378167802Sjkim 379167802Sjkimvoid 380167802SjkimAcpiDmDumpSlit ( 381167802Sjkim ACPI_TABLE_HEADER *Table); 382167802Sjkim 383167802Sjkimvoid 384193267SjkimAcpiDmDumpSrat ( 385193267Sjkim ACPI_TABLE_HEADER *Table); 386193267Sjkim 387193267Sjkimvoid 388197104SjkimAcpiDmDumpWdat ( 389197104Sjkim ACPI_TABLE_HEADER *Table); 390197104Sjkim 391197104Sjkimvoid 392167802SjkimAcpiDmDumpXsdt ( 393167802Sjkim ACPI_TABLE_HEADER *Table); 394167802Sjkim 395167802Sjkim 396167802Sjkim/* 397100966Siwasaki * dmwalk 398100966Siwasaki */ 399100966Siwasakivoid 400100966SiwasakiAcpiDmDisassemble ( 401100966Siwasaki ACPI_WALK_STATE *WalkState, 402100966Siwasaki ACPI_PARSE_OBJECT *Origin, 403100966Siwasaki UINT32 NumOpcodes); 404100966Siwasaki 405167802Sjkimvoid 406167802SjkimAcpiDmWalkParseTree ( 407167802Sjkim ACPI_PARSE_OBJECT *Op, 408167802Sjkim ASL_WALK_CALLBACK DescendingCallback, 409167802Sjkim ASL_WALK_CALLBACK AscendingCallback, 410167802Sjkim void *Context); 411100966Siwasaki 412167802Sjkim 413151937Sjkim/* 414151937Sjkim * dmopcode 415151937Sjkim */ 416100966Siwasakivoid 417100966SiwasakiAcpiDmDisassembleOneOp ( 418100966Siwasaki ACPI_WALK_STATE *WalkState, 419102550Siwasaki ACPI_OP_WALK_INFO *Info, 420100966Siwasaki ACPI_PARSE_OBJECT *Op); 421100966Siwasaki 422100966Siwasakivoid 423100966SiwasakiAcpiDmDecodeInternalObject ( 424100966Siwasaki ACPI_OPERAND_OBJECT *ObjDesc); 425100966Siwasaki 426100966SiwasakiUINT32 427100966SiwasakiAcpiDmListType ( 428100966Siwasaki ACPI_PARSE_OBJECT *Op); 429100966Siwasaki 430100966Siwasakivoid 431100966SiwasakiAcpiDmMethodFlags ( 432100966Siwasaki ACPI_PARSE_OBJECT *Op); 433100966Siwasaki 434100966Siwasakivoid 435100966SiwasakiAcpiDmFieldFlags ( 436100966Siwasaki ACPI_PARSE_OBJECT *Op); 437100966Siwasaki 438100966Siwasakivoid 439100966SiwasakiAcpiDmAddressSpace ( 440100966Siwasaki UINT8 SpaceId); 441100966Siwasaki 442100966Siwasakivoid 443100966SiwasakiAcpiDmRegionFlags ( 444100966Siwasaki ACPI_PARSE_OBJECT *Op); 445100966Siwasaki 446100966Siwasakivoid 447100966SiwasakiAcpiDmMatchOp ( 448100966Siwasaki ACPI_PARSE_OBJECT *Op); 449100966Siwasaki 450100966Siwasaki 451102550Siwasaki/* 452151937Sjkim * dmnames 453117521Snjl */ 454151937SjkimUINT32 455151937SjkimAcpiDmDumpName ( 456193267Sjkim UINT32 Name); 457117521Snjl 458151937SjkimACPI_STATUS 459151937SjkimAcpiPsDisplayObjectPathname ( 460151937Sjkim ACPI_WALK_STATE *WalkState, 461151937Sjkim ACPI_PARSE_OBJECT *Op); 462151937Sjkim 463117521Snjlvoid 464151937SjkimAcpiDmNamestring ( 465151937Sjkim char *Name); 466117521Snjl 467151937Sjkim 468151937Sjkim/* 469151937Sjkim * dmobject 470151937Sjkim */ 471117521Snjlvoid 472117521SnjlAcpiDmDisplayInternalObject ( 473117521Snjl ACPI_OPERAND_OBJECT *ObjDesc, 474117521Snjl ACPI_WALK_STATE *WalkState); 475117521Snjl 476117521Snjlvoid 477117521SnjlAcpiDmDisplayArguments ( 478117521Snjl ACPI_WALK_STATE *WalkState); 479117521Snjl 480117521Snjlvoid 481117521SnjlAcpiDmDisplayLocals ( 482117521Snjl ACPI_WALK_STATE *WalkState); 483117521Snjl 484117521Snjlvoid 485117521SnjlAcpiDmDumpMethodInfo ( 486117521Snjl ACPI_STATUS Status, 487117521Snjl ACPI_WALK_STATE *WalkState, 488117521Snjl ACPI_PARSE_OBJECT *Op); 489117521Snjl 490117521Snjl 491117521Snjl/* 492100966Siwasaki * dmbuffer 493100966Siwasaki */ 494151937Sjkimvoid 495151937SjkimAcpiDmDisasmByteList ( 496151937Sjkim UINT32 Level, 497151937Sjkim UINT8 *ByteData, 498151937Sjkim UINT32 ByteCount); 499100966Siwasaki 500100966Siwasakivoid 501151937SjkimAcpiDmByteList ( 502151937Sjkim ACPI_OP_WALK_INFO *Info, 503100966Siwasaki ACPI_PARSE_OBJECT *Op); 504100966Siwasaki 505100966Siwasakivoid 506151937SjkimAcpiDmIsEisaId ( 507151937Sjkim ACPI_PARSE_OBJECT *Op); 508151937Sjkim 509151937Sjkimvoid 510100966SiwasakiAcpiDmEisaId ( 511100966Siwasaki UINT32 EncodedId); 512100966Siwasaki 513100966SiwasakiBOOLEAN 514100966SiwasakiAcpiDmIsUnicodeBuffer ( 515100966Siwasaki ACPI_PARSE_OBJECT *Op); 516100966Siwasaki 517100966SiwasakiBOOLEAN 518100966SiwasakiAcpiDmIsStringBuffer ( 519100966Siwasaki ACPI_PARSE_OBJECT *Op); 520100966Siwasaki 521100966Siwasaki 522100966Siwasaki/* 523198237Sjkim * dmextern 524198237Sjkim */ 525210976Sjkim 526210976SjkimACPI_STATUS 527210976SjkimAcpiDmAddToExternalFileList ( 528210976Sjkim char *PathList); 529210976Sjkim 530198237Sjkimvoid 531210976SjkimAcpiDmClearExternalFileList ( 532210976Sjkim void); 533210976Sjkim 534210976Sjkimvoid 535198237SjkimAcpiDmAddToExternalList ( 536198237Sjkim ACPI_PARSE_OBJECT *Op, 537198237Sjkim char *Path, 538198237Sjkim UINT8 Type, 539198237Sjkim UINT32 Value); 540198237Sjkim 541198237Sjkimvoid 542198237SjkimAcpiDmAddExternalsToNamespace ( 543198237Sjkim void); 544198237Sjkim 545198237SjkimUINT32 546198237SjkimAcpiDmGetExternalMethodCount ( 547198237Sjkim void); 548198237Sjkim 549198237Sjkimvoid 550198237SjkimAcpiDmClearExternalList ( 551198237Sjkim void); 552198237Sjkim 553198237Sjkimvoid 554198237SjkimAcpiDmEmitExternals ( 555198237Sjkim void); 556198237Sjkim 557198237Sjkim 558198237Sjkim/* 559100966Siwasaki * dmresrc 560100966Siwasaki */ 561151937Sjkimvoid 562151937SjkimAcpiDmDumpInteger8 ( 563151937Sjkim UINT8 Value, 564151937Sjkim char *Name); 565100966Siwasaki 566100966Siwasakivoid 567151937SjkimAcpiDmDumpInteger16 ( 568151937Sjkim UINT16 Value, 569151937Sjkim char *Name); 570100966Siwasaki 571100966Siwasakivoid 572151937SjkimAcpiDmDumpInteger32 ( 573151937Sjkim UINT32 Value, 574151937Sjkim char *Name); 575100966Siwasaki 576100966Siwasakivoid 577151937SjkimAcpiDmDumpInteger64 ( 578151937Sjkim UINT64 Value, 579151937Sjkim char *Name); 580151937Sjkim 581151937Sjkimvoid 582151937SjkimAcpiDmResourceTemplate ( 583102550Siwasaki ACPI_OP_WALK_INFO *Info, 584167802Sjkim ACPI_PARSE_OBJECT *Op, 585100966Siwasaki UINT8 *ByteData, 586100966Siwasaki UINT32 ByteCount); 587100966Siwasaki 588167802SjkimACPI_STATUS 589151937SjkimAcpiDmIsResourceTemplate ( 590100966Siwasaki ACPI_PARSE_OBJECT *Op); 591100966Siwasaki 592100966Siwasakivoid 593100966SiwasakiAcpiDmBitList ( 594100966Siwasaki UINT16 Mask); 595100966Siwasaki 596107325Siwasakivoid 597167802SjkimAcpiDmDescriptorName ( 598167802Sjkim void); 599151937Sjkim 600167802Sjkim 601100966Siwasaki/* 602100966Siwasaki * dmresrcl 603100966Siwasaki */ 604100966Siwasakivoid 605100966SiwasakiAcpiDmWordDescriptor ( 606151937Sjkim AML_RESOURCE *Resource, 607100966Siwasaki UINT32 Length, 608100966Siwasaki UINT32 Level); 609100966Siwasaki 610100966Siwasakivoid 611100966SiwasakiAcpiDmDwordDescriptor ( 612151937Sjkim AML_RESOURCE *Resource, 613100966Siwasaki UINT32 Length, 614100966Siwasaki UINT32 Level); 615100966Siwasaki 616100966Siwasakivoid 617151937SjkimAcpiDmExtendedDescriptor ( 618151937Sjkim AML_RESOURCE *Resource, 619151937Sjkim UINT32 Length, 620151937Sjkim UINT32 Level); 621151937Sjkim 622151937Sjkimvoid 623100966SiwasakiAcpiDmQwordDescriptor ( 624151937Sjkim AML_RESOURCE *Resource, 625100966Siwasaki UINT32 Length, 626100966Siwasaki UINT32 Level); 627100966Siwasaki 628100966Siwasakivoid 629100966SiwasakiAcpiDmMemory24Descriptor ( 630151937Sjkim AML_RESOURCE *Resource, 631100966Siwasaki UINT32 Length, 632100966Siwasaki UINT32 Level); 633100966Siwasaki 634100966Siwasakivoid 635100966SiwasakiAcpiDmMemory32Descriptor ( 636151937Sjkim AML_RESOURCE *Resource, 637100966Siwasaki UINT32 Length, 638100966Siwasaki UINT32 Level); 639100966Siwasaki 640100966Siwasakivoid 641151937SjkimAcpiDmFixedMemory32Descriptor ( 642151937Sjkim AML_RESOURCE *Resource, 643100966Siwasaki UINT32 Length, 644100966Siwasaki UINT32 Level); 645100966Siwasaki 646100966Siwasakivoid 647100966SiwasakiAcpiDmGenericRegisterDescriptor ( 648151937Sjkim AML_RESOURCE *Resource, 649100966Siwasaki UINT32 Length, 650100966Siwasaki UINT32 Level); 651100966Siwasaki 652100966Siwasakivoid 653100966SiwasakiAcpiDmInterruptDescriptor ( 654151937Sjkim AML_RESOURCE *Resource, 655100966Siwasaki UINT32 Length, 656100966Siwasaki UINT32 Level); 657100966Siwasaki 658100966Siwasakivoid 659100966SiwasakiAcpiDmVendorLargeDescriptor ( 660151937Sjkim AML_RESOURCE *Resource, 661100966Siwasaki UINT32 Length, 662100966Siwasaki UINT32 Level); 663100966Siwasaki 664151937Sjkimvoid 665151937SjkimAcpiDmVendorCommon ( 666151937Sjkim char *Name, 667151937Sjkim UINT8 *ByteData, 668151937Sjkim UINT32 Length, 669151937Sjkim UINT32 Level); 670100966Siwasaki 671151937Sjkim 672100966Siwasaki/* 673100966Siwasaki * dmresrcs 674100966Siwasaki */ 675100966Siwasakivoid 676100966SiwasakiAcpiDmIrqDescriptor ( 677151937Sjkim AML_RESOURCE *Resource, 678100966Siwasaki UINT32 Length, 679100966Siwasaki UINT32 Level); 680100966Siwasaki 681100966Siwasakivoid 682100966SiwasakiAcpiDmDmaDescriptor ( 683151937Sjkim AML_RESOURCE *Resource, 684100966Siwasaki UINT32 Length, 685100966Siwasaki UINT32 Level); 686100966Siwasaki 687100966Siwasakivoid 688100966SiwasakiAcpiDmIoDescriptor ( 689151937Sjkim AML_RESOURCE *Resource, 690100966Siwasaki UINT32 Length, 691100966Siwasaki UINT32 Level); 692100966Siwasaki 693100966Siwasakivoid 694100966SiwasakiAcpiDmFixedIoDescriptor ( 695151937Sjkim AML_RESOURCE *Resource, 696100966Siwasaki UINT32 Length, 697100966Siwasaki UINT32 Level); 698100966Siwasaki 699100966Siwasakivoid 700100966SiwasakiAcpiDmStartDependentDescriptor ( 701151937Sjkim AML_RESOURCE *Resource, 702100966Siwasaki UINT32 Length, 703100966Siwasaki UINT32 Level); 704100966Siwasaki 705100966Siwasakivoid 706100966SiwasakiAcpiDmEndDependentDescriptor ( 707151937Sjkim AML_RESOURCE *Resource, 708100966Siwasaki UINT32 Length, 709100966Siwasaki UINT32 Level); 710100966Siwasaki 711100966Siwasakivoid 712100966SiwasakiAcpiDmVendorSmallDescriptor ( 713151937Sjkim AML_RESOURCE *Resource, 714100966Siwasaki UINT32 Length, 715100966Siwasaki UINT32 Level); 716100966Siwasaki 717100966Siwasaki 718128212Snjl/* 719128212Snjl * dmutils 720128212Snjl */ 721128212Snjlvoid 722198237SjkimAcpiDmDecodeAttribute ( 723198237Sjkim UINT8 Attribute); 724128212Snjl 725198237Sjkimvoid 726198237SjkimAcpiDmIndent ( 727198237Sjkim UINT32 Level); 728198237Sjkim 729198237SjkimBOOLEAN 730198237SjkimAcpiDmCommaIfListMember ( 731198237Sjkim ACPI_PARSE_OBJECT *Op); 732198237Sjkim 733198237Sjkimvoid 734198237SjkimAcpiDmCommaIfFieldMember ( 735198237Sjkim ACPI_PARSE_OBJECT *Op); 736198237Sjkim 737198237Sjkim 738167802Sjkim/* 739167802Sjkim * dmrestag 740167802Sjkim */ 741167802Sjkimvoid 742167802SjkimAcpiDmFindResources ( 743167802Sjkim ACPI_PARSE_OBJECT *Root); 744167802Sjkim 745167802Sjkimvoid 746167802SjkimAcpiDmCheckResourceReference ( 747167802Sjkim ACPI_PARSE_OBJECT *Op, 748167802Sjkim ACPI_WALK_STATE *WalkState); 749167802Sjkim 750209746Sjkim 751209746Sjkim/* 752209746Sjkim * acdisasm 753209746Sjkim */ 754209746Sjkimvoid 755209746SjkimAdDisassemblerHeader ( 756209746Sjkim char *Filename); 757209746Sjkim 758209746Sjkim 759100966Siwasaki#endif /* __ACDISASM_H__ */ 760