acdisasm.h revision 237412
1100966Siwasaki/****************************************************************************** 2100966Siwasaki * 3100966Siwasaki * Name: acdisasm.h - AML disassembler 4100966Siwasaki * 5100966Siwasaki *****************************************************************************/ 6100966Siwasaki 7217365Sjkim/* 8229989Sjkim * Copyright (C) 2000 - 2012, 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; 66229989Sjkim UINT16 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. 83228110Sjkim * Note: 0-7 must not change, they are used as a flag shift value. Other 84228110Sjkim * than those, new values can be added wherever appropriate. 85167802Sjkim */ 86228110Sjkimtypedef enum 87228110Sjkim{ 88228110Sjkim /* Simple Data Types */ 89167802Sjkim 90228110Sjkim ACPI_DMT_FLAG0 = 0, 91228110Sjkim ACPI_DMT_FLAG1 = 1, 92228110Sjkim ACPI_DMT_FLAG2 = 2, 93228110Sjkim ACPI_DMT_FLAG3 = 3, 94228110Sjkim ACPI_DMT_FLAG4 = 4, 95228110Sjkim ACPI_DMT_FLAG5 = 5, 96228110Sjkim ACPI_DMT_FLAG6 = 6, 97228110Sjkim ACPI_DMT_FLAG7 = 7, 98228110Sjkim ACPI_DMT_FLAGS0, 99228110Sjkim ACPI_DMT_FLAGS1, 100228110Sjkim ACPI_DMT_FLAGS2, 101228110Sjkim ACPI_DMT_FLAGS4, 102228110Sjkim ACPI_DMT_UINT8, 103228110Sjkim ACPI_DMT_UINT16, 104228110Sjkim ACPI_DMT_UINT24, 105228110Sjkim ACPI_DMT_UINT32, 106228110Sjkim ACPI_DMT_UINT40, 107228110Sjkim ACPI_DMT_UINT48, 108228110Sjkim ACPI_DMT_UINT56, 109228110Sjkim ACPI_DMT_UINT64, 110228110Sjkim ACPI_DMT_BUF7, 111228110Sjkim ACPI_DMT_BUF16, 112228110Sjkim ACPI_DMT_BUF128, 113228110Sjkim ACPI_DMT_SIG, 114228110Sjkim ACPI_DMT_STRING, 115228110Sjkim ACPI_DMT_NAME4, 116228110Sjkim ACPI_DMT_NAME6, 117228110Sjkim ACPI_DMT_NAME8, 118228110Sjkim 119228110Sjkim /* Types that are decoded to strings and miscellaneous */ 120228110Sjkim 121228110Sjkim ACPI_DMT_ACCWIDTH, 122228110Sjkim ACPI_DMT_CHKSUM, 123228110Sjkim ACPI_DMT_GAS, 124228110Sjkim ACPI_DMT_SPACEID, 125228110Sjkim ACPI_DMT_UNICODE, 126228110Sjkim ACPI_DMT_UUID, 127228110Sjkim 128228110Sjkim /* Types used only for the Data Table Compiler */ 129228110Sjkim 130228110Sjkim ACPI_DMT_BUFFER, 131228110Sjkim ACPI_DMT_DEVICE_PATH, 132228110Sjkim ACPI_DMT_LABEL, 133228110Sjkim ACPI_DMT_PCI_PATH, 134228110Sjkim 135228110Sjkim /* Types that are specific to particular ACPI tables */ 136228110Sjkim 137228110Sjkim ACPI_DMT_ASF, 138228110Sjkim ACPI_DMT_DMAR, 139228110Sjkim ACPI_DMT_EINJACT, 140228110Sjkim ACPI_DMT_EINJINST, 141228110Sjkim ACPI_DMT_ERSTACT, 142228110Sjkim ACPI_DMT_ERSTINST, 143228110Sjkim ACPI_DMT_FADTPM, 144228110Sjkim ACPI_DMT_HEST, 145228110Sjkim ACPI_DMT_HESTNTFY, 146228110Sjkim ACPI_DMT_HESTNTYP, 147228110Sjkim ACPI_DMT_IVRS, 148228110Sjkim ACPI_DMT_MADT, 149228110Sjkim ACPI_DMT_PMTT, 150228110Sjkim ACPI_DMT_SLIC, 151228110Sjkim ACPI_DMT_SRAT, 152228110Sjkim 153228110Sjkim /* Special opcodes */ 154228110Sjkim 155228110Sjkim ACPI_DMT_EXTRA_TEXT, 156228110Sjkim ACPI_DMT_EXIT 157228110Sjkim 158228110Sjkim} ACPI_ENTRY_TYPES; 159228110Sjkim 160167802Sjkimtypedef 161193267Sjkimvoid (*ACPI_DMTABLE_HANDLER) ( 162167802Sjkim ACPI_TABLE_HEADER *Table); 163167802Sjkim 164209746Sjkimtypedef 165209746SjkimACPI_STATUS (*ACPI_CMTABLE_HANDLER) ( 166209746Sjkim void **PFieldList); 167209746Sjkim 168167802Sjkimtypedef struct acpi_dmtable_data 169167802Sjkim{ 170167802Sjkim char *Signature; 171193267Sjkim ACPI_DMTABLE_INFO *TableInfo; 172193267Sjkim ACPI_DMTABLE_HANDLER TableHandler; 173209746Sjkim ACPI_CMTABLE_HANDLER CmTableHandler; 174209746Sjkim const unsigned char *Template; 175167802Sjkim char *Name; 176167802Sjkim 177167802Sjkim} ACPI_DMTABLE_DATA; 178167802Sjkim 179167802Sjkim 180100966Siwasakitypedef struct acpi_op_walk_info 181100966Siwasaki{ 182100966Siwasaki UINT32 Level; 183167802Sjkim UINT32 LastLevel; 184167802Sjkim UINT32 Count; 185100966Siwasaki UINT32 BitOffset; 186167802Sjkim UINT32 Flags; 187151937Sjkim ACPI_WALK_STATE *WalkState; 188100966Siwasaki 189100966Siwasaki} ACPI_OP_WALK_INFO; 190100966Siwasaki 191209746Sjkim/* 192209746Sjkim * TBD - another copy of this is in asltypes.h, fix 193209746Sjkim */ 194209746Sjkim#ifndef ASL_WALK_CALLBACK_DEFINED 195100966Siwasakitypedef 196100966SiwasakiACPI_STATUS (*ASL_WALK_CALLBACK) ( 197100966Siwasaki ACPI_PARSE_OBJECT *Op, 198100966Siwasaki UINT32 Level, 199100966Siwasaki void *Context); 200209746Sjkim#define ASL_WALK_CALLBACK_DEFINED 201209746Sjkim#endif 202100966Siwasaki 203228110Sjkimtypedef 204228110Sjkimvoid (*ACPI_RESOURCE_HANDLER) ( 205228110Sjkim AML_RESOURCE *Resource, 206228110Sjkim UINT32 Length, 207228110Sjkim UINT32 Level); 208209746Sjkim 209167802Sjkimtypedef struct acpi_resource_tag 210167802Sjkim{ 211167802Sjkim UINT32 BitIndex; 212167802Sjkim char *Tag; 213100966Siwasaki 214167802Sjkim} ACPI_RESOURCE_TAG; 215167802Sjkim 216167802Sjkim/* Strings used for decoding flags to ASL keywords */ 217167802Sjkim 218167802Sjkimextern const char *AcpiGbl_WordDecode[]; 219167802Sjkimextern const char *AcpiGbl_IrqDecode[]; 220167802Sjkimextern const char *AcpiGbl_LockRule[]; 221167802Sjkimextern const char *AcpiGbl_AccessTypes[]; 222167802Sjkimextern const char *AcpiGbl_UpdateRules[]; 223167802Sjkimextern const char *AcpiGbl_MatchOps[]; 224167802Sjkim 225167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoAsf0[]; 226167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoAsf1[]; 227167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoAsf1a[]; 228167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoAsf2[]; 229167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoAsf2a[]; 230167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoAsf3[]; 231167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoAsf4[]; 232167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoAsfHdr[]; 233167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoBoot[]; 234193267Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoBert[]; 235228110Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoBgrt[]; 236167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoCpep[]; 237167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoCpep0[]; 238167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoDbgp[]; 239167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoDmar[]; 240167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoDmarHdr[]; 241167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoDmarScope[]; 242167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoDmar0[]; 243167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoDmar1[]; 244193267Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoDmar2[]; 245197104Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoDmar3[]; 246228110Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoDrtm[]; 247167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoEcdt[]; 248193267Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoEinj[]; 249193267Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoEinj0[]; 250193267Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoErst[]; 251209746Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoErst0[]; 252167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoFacs[]; 253167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoFadt1[]; 254167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoFadt2[]; 255193267Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoFadt3[]; 256228110Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoFadt5[]; 257228110Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoFpdt[]; 258228110Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoFpdtHdr[]; 259228110Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoFpdt0[]; 260228110Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoFpdt1[]; 261167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoGas[]; 262228110Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoGtdt[]; 263167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoHeader[]; 264193267Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoHest[]; 265193267Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoHest0[]; 266193267Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoHest1[]; 267197104Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoHest2[]; 268193267Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoHest6[]; 269193267Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoHest7[]; 270193267Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoHest8[]; 271193267Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoHest9[]; 272193267Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoHestNotify[]; 273197104Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoHestBank[]; 274167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoHpet[]; 275197104Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs[]; 276197104Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs0[]; 277197104Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs1[]; 278197104Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs4[]; 279197104Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs8a[]; 280197104Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs8b[]; 281197104Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs8c[]; 282197104Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrsHdr[]; 283167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt[]; 284167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt0[]; 285167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt1[]; 286167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt2[]; 287167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt3[]; 288167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt4[]; 289167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt5[]; 290167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt6[]; 291167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt7[]; 292167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt8[]; 293193267Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt9[]; 294193267Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt10[]; 295228110Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt11[]; 296228110Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt12[]; 297167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoMadtHdr[]; 298167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoMcfg[]; 299167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoMcfg0[]; 300204773Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoMchi[]; 301228110Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoMpst[]; 302228110Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoMpst0[]; 303228110Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoMpst0A[]; 304228110Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoMpst0B[]; 305228110Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoMpst1[]; 306228110Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoMpst2[]; 307197104Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoMsct[]; 308197104Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoMsct0[]; 309228110Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoPmtt[]; 310228110Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoPmtt0[]; 311228110Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoPmtt1[]; 312228110Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoPmtt1a[]; 313228110Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoPmtt2[]; 314228110Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoPmttHdr[]; 315228110Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoPcct[]; 316228110Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoPcct0[]; 317167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoRsdp1[]; 318167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoRsdp2[]; 319228110Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoS3pt[]; 320228110Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoS3ptHdr[]; 321228110Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoS3pt0[]; 322228110Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoS3pt1[]; 323167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoSbst[]; 324219707Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoSlicHdr[]; 325219707Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoSlic0[]; 326219707Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoSlic1[]; 327167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoSlit[]; 328167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoSpcr[]; 329167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoSpmi[]; 330167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoSrat[]; 331193267Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoSratHdr[]; 332167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoSrat0[]; 333167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoSrat1[]; 334193267Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoSrat2[]; 335167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoTcpa[]; 336197104Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoUefi[]; 337197104Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoWaet[]; 338197104Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoWdat[]; 339197104Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoWdat0[]; 340209746Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoWddt[]; 341167802Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoWdrt[]; 342167802Sjkim 343217365Sjkimextern ACPI_DMTABLE_INFO AcpiDmTableInfoGeneric[][2]; 344167802Sjkim 345217365Sjkim 346100966Siwasaki/* 347167802Sjkim * dmtable 348167802Sjkim */ 349209746Sjkimextern ACPI_DMTABLE_DATA AcpiDmTableData[]; 350209746Sjkim 351209746SjkimUINT8 352209746SjkimAcpiDmGenerateChecksum ( 353209746Sjkim void *Table, 354209746Sjkim UINT32 Length, 355209746Sjkim UINT8 OriginalChecksum); 356209746Sjkim 357209746SjkimACPI_DMTABLE_DATA * 358209746SjkimAcpiDmGetTableData ( 359209746Sjkim char *Signature); 360209746Sjkim 361167802Sjkimvoid 362167802SjkimAcpiDmDumpDataTable ( 363167802Sjkim ACPI_TABLE_HEADER *Table); 364167802Sjkim 365193267SjkimACPI_STATUS 366167802SjkimAcpiDmDumpTable ( 367167802Sjkim UINT32 TableLength, 368167802Sjkim UINT32 TableOffset, 369167802Sjkim void *Table, 370167802Sjkim UINT32 SubTableLength, 371167802Sjkim ACPI_DMTABLE_INFO *Info); 372167802Sjkim 373167802Sjkimvoid 374167802SjkimAcpiDmLineHeader ( 375167802Sjkim UINT32 Offset, 376167802Sjkim UINT32 ByteLength, 377167802Sjkim char *Name); 378167802Sjkim 379167802Sjkimvoid 380167802SjkimAcpiDmLineHeader2 ( 381167802Sjkim UINT32 Offset, 382167802Sjkim UINT32 ByteLength, 383167802Sjkim char *Name, 384167802Sjkim UINT32 Value); 385167802Sjkim 386167802Sjkim 387167802Sjkim/* 388167802Sjkim * dmtbdump 389167802Sjkim */ 390167802Sjkimvoid 391167802SjkimAcpiDmDumpAsf ( 392167802Sjkim ACPI_TABLE_HEADER *Table); 393167802Sjkim 394167802Sjkimvoid 395167802SjkimAcpiDmDumpCpep ( 396167802Sjkim ACPI_TABLE_HEADER *Table); 397167802Sjkim 398167802Sjkimvoid 399167802SjkimAcpiDmDumpDmar ( 400167802Sjkim ACPI_TABLE_HEADER *Table); 401167802Sjkim 402167802Sjkimvoid 403193267SjkimAcpiDmDumpEinj ( 404193267Sjkim ACPI_TABLE_HEADER *Table); 405193267Sjkim 406193267Sjkimvoid 407193267SjkimAcpiDmDumpErst ( 408193267Sjkim ACPI_TABLE_HEADER *Table); 409193267Sjkim 410193267Sjkimvoid 411167802SjkimAcpiDmDumpFadt ( 412167802Sjkim ACPI_TABLE_HEADER *Table); 413167802Sjkim 414167802Sjkimvoid 415228110SjkimAcpiDmDumpFpdt ( 416228110Sjkim ACPI_TABLE_HEADER *Table); 417228110Sjkim 418228110Sjkimvoid 419193267SjkimAcpiDmDumpHest ( 420167802Sjkim ACPI_TABLE_HEADER *Table); 421167802Sjkim 422167802Sjkimvoid 423197104SjkimAcpiDmDumpIvrs ( 424197104Sjkim ACPI_TABLE_HEADER *Table); 425197104Sjkim 426197104Sjkimvoid 427228110SjkimAcpiDmDumpMadt ( 428228110Sjkim ACPI_TABLE_HEADER *Table); 429228110Sjkim 430228110Sjkimvoid 431167802SjkimAcpiDmDumpMcfg ( 432167802Sjkim ACPI_TABLE_HEADER *Table); 433167802Sjkim 434167802Sjkimvoid 435228110SjkimAcpiDmDumpMpst ( 436167802Sjkim ACPI_TABLE_HEADER *Table); 437167802Sjkim 438197104Sjkimvoid 439197104SjkimAcpiDmDumpMsct ( 440197104Sjkim ACPI_TABLE_HEADER *Table); 441197104Sjkim 442228110Sjkimvoid 443228110SjkimAcpiDmDumpPcct ( 444228110Sjkim ACPI_TABLE_HEADER *Table); 445228110Sjkim 446228110Sjkimvoid 447228110SjkimAcpiDmDumpPmtt ( 448228110Sjkim ACPI_TABLE_HEADER *Table); 449228110Sjkim 450167802SjkimUINT32 451167802SjkimAcpiDmDumpRsdp ( 452167802Sjkim ACPI_TABLE_HEADER *Table); 453167802Sjkim 454167802Sjkimvoid 455167802SjkimAcpiDmDumpRsdt ( 456167802Sjkim ACPI_TABLE_HEADER *Table); 457167802Sjkim 458228110SjkimUINT32 459228110SjkimAcpiDmDumpS3pt ( 460228110Sjkim ACPI_TABLE_HEADER *Table); 461228110Sjkim 462167802Sjkimvoid 463219707SjkimAcpiDmDumpSlic ( 464219707Sjkim ACPI_TABLE_HEADER *Table); 465219707Sjkim 466219707Sjkimvoid 467167802SjkimAcpiDmDumpSlit ( 468167802Sjkim ACPI_TABLE_HEADER *Table); 469167802Sjkim 470167802Sjkimvoid 471193267SjkimAcpiDmDumpSrat ( 472193267Sjkim ACPI_TABLE_HEADER *Table); 473193267Sjkim 474193267Sjkimvoid 475197104SjkimAcpiDmDumpWdat ( 476197104Sjkim ACPI_TABLE_HEADER *Table); 477197104Sjkim 478197104Sjkimvoid 479167802SjkimAcpiDmDumpXsdt ( 480167802Sjkim ACPI_TABLE_HEADER *Table); 481167802Sjkim 482167802Sjkim 483167802Sjkim/* 484100966Siwasaki * dmwalk 485100966Siwasaki */ 486100966Siwasakivoid 487100966SiwasakiAcpiDmDisassemble ( 488100966Siwasaki ACPI_WALK_STATE *WalkState, 489100966Siwasaki ACPI_PARSE_OBJECT *Origin, 490100966Siwasaki UINT32 NumOpcodes); 491100966Siwasaki 492167802Sjkimvoid 493167802SjkimAcpiDmWalkParseTree ( 494167802Sjkim ACPI_PARSE_OBJECT *Op, 495167802Sjkim ASL_WALK_CALLBACK DescendingCallback, 496167802Sjkim ASL_WALK_CALLBACK AscendingCallback, 497167802Sjkim void *Context); 498100966Siwasaki 499167802Sjkim 500151937Sjkim/* 501151937Sjkim * dmopcode 502151937Sjkim */ 503100966Siwasakivoid 504100966SiwasakiAcpiDmDisassembleOneOp ( 505100966Siwasaki ACPI_WALK_STATE *WalkState, 506102550Siwasaki ACPI_OP_WALK_INFO *Info, 507100966Siwasaki ACPI_PARSE_OBJECT *Op); 508100966Siwasaki 509100966Siwasakivoid 510100966SiwasakiAcpiDmDecodeInternalObject ( 511100966Siwasaki ACPI_OPERAND_OBJECT *ObjDesc); 512100966Siwasaki 513100966SiwasakiUINT32 514100966SiwasakiAcpiDmListType ( 515100966Siwasaki ACPI_PARSE_OBJECT *Op); 516100966Siwasaki 517100966Siwasakivoid 518100966SiwasakiAcpiDmMethodFlags ( 519100966Siwasaki ACPI_PARSE_OBJECT *Op); 520100966Siwasaki 521100966Siwasakivoid 522237412SjkimAcpiDmPredefinedDescription ( 523237412Sjkim ACPI_PARSE_OBJECT *Op); 524237412Sjkim 525237412Sjkimvoid 526237412SjkimAcpiDmFieldPredefinedDescription ( 527237412Sjkim ACPI_PARSE_OBJECT *Op); 528237412Sjkim 529237412Sjkimvoid 530100966SiwasakiAcpiDmFieldFlags ( 531100966Siwasaki ACPI_PARSE_OBJECT *Op); 532100966Siwasaki 533100966Siwasakivoid 534100966SiwasakiAcpiDmAddressSpace ( 535100966Siwasaki UINT8 SpaceId); 536100966Siwasaki 537100966Siwasakivoid 538100966SiwasakiAcpiDmRegionFlags ( 539100966Siwasaki ACPI_PARSE_OBJECT *Op); 540100966Siwasaki 541100966Siwasakivoid 542100966SiwasakiAcpiDmMatchOp ( 543100966Siwasaki ACPI_PARSE_OBJECT *Op); 544100966Siwasaki 545100966Siwasaki 546102550Siwasaki/* 547151937Sjkim * dmnames 548117521Snjl */ 549151937SjkimUINT32 550151937SjkimAcpiDmDumpName ( 551193267Sjkim UINT32 Name); 552117521Snjl 553151937SjkimACPI_STATUS 554151937SjkimAcpiPsDisplayObjectPathname ( 555151937Sjkim ACPI_WALK_STATE *WalkState, 556151937Sjkim ACPI_PARSE_OBJECT *Op); 557151937Sjkim 558117521Snjlvoid 559151937SjkimAcpiDmNamestring ( 560151937Sjkim char *Name); 561117521Snjl 562151937Sjkim 563151937Sjkim/* 564151937Sjkim * dmobject 565151937Sjkim */ 566117521Snjlvoid 567117521SnjlAcpiDmDisplayInternalObject ( 568117521Snjl ACPI_OPERAND_OBJECT *ObjDesc, 569117521Snjl ACPI_WALK_STATE *WalkState); 570117521Snjl 571117521Snjlvoid 572117521SnjlAcpiDmDisplayArguments ( 573117521Snjl ACPI_WALK_STATE *WalkState); 574117521Snjl 575117521Snjlvoid 576117521SnjlAcpiDmDisplayLocals ( 577117521Snjl ACPI_WALK_STATE *WalkState); 578117521Snjl 579117521Snjlvoid 580117521SnjlAcpiDmDumpMethodInfo ( 581117521Snjl ACPI_STATUS Status, 582117521Snjl ACPI_WALK_STATE *WalkState, 583117521Snjl ACPI_PARSE_OBJECT *Op); 584117521Snjl 585117521Snjl 586117521Snjl/* 587100966Siwasaki * dmbuffer 588100966Siwasaki */ 589151937Sjkimvoid 590151937SjkimAcpiDmDisasmByteList ( 591151937Sjkim UINT32 Level, 592151937Sjkim UINT8 *ByteData, 593151937Sjkim UINT32 ByteCount); 594100966Siwasaki 595100966Siwasakivoid 596151937SjkimAcpiDmByteList ( 597151937Sjkim ACPI_OP_WALK_INFO *Info, 598100966Siwasaki ACPI_PARSE_OBJECT *Op); 599100966Siwasaki 600100966Siwasakivoid 601151937SjkimAcpiDmIsEisaId ( 602151937Sjkim ACPI_PARSE_OBJECT *Op); 603151937Sjkim 604151937Sjkimvoid 605100966SiwasakiAcpiDmEisaId ( 606100966Siwasaki UINT32 EncodedId); 607100966Siwasaki 608100966SiwasakiBOOLEAN 609100966SiwasakiAcpiDmIsUnicodeBuffer ( 610100966Siwasaki ACPI_PARSE_OBJECT *Op); 611100966Siwasaki 612100966SiwasakiBOOLEAN 613100966SiwasakiAcpiDmIsStringBuffer ( 614100966Siwasaki ACPI_PARSE_OBJECT *Op); 615100966Siwasaki 616100966Siwasaki 617100966Siwasaki/* 618198237Sjkim * dmextern 619198237Sjkim */ 620210976Sjkim 621210976SjkimACPI_STATUS 622210976SjkimAcpiDmAddToExternalFileList ( 623210976Sjkim char *PathList); 624210976Sjkim 625198237Sjkimvoid 626210976SjkimAcpiDmClearExternalFileList ( 627210976Sjkim void); 628210976Sjkim 629210976Sjkimvoid 630198237SjkimAcpiDmAddToExternalList ( 631198237Sjkim ACPI_PARSE_OBJECT *Op, 632198237Sjkim char *Path, 633198237Sjkim UINT8 Type, 634198237Sjkim UINT32 Value); 635198237Sjkim 636198237Sjkimvoid 637198237SjkimAcpiDmAddExternalsToNamespace ( 638198237Sjkim void); 639198237Sjkim 640198237SjkimUINT32 641198237SjkimAcpiDmGetExternalMethodCount ( 642198237Sjkim void); 643198237Sjkim 644198237Sjkimvoid 645198237SjkimAcpiDmClearExternalList ( 646198237Sjkim void); 647198237Sjkim 648198237Sjkimvoid 649198237SjkimAcpiDmEmitExternals ( 650198237Sjkim void); 651198237Sjkim 652198237Sjkim 653198237Sjkim/* 654100966Siwasaki * dmresrc 655100966Siwasaki */ 656151937Sjkimvoid 657151937SjkimAcpiDmDumpInteger8 ( 658151937Sjkim UINT8 Value, 659151937Sjkim char *Name); 660100966Siwasaki 661100966Siwasakivoid 662151937SjkimAcpiDmDumpInteger16 ( 663151937Sjkim UINT16 Value, 664151937Sjkim char *Name); 665100966Siwasaki 666100966Siwasakivoid 667151937SjkimAcpiDmDumpInteger32 ( 668151937Sjkim UINT32 Value, 669151937Sjkim char *Name); 670100966Siwasaki 671100966Siwasakivoid 672151937SjkimAcpiDmDumpInteger64 ( 673151937Sjkim UINT64 Value, 674151937Sjkim char *Name); 675151937Sjkim 676151937Sjkimvoid 677151937SjkimAcpiDmResourceTemplate ( 678102550Siwasaki ACPI_OP_WALK_INFO *Info, 679167802Sjkim ACPI_PARSE_OBJECT *Op, 680100966Siwasaki UINT8 *ByteData, 681100966Siwasaki UINT32 ByteCount); 682100966Siwasaki 683167802SjkimACPI_STATUS 684151937SjkimAcpiDmIsResourceTemplate ( 685100966Siwasaki ACPI_PARSE_OBJECT *Op); 686100966Siwasaki 687100966Siwasakivoid 688100966SiwasakiAcpiDmBitList ( 689100966Siwasaki UINT16 Mask); 690100966Siwasaki 691107325Siwasakivoid 692167802SjkimAcpiDmDescriptorName ( 693167802Sjkim void); 694151937Sjkim 695167802Sjkim 696100966Siwasaki/* 697100966Siwasaki * dmresrcl 698100966Siwasaki */ 699100966Siwasakivoid 700100966SiwasakiAcpiDmWordDescriptor ( 701151937Sjkim AML_RESOURCE *Resource, 702100966Siwasaki UINT32 Length, 703100966Siwasaki UINT32 Level); 704100966Siwasaki 705100966Siwasakivoid 706100966SiwasakiAcpiDmDwordDescriptor ( 707151937Sjkim AML_RESOURCE *Resource, 708100966Siwasaki UINT32 Length, 709100966Siwasaki UINT32 Level); 710100966Siwasaki 711100966Siwasakivoid 712151937SjkimAcpiDmExtendedDescriptor ( 713151937Sjkim AML_RESOURCE *Resource, 714151937Sjkim UINT32 Length, 715151937Sjkim UINT32 Level); 716151937Sjkim 717151937Sjkimvoid 718100966SiwasakiAcpiDmQwordDescriptor ( 719151937Sjkim AML_RESOURCE *Resource, 720100966Siwasaki UINT32 Length, 721100966Siwasaki UINT32 Level); 722100966Siwasaki 723100966Siwasakivoid 724100966SiwasakiAcpiDmMemory24Descriptor ( 725151937Sjkim AML_RESOURCE *Resource, 726100966Siwasaki UINT32 Length, 727100966Siwasaki UINT32 Level); 728100966Siwasaki 729100966Siwasakivoid 730100966SiwasakiAcpiDmMemory32Descriptor ( 731151937Sjkim AML_RESOURCE *Resource, 732100966Siwasaki UINT32 Length, 733100966Siwasaki UINT32 Level); 734100966Siwasaki 735100966Siwasakivoid 736151937SjkimAcpiDmFixedMemory32Descriptor ( 737151937Sjkim AML_RESOURCE *Resource, 738100966Siwasaki UINT32 Length, 739100966Siwasaki UINT32 Level); 740100966Siwasaki 741100966Siwasakivoid 742100966SiwasakiAcpiDmGenericRegisterDescriptor ( 743151937Sjkim AML_RESOURCE *Resource, 744100966Siwasaki UINT32 Length, 745100966Siwasaki UINT32 Level); 746100966Siwasaki 747100966Siwasakivoid 748100966SiwasakiAcpiDmInterruptDescriptor ( 749151937Sjkim AML_RESOURCE *Resource, 750100966Siwasaki UINT32 Length, 751100966Siwasaki UINT32 Level); 752100966Siwasaki 753100966Siwasakivoid 754100966SiwasakiAcpiDmVendorLargeDescriptor ( 755151937Sjkim AML_RESOURCE *Resource, 756100966Siwasaki UINT32 Length, 757100966Siwasaki UINT32 Level); 758100966Siwasaki 759151937Sjkimvoid 760228110SjkimAcpiDmGpioDescriptor ( 761228110Sjkim AML_RESOURCE *Resource, 762228110Sjkim UINT32 Length, 763228110Sjkim UINT32 Level); 764228110Sjkim 765228110Sjkimvoid 766228110SjkimAcpiDmSerialBusDescriptor ( 767228110Sjkim AML_RESOURCE *Resource, 768228110Sjkim UINT32 Length, 769228110Sjkim UINT32 Level); 770228110Sjkim 771228110Sjkimvoid 772151937SjkimAcpiDmVendorCommon ( 773151937Sjkim char *Name, 774151937Sjkim UINT8 *ByteData, 775151937Sjkim UINT32 Length, 776151937Sjkim UINT32 Level); 777100966Siwasaki 778151937Sjkim 779100966Siwasaki/* 780100966Siwasaki * dmresrcs 781100966Siwasaki */ 782100966Siwasakivoid 783100966SiwasakiAcpiDmIrqDescriptor ( 784151937Sjkim AML_RESOURCE *Resource, 785100966Siwasaki UINT32 Length, 786100966Siwasaki UINT32 Level); 787100966Siwasaki 788100966Siwasakivoid 789100966SiwasakiAcpiDmDmaDescriptor ( 790151937Sjkim AML_RESOURCE *Resource, 791100966Siwasaki UINT32 Length, 792100966Siwasaki UINT32 Level); 793100966Siwasaki 794100966Siwasakivoid 795228110SjkimAcpiDmFixedDmaDescriptor ( 796228110Sjkim AML_RESOURCE *Resource, 797228110Sjkim UINT32 Length, 798228110Sjkim UINT32 Level); 799228110Sjkim 800228110Sjkimvoid 801100966SiwasakiAcpiDmIoDescriptor ( 802151937Sjkim AML_RESOURCE *Resource, 803100966Siwasaki UINT32 Length, 804100966Siwasaki UINT32 Level); 805100966Siwasaki 806100966Siwasakivoid 807100966SiwasakiAcpiDmFixedIoDescriptor ( 808151937Sjkim AML_RESOURCE *Resource, 809100966Siwasaki UINT32 Length, 810100966Siwasaki UINT32 Level); 811100966Siwasaki 812100966Siwasakivoid 813100966SiwasakiAcpiDmStartDependentDescriptor ( 814151937Sjkim AML_RESOURCE *Resource, 815100966Siwasaki UINT32 Length, 816100966Siwasaki UINT32 Level); 817100966Siwasaki 818100966Siwasakivoid 819100966SiwasakiAcpiDmEndDependentDescriptor ( 820151937Sjkim AML_RESOURCE *Resource, 821100966Siwasaki UINT32 Length, 822100966Siwasaki UINT32 Level); 823100966Siwasaki 824100966Siwasakivoid 825100966SiwasakiAcpiDmVendorSmallDescriptor ( 826151937Sjkim AML_RESOURCE *Resource, 827100966Siwasaki UINT32 Length, 828100966Siwasaki UINT32 Level); 829100966Siwasaki 830100966Siwasaki 831128212Snjl/* 832128212Snjl * dmutils 833128212Snjl */ 834128212Snjlvoid 835198237SjkimAcpiDmDecodeAttribute ( 836198237Sjkim UINT8 Attribute); 837128212Snjl 838198237Sjkimvoid 839198237SjkimAcpiDmIndent ( 840198237Sjkim UINT32 Level); 841198237Sjkim 842198237SjkimBOOLEAN 843198237SjkimAcpiDmCommaIfListMember ( 844198237Sjkim ACPI_PARSE_OBJECT *Op); 845198237Sjkim 846198237Sjkimvoid 847198237SjkimAcpiDmCommaIfFieldMember ( 848198237Sjkim ACPI_PARSE_OBJECT *Op); 849198237Sjkim 850198237Sjkim 851167802Sjkim/* 852167802Sjkim * dmrestag 853167802Sjkim */ 854167802Sjkimvoid 855167802SjkimAcpiDmFindResources ( 856167802Sjkim ACPI_PARSE_OBJECT *Root); 857167802Sjkim 858167802Sjkimvoid 859167802SjkimAcpiDmCheckResourceReference ( 860167802Sjkim ACPI_PARSE_OBJECT *Op, 861167802Sjkim ACPI_WALK_STATE *WalkState); 862167802Sjkim 863209746Sjkim 864209746Sjkim/* 865209746Sjkim * acdisasm 866209746Sjkim */ 867209746Sjkimvoid 868209746SjkimAdDisassemblerHeader ( 869209746Sjkim char *Filename); 870209746Sjkim 871209746Sjkim 872100966Siwasaki#endif /* __ACDISASM_H__ */ 873