/drivers/devman/acpica/common/adfile.c |
---|
8,7 → 8,7 |
* |
* 1. Copyright Notice |
* |
* Some or all of this work - Copyright (c) 1999 - 2010, Intel Corp. |
* Some or all of this work - Copyright (c) 1999 - 2011, Intel Corp. |
* All rights reserved. |
* |
* 2. License |
126,13 → 126,13 |
/* Local prototypes */ |
INT32 |
static INT32 |
AdWriteBuffer ( |
char *Filename, |
char *Buffer, |
UINT32 Length); |
char FilenameBuf[20]; |
static char FilenameBuf[20]; |
/****************************************************************************** |
190,7 → 190,7 |
* |
******************************************************************************/ |
INT32 |
static INT32 |
AdWriteBuffer ( |
char *Filename, |
char *Buffer, |
/drivers/devman/acpica/common/adisasm.c |
---|
8,7 → 8,7 |
* |
* 1. Copyright Notice |
* |
* Some or all of this work - Copyright (c) 1999 - 2010, Intel Corp. |
* Some or all of this work - Copyright (c) 1999 - 2011, Intel Corp. |
* All rights reserved. |
* |
* 2. License |
134,7 → 134,6 |
extern int AslCompilerdebug; |
extern char *Gbl_ExternalFilename; |
ACPI_STATUS |
148,22 → 147,18 |
/* Local prototypes */ |
void |
static void |
AdCreateTableHeader ( |
char *Filename, |
ACPI_TABLE_HEADER *Table); |
void |
AdDisassemblerHeader ( |
char *Filename); |
ACPI_STATUS |
static ACPI_STATUS |
AdDeferredParse ( |
ACPI_PARSE_OBJECT *Op, |
UINT8 *Aml, |
UINT32 AmlLength); |
ACPI_STATUS |
static ACPI_STATUS |
AdParseDeferredOps ( |
ACPI_PARSE_OBJECT *Root); |
317,6 → 312,7 |
ACPI_STATUS Status; |
char *DisasmFilename = NULL; |
char *ExternalFilename; |
ACPI_EXTERNAL_FILE *ExternalFileList = AcpiGbl_ExternalFileList; |
FILE *File = NULL; |
ACPI_TABLE_HEADER *Table = NULL; |
ACPI_TABLE_HEADER *ExternalTable; |
339,12 → 335,18 |
* External filenames separated by commas |
* Example: iasl -e file1,file2,file3 -d xxx.aml |
*/ |
if (Gbl_ExternalFilename) |
while (ExternalFileList) |
{ |
ExternalFilename = strtok (Gbl_ExternalFilename, ","); |
ExternalFilename = ExternalFileList->Path; |
if (!ACPI_STRCMP (ExternalFilename, Filename)) |
{ |
/* Next external file */ |
while (ExternalFilename) |
{ |
ExternalFileList = ExternalFileList->Next; |
continue; |
} |
Status = AcpiDbGetTableFromFile (ExternalFilename, &ExternalTable); |
if (ACPI_FAILURE (Status)) |
{ |
372,13 → 374,15 |
AcpiPsDeleteParseTree (AcpiGbl_ParseOpRoot); |
} |
/* Next external file name */ |
/* Next external file */ |
ExternalFilename = strtok (NULL, ","); |
ExternalFileList = ExternalFileList->Next; |
} |
/* Clear external list generated by Scope in external tables */ |
if (AcpiGbl_ExternalFileList) |
{ |
AcpiDmClearExternalList (); |
} |
} |
608,10 → 612,10 |
/* Header and input table info */ |
AcpiOsPrintf ("/*\n * Intel ACPI Component Architecture\n"); |
AcpiOsPrintf (" * AML Disassembler version %8.8X\n", ACPI_CA_VERSION); |
AcpiOsPrintf ("/*\n"); |
AcpiOsPrintf (ACPI_COMMON_HEADER ("AML Disassembler", " * ")); |
AcpiOsPrintf (" *\n * Disassembly of %s, %s", Filename, ctime (&Timer)); |
AcpiOsPrintf (" * Disassembly of %s, %s", Filename, ctime (&Timer)); |
AcpiOsPrintf (" *\n"); |
} |
630,7 → 634,7 |
* |
*****************************************************************************/ |
void |
static void |
AdCreateTableHeader ( |
char *Filename, |
ACPI_TABLE_HEADER *Table) |
644,7 → 648,7 |
*/ |
AdDisassemblerHeader (Filename); |
AcpiOsPrintf (" *\n * Original Table Header:\n"); |
AcpiOsPrintf (" * Original Table Header:\n"); |
AcpiOsPrintf (" * Signature \"%4.4s\"\n", Table->Signature); |
AcpiOsPrintf (" * Length 0x%8.8X (%u)\n", Table->Length, Table->Length); |
663,7 → 667,7 |
if (ACPI_COMPARE_NAME (Table->Signature, ACPI_SIG_DSDT)) |
{ |
AcpiOsPrintf (" **** ACPI 1.0, no 64-bit math support"); |
AcpiOsPrintf (" **** 32-bit table (V1), no 64-bit math support"); |
} |
break; |
689,7 → 693,7 |
AcpiOsPrintf (" * OEM Revision 0x%8.8X (%u)\n", Table->OemRevision, Table->OemRevision); |
AcpiOsPrintf (" * Compiler ID \"%.4s\"\n", Table->AslCompilerId); |
AcpiOsPrintf (" * Compiler Version 0x%8.8X (%u)\n", Table->AslCompilerRevision, Table->AslCompilerRevision); |
AcpiOsPrintf (" */\n"); |
AcpiOsPrintf (" */\n\n"); |
/* Create AML output filename based on input filename */ |
777,7 → 781,7 |
* |
*****************************************************************************/ |
ACPI_STATUS |
static ACPI_STATUS |
AdDeferredParse ( |
ACPI_PARSE_OBJECT *Op, |
UINT8 *Aml, |
900,7 → 904,7 |
* |
*****************************************************************************/ |
ACPI_STATUS |
static ACPI_STATUS |
AdParseDeferredOps ( |
ACPI_PARSE_OBJECT *Root) |
{ |
/drivers/devman/acpica/common/adwalk.c |
---|
8,7 → 8,7 |
* |
* 1. Copyright Notice |
* |
* Some or all of this work - Copyright (c) 1999 - 2010, Intel Corp. |
* Some or all of this work - Copyright (c) 1999 - 2011, Intel Corp. |
* All rights reserved. |
* |
* 2. License |
792,6 → 792,7 |
ACPI_PARSE_OBJECT *NextOp; |
ACPI_NAMESPACE_NODE *Node; |
ACPI_OPERAND_OBJECT *Object; |
UINT32 ParamCount = 0; |
WalkState = Info->WalkState; |
880,18 → 881,13 |
if (Object) |
{ |
ObjectType2 = Object->Common.Type; |
} |
if (ObjectType2 == ACPI_TYPE_METHOD) |
{ |
AcpiDmAddToExternalList (Op, Path, ACPI_TYPE_METHOD, |
Object->Method.ParamCount); |
ParamCount = Object->Method.ParamCount; |
} |
else |
{ |
AcpiDmAddToExternalList (Op, Path, (UINT8) ObjectType2, 0); |
} |
AcpiDmAddToExternalList (Op, Path, (UINT8) ObjectType2, ParamCount); |
Op->Common.Node = Node; |
} |
else |
/drivers/devman/acpica/common/dmextern.c |
---|
8,7 → 8,7 |
* |
* 1. Copyright Notice |
* |
* Some or all of this work - Copyright (c) 1999 - 2010, Intel Corp. |
* Some or all of this work - Copyright (c) 1999 - 2011, Intel Corp. |
* All rights reserved. |
* |
* 2. License |
312,6 → 312,95 |
/******************************************************************************* |
* |
* FUNCTION: AcpiDmAddToExternalFileList |
* |
* PARAMETERS: PathList - Single path or list separated by comma |
* |
* RETURN: None |
* |
* DESCRIPTION: Add external files to global list |
* |
******************************************************************************/ |
ACPI_STATUS |
AcpiDmAddToExternalFileList ( |
char *PathList) |
{ |
ACPI_EXTERNAL_FILE *ExternalFile; |
char *Path; |
char *TmpPath; |
if (!PathList) |
{ |
return (AE_OK); |
} |
Path = strtok (PathList, ","); |
while (Path) |
{ |
TmpPath = ACPI_ALLOCATE_ZEROED (ACPI_STRLEN (Path) + 1); |
if (!TmpPath) |
{ |
return (AE_NO_MEMORY); |
} |
ACPI_STRCPY (TmpPath, Path); |
ExternalFile = ACPI_ALLOCATE_ZEROED (sizeof (ACPI_EXTERNAL_FILE)); |
if (!ExternalFile) |
{ |
ACPI_FREE (TmpPath); |
return (AE_NO_MEMORY); |
} |
ExternalFile->Path = TmpPath; |
if (AcpiGbl_ExternalFileList) |
{ |
ExternalFile->Next = AcpiGbl_ExternalFileList; |
} |
AcpiGbl_ExternalFileList = ExternalFile; |
Path = strtok (NULL, ","); |
} |
return (AE_OK); |
} |
/******************************************************************************* |
* |
* FUNCTION: AcpiDmClearExternalFileList |
* |
* PARAMETERS: None |
* |
* RETURN: None |
* |
* DESCRIPTION: Clear the external file list |
* |
******************************************************************************/ |
void |
AcpiDmClearExternalFileList ( |
void) |
{ |
ACPI_EXTERNAL_FILE *NextExternal; |
while (AcpiGbl_ExternalFileList) |
{ |
NextExternal = AcpiGbl_ExternalFileList->Next; |
ACPI_FREE (AcpiGbl_ExternalFileList->Path); |
ACPI_FREE (AcpiGbl_ExternalFileList); |
AcpiGbl_ExternalFileList = NextExternal; |
} |
} |
/******************************************************************************* |
* |
* FUNCTION: AcpiDmAddToExternalList |
* |
* PARAMETERS: Op - Current parser Op |
/drivers/devman/acpica/common/dmrestag.c |
---|
8,7 → 8,7 |
* |
* 1. Copyright Notice |
* |
* Some or all of this work - Copyright (c) 1999 - 2010, Intel Corp. |
* Some or all of this work - Copyright (c) 1999 - 2011, Intel Corp. |
* All rights reserved. |
* |
* 2. License |
704,8 → 704,8 |
Name[0] = '_'; |
Name[1] = AcpiGbl_Prefix[AcpiGbl_NextPrefix]; |
Name[2] = AcpiUtHexToAsciiChar (AcpiGbl_NextResourceId, 4); |
Name[3] = AcpiUtHexToAsciiChar (AcpiGbl_NextResourceId, 0); |
Name[2] = AcpiUtHexToAsciiChar ((UINT64) AcpiGbl_NextResourceId, 4); |
Name[3] = AcpiUtHexToAsciiChar ((UINT64) AcpiGbl_NextResourceId, 0); |
/* Update globals for next name */ |
/drivers/devman/acpica/common/dmtable.c |
---|
8,7 → 8,7 |
* |
* 1. Copyright Notice |
* |
* Some or all of this work - Copyright (c) 1999 - 2010, Intel Corp. |
* Some or all of this work - Copyright (c) 1999 - 2011, Intel Corp. |
* All rights reserved. |
* |
* 2. License |
117,6 → 117,7 |
#include "accommon.h" |
#include "acdisasm.h" |
#include "actables.h" |
#include "aslcompiler.h" |
#include "dtcompiler.h" |
/* This module used for application-level code only */ |
132,11 → 133,14 |
char *RepairedName, |
UINT32 Count); |
UINT8 |
AcpiTbGenerateChecksum ( |
ACPI_TABLE_HEADER *Table); |
/* Common format strings for commented values */ |
#define UINT8_FORMAT "%2.2X [%s]\n" |
#define UINT16_FORMAT "%4.4X [%s]\n" |
#define UINT32_FORMAT "%8.8X [%s]\n" |
#define STRING_FORMAT "[%s]\n" |
/* These tables map a subtable type to a description string */ |
static const char *AcpiDmAsfSubnames[] = |
158,6 → 162,74 |
"Unknown SubTable Type" /* Reserved */ |
}; |
static const char *AcpiDmEinjActions[] = |
{ |
"Begin Operation", |
"Get Trigger Table", |
"Set Error Type", |
"Get Error Type", |
"End Operation", |
"Execute Operation", |
"Check Busy Status", |
"Get Command Status", |
"Unknown Action" |
}; |
static const char *AcpiDmEinjInstructions[] = |
{ |
"Read Register", |
"Read Register Value", |
"Write Register", |
"Write Register Value", |
"Noop", |
"Unknown Instruction" |
}; |
static const char *AcpiDmErstActions[] = |
{ |
"Begin Write Operation", |
"Begin Read Operation", |
"Begin Clear Operation", |
"End Operation", |
"Set Record Offset", |
"Execute Operation", |
"Check Busy Status", |
"Get Command Status", |
"Get Record Identifier", |
"Set Record Identifier", |
"Get Record Count", |
"Begin Dummy Write", |
"Unused/Unknown Action", |
"Get Error Address Range", |
"Get Error Address Length", |
"Get Error Attributes", |
"Unknown Action" |
}; |
static const char *AcpiDmErstInstructions[] = |
{ |
"Read Register", |
"Read Register Value", |
"Write Register", |
"Write Register Value", |
"Noop", |
"Load Var1", |
"Load Var2", |
"Store Var1", |
"Add", |
"Subtract", |
"Add Value", |
"Subtract Value", |
"Stall", |
"Stall While True", |
"Skip Next If True", |
"GoTo", |
"Set Source Address", |
"Set Destination Address", |
"Move Data", |
"Unknown Instruction" |
}; |
static const char *AcpiDmHestSubnames[] = |
{ |
"IA-32 Machine Check Exception", |
199,6 → 271,13 |
"Unknown SubTable Type" /* Reserved */ |
}; |
static const char *AcpiDmSlicSubnames[] = |
{ |
"Public Key Structure", |
"Windows Marker Structure", |
"Unknown SubTable Type" /* Reserved */ |
}; |
static const char *AcpiDmSratSubnames[] = |
{ |
"Processor Local APIC/SAPIC Affinity", |
230,60 → 309,76 |
"Unknown Profile Type" |
}; |
#define ACPI_GAS_WIDTH_RESERVED 5 |
static const char *AcpiDmGasAccessWidth[] = |
{ |
"Undefined/Legacy", |
"Byte Access:8", |
"Word Access:16", |
"DWord Access:32", |
"QWord Access:64", |
"Unknown Width Encoding" |
}; |
/******************************************************************************* |
* |
* ACPI Table Data, indexed by signature. |
* |
* Each entry contains: Signature, Table Info, Handler, Description |
* Each entry contains: Signature, Table Info, Handler, DtHandler, |
* Template, Description |
* |
* Simple tables have only a TableInfo structure, complex tables have a handler. |
* This table must be NULL terminated. RSDP and FACS are special-cased |
* elsewhere. |
* Simple tables have only a TableInfo structure, complex tables have a |
* handler. This table must be NULL terminated. RSDP and FACS are |
* special-cased elsewhere. |
* |
******************************************************************************/ |
static ACPI_DMTABLE_DATA AcpiDmTableData[] = |
ACPI_DMTABLE_DATA AcpiDmTableData[] = |
{ |
{ACPI_SIG_ASF, NULL, AcpiDmDumpAsf, DtCompileAsf, "Alert Standard Format table"}, |
{ACPI_SIG_BOOT, AcpiDmTableInfoBoot, NULL, NULL, "Simple Boot Flag Table"}, |
{ACPI_SIG_BERT, AcpiDmTableInfoBert, NULL, NULL, "Boot Error Record Table"}, |
{ACPI_SIG_CPEP, NULL, AcpiDmDumpCpep, DtCompileCpep, "Corrected Platform Error Polling table"}, |
{ACPI_SIG_DBGP, AcpiDmTableInfoDbgp, NULL, NULL, "Debug Port table"}, |
{ACPI_SIG_DMAR, NULL, AcpiDmDumpDmar, DtCompileDmar, "DMA Remapping table"}, |
{ACPI_SIG_ECDT, AcpiDmTableInfoEcdt, NULL, NULL, "Embedded Controller Boot Resources Table"}, |
{ACPI_SIG_EINJ, NULL, AcpiDmDumpEinj, DtCompileEinj, "Error Injection table"}, |
{ACPI_SIG_ERST, NULL, AcpiDmDumpErst, DtCompileErst, "Error Record Serialization Table"}, |
{ACPI_SIG_FADT, NULL, AcpiDmDumpFadt, DtCompileFadt, "Fixed ACPI Description Table"}, |
{ACPI_SIG_HEST, NULL, AcpiDmDumpHest, DtCompileHest, "Hardware Error Source Table"}, |
{ACPI_SIG_HPET, AcpiDmTableInfoHpet, NULL, NULL, "High Precision Event Timer table"}, |
{ACPI_SIG_IVRS, NULL, AcpiDmDumpIvrs, DtCompileIvrs, "I/O Virtualization Reporting Structure"}, |
{ACPI_SIG_MADT, NULL, AcpiDmDumpMadt, DtCompileMadt, "Multiple APIC Description Table"}, |
{ACPI_SIG_MCFG, NULL, AcpiDmDumpMcfg, DtCompileMcfg, "Memory Mapped Configuration table"}, |
{ACPI_SIG_MCHI, AcpiDmTableInfoMchi, NULL, NULL, "Management Controller Host Interface table"}, |
{ACPI_SIG_MSCT, NULL, AcpiDmDumpMsct, DtCompileMsct, "Maximum System Characteristics Table"}, |
{ACPI_SIG_RSDT, NULL, AcpiDmDumpRsdt, DtCompileRsdt, "Root System Description Table"}, |
{ACPI_SIG_SBST, AcpiDmTableInfoSbst, NULL, NULL, "Smart Battery Specification Table"}, |
{ACPI_SIG_SLIC, AcpiDmTableInfoSlic, NULL, NULL, "Software Licensing Description Table"}, |
{ACPI_SIG_SLIT, NULL, AcpiDmDumpSlit, DtCompileSlit, "System Locality Information Table"}, |
{ACPI_SIG_SPCR, AcpiDmTableInfoSpcr, NULL, NULL, "Serial Port Console Redirection table"}, |
{ACPI_SIG_SPMI, AcpiDmTableInfoSpmi, NULL, NULL, "Server Platform Management Interface table"}, |
{ACPI_SIG_SRAT, NULL, AcpiDmDumpSrat, DtCompileSrat, "System Resource Affinity Table"}, |
{ACPI_SIG_TCPA, AcpiDmTableInfoTcpa, NULL, NULL, "Trusted Computing Platform Alliance table"}, |
{ACPI_SIG_UEFI, AcpiDmTableInfoUefi, NULL, NULL, "UEFI Boot Optimization Table"}, |
{ACPI_SIG_WAET, AcpiDmTableInfoWaet, NULL, NULL, "Windows ACPI Emulated Devices Table"}, |
{ACPI_SIG_WDAT, NULL, AcpiDmDumpWdat, DtCompileWdat, "Watchdog Action Table"}, |
{ACPI_SIG_WDRT, AcpiDmTableInfoWdrt, NULL, NULL, "Watchdog Resource Table"}, |
{ACPI_SIG_XSDT, NULL, AcpiDmDumpXsdt, DtCompileXsdt, "Extended System Description Table"}, |
{NULL, NULL, NULL, NULL, NULL} |
{ACPI_SIG_ASF, NULL, AcpiDmDumpAsf, DtCompileAsf, TemplateAsf, "Alert Standard Format table"}, |
{ACPI_SIG_BOOT, AcpiDmTableInfoBoot, NULL, NULL, TemplateBoot, "Simple Boot Flag Table"}, |
{ACPI_SIG_BERT, AcpiDmTableInfoBert, NULL, NULL, TemplateBert, "Boot Error Record Table"}, |
{ACPI_SIG_CPEP, NULL, AcpiDmDumpCpep, DtCompileCpep, TemplateCpep, "Corrected Platform Error Polling table"}, |
{ACPI_SIG_DBGP, AcpiDmTableInfoDbgp, NULL, NULL, TemplateDbgp, "Debug Port table"}, |
{ACPI_SIG_DMAR, NULL, AcpiDmDumpDmar, DtCompileDmar, TemplateDmar, "DMA Remapping table"}, |
{ACPI_SIG_ECDT, AcpiDmTableInfoEcdt, NULL, NULL, TemplateEcdt, "Embedded Controller Boot Resources Table"}, |
{ACPI_SIG_EINJ, NULL, AcpiDmDumpEinj, DtCompileEinj, TemplateEinj, "Error Injection table"}, |
{ACPI_SIG_ERST, NULL, AcpiDmDumpErst, DtCompileErst, TemplateErst, "Error Record Serialization Table"}, |
{ACPI_SIG_FADT, NULL, AcpiDmDumpFadt, DtCompileFadt, TemplateFadt, "Fixed ACPI Description Table"}, |
{ACPI_SIG_HEST, NULL, AcpiDmDumpHest, DtCompileHest, TemplateHest, "Hardware Error Source Table"}, |
{ACPI_SIG_HPET, AcpiDmTableInfoHpet, NULL, NULL, TemplateHpet, "High Precision Event Timer table"}, |
{ACPI_SIG_IVRS, NULL, AcpiDmDumpIvrs, DtCompileIvrs, TemplateIvrs, "I/O Virtualization Reporting Structure"}, |
{ACPI_SIG_MADT, NULL, AcpiDmDumpMadt, DtCompileMadt, TemplateMadt, "Multiple APIC Description Table"}, |
{ACPI_SIG_MCFG, NULL, AcpiDmDumpMcfg, DtCompileMcfg, TemplateMcfg, "Memory Mapped Configuration table"}, |
{ACPI_SIG_MCHI, AcpiDmTableInfoMchi, NULL, NULL, TemplateMchi, "Management Controller Host Interface table"}, |
{ACPI_SIG_MSCT, NULL, AcpiDmDumpMsct, DtCompileMsct, TemplateMsct, "Maximum System Characteristics Table"}, |
{ACPI_SIG_RSDT, NULL, AcpiDmDumpRsdt, DtCompileRsdt, TemplateRsdt, "Root System Description Table"}, |
{ACPI_SIG_SBST, AcpiDmTableInfoSbst, NULL, NULL, TemplateSbst, "Smart Battery Specification Table"}, |
{ACPI_SIG_SLIC, NULL, AcpiDmDumpSlic, DtCompileSlic, TemplateSlic, "Software Licensing Description Table"}, |
{ACPI_SIG_SLIT, NULL, AcpiDmDumpSlit, DtCompileSlit, TemplateSlit, "System Locality Information Table"}, |
{ACPI_SIG_SPCR, AcpiDmTableInfoSpcr, NULL, NULL, TemplateSpcr, "Serial Port Console Redirection table"}, |
{ACPI_SIG_SPMI, AcpiDmTableInfoSpmi, NULL, NULL, TemplateSpmi, "Server Platform Management Interface table"}, |
{ACPI_SIG_SRAT, NULL, AcpiDmDumpSrat, DtCompileSrat, TemplateSrat, "System Resource Affinity Table"}, |
{ACPI_SIG_TCPA, AcpiDmTableInfoTcpa, NULL, NULL, TemplateTcpa, "Trusted Computing Platform Alliance table"}, |
{ACPI_SIG_UEFI, AcpiDmTableInfoUefi, NULL, DtCompileUefi, TemplateUefi, "UEFI Boot Optimization Table"}, |
{ACPI_SIG_WAET, AcpiDmTableInfoWaet, NULL, NULL, TemplateWaet, "Windows ACPI Emulated Devices Table"}, |
{ACPI_SIG_WDAT, NULL, AcpiDmDumpWdat, DtCompileWdat, TemplateWdat, "Watchdog Action Table"}, |
{ACPI_SIG_WDDT, AcpiDmTableInfoWddt, NULL, NULL, TemplateWddt, "Watchdog Description Table"}, |
{ACPI_SIG_WDRT, AcpiDmTableInfoWdrt, NULL, NULL, TemplateWdrt, "Watchdog Resource Table"}, |
{ACPI_SIG_XSDT, NULL, AcpiDmDumpXsdt, DtCompileXsdt, TemplateXsdt, "Extended System Description Table"}, |
{NULL, NULL, NULL, NULL, NULL, NULL} |
}; |
/******************************************************************************* |
* |
* FUNCTION: AcpiTbGenerateChecksum |
* FUNCTION: AcpiDmGenerateChecksum |
* |
* PARAMETERS: Table - Pointer to a valid ACPI table (with a |
* standard ACPI header) |
* PARAMETERS: Table - Pointer to table to be checksummed |
* Length - Length of the table |
* OriginalChecksum - Value of the checksum field |
* |
* RETURN: 8 bit checksum of buffer |
* |
292,8 → 387,10 |
******************************************************************************/ |
UINT8 |
AcpiTbGenerateChecksum ( |
ACPI_TABLE_HEADER *Table) |
AcpiDmGenerateChecksum ( |
void *Table, |
UINT32 Length, |
UINT8 OriginalChecksum) |
{ |
UINT8 Checksum; |
300,11 → 397,11 |
/* Sum the entire table as-is */ |
Checksum = AcpiTbChecksum ((UINT8 *) Table, Table->Length); |
Checksum = AcpiTbChecksum ((UINT8 *) Table, Length); |
/* Subtract off the existing checksum value in the table */ |
Checksum = (UINT8) (Checksum - Table->Checksum); |
Checksum = (UINT8) (Checksum - OriginalChecksum); |
/* Compute the final checksum */ |
429,11 → 526,15 |
} |
} |
/* Always dump the raw table data */ |
if (!Gbl_DoTemplates || Gbl_VerboseTemplates) |
{ |
/* Dump the raw table data */ |
AcpiOsPrintf ("\nRaw Table Data\n\n"); |
AcpiOsPrintf ("\n%s: Length %d (0x%X)\n\n", |
ACPI_RAW_TABLE_DATA_HEADER, Length, Length); |
AcpiUtDumpBuffer2 (ACPI_CAST_PTR (UINT8, Table), Length, DB_BYTE_DISPLAY); |
} |
} |
/******************************************************************************* |
460,17 → 561,51 |
char *Name) |
{ |
/* Allow a null name for fields that span multiple lines (large buffers) */ |
if (!Name) |
{ |
Name = ""; |
} |
if (Gbl_DoTemplates && !Gbl_VerboseTemplates) /* Terse template */ |
{ |
if (ByteLength) |
{ |
AcpiOsPrintf ("[%3.3Xh %4.4d% 3d] %28s : ", |
AcpiOsPrintf ("[%.4d] %34s : ", ByteLength, Name); |
} |
else |
{ |
if (*Name) |
{ |
AcpiOsPrintf ("%41s : ", Name); |
} |
else |
{ |
AcpiOsPrintf ("%41s ", Name); |
} |
} |
} |
else /* Normal disassembler or verbose template */ |
{ |
if (ByteLength) |
{ |
AcpiOsPrintf ("[%3.3Xh %4.4d% 4d] %28s : ", |
Offset, Offset, ByteLength, Name); |
} |
else |
{ |
AcpiOsPrintf ("%43s : ", |
Name); |
if (*Name) |
{ |
AcpiOsPrintf ("%44s : ", Name); |
} |
else |
{ |
AcpiOsPrintf ("%44s ", Name); |
} |
} |
} |
} |
void |
AcpiDmLineHeader2 ( |
480,8 → 615,23 |
UINT32 Value) |
{ |
if (Gbl_DoTemplates && !Gbl_VerboseTemplates) /* Terse template */ |
{ |
if (ByteLength) |
{ |
AcpiOsPrintf ("[%.4d] %30s %3d : ", |
ByteLength, Name, Value); |
} |
else |
{ |
AcpiOsPrintf ("%36s % 3d : ", |
Name, Value); |
} |
} |
else /* Normal disassembler or verbose template */ |
{ |
if (ByteLength) |
{ |
AcpiOsPrintf ("[%3.3Xh %4.4d% 3d] %24s % 3d : ", |
Offset, Offset, ByteLength, Name, Value); |
} |
491,6 → 641,7 |
Offset, Offset, Name, Value); |
} |
} |
} |
/******************************************************************************* |
508,6 → 659,8 |
* |
* DESCRIPTION: Display ACPI table contents by walking the Info table. |
* |
* Note: This function must remain in sync with DtGetFieldLength. |
* |
******************************************************************************/ |
ACPI_STATUS |
562,6 → 715,7 |
case ACPI_DMT_UINT8: |
case ACPI_DMT_CHKSUM: |
case ACPI_DMT_SPACEID: |
case ACPI_DMT_ACCWIDTH: |
case ACPI_DMT_IVRS: |
case ACPI_DMT_MADT: |
case ACPI_DMT_SRAT: |
568,6 → 722,10 |
case ACPI_DMT_ASF: |
case ACPI_DMT_HESTNTYP: |
case ACPI_DMT_FADTPM: |
case ACPI_DMT_EINJACT: |
case ACPI_DMT_EINJINST: |
case ACPI_DMT_ERSTACT: |
case ACPI_DMT_ERSTINST: |
ByteLength = 1; |
break; |
case ACPI_DMT_UINT16: |
581,6 → 739,7 |
case ACPI_DMT_UINT32: |
case ACPI_DMT_NAME4: |
case ACPI_DMT_SIG: |
case ACPI_DMT_SLIC: |
ByteLength = 4; |
break; |
case ACPI_DMT_NAME6: |
587,6 → 746,7 |
ByteLength = 6; |
break; |
case ACPI_DMT_UINT56: |
case ACPI_DMT_BUF7: |
ByteLength = 7; |
break; |
case ACPI_DMT_UINT64: |
594,8 → 754,12 |
ByteLength = 8; |
break; |
case ACPI_DMT_BUF16: |
case ACPI_DMT_UUID: |
ByteLength = 16; |
break; |
case ACPI_DMT_BUF128: |
ByteLength = 128; |
break; |
case ACPI_DMT_STRING: |
ByteLength = ACPI_STRLEN (ACPI_CAST_PTR (char, Target)) + 1; |
break; |
696,17 → 860,43 |
ACPI_FORMAT_UINT64 (ACPI_GET64 (Target))); |
break; |
case ACPI_DMT_BUF7: |
case ACPI_DMT_BUF16: |
case ACPI_DMT_BUF128: |
/* Buffer of length 16 */ |
for (Temp8 = 0; Temp8 < 16; Temp8++) |
/* |
* Buffer: Size depends on the opcode and was set above. |
* Each hex byte is separated with a space. |
* Multiple lines are separated by line continuation char. |
*/ |
for (Temp16 = 0; Temp16 < ByteLength; Temp16++) |
{ |
AcpiOsPrintf ("%2.2X,", Target[Temp8]); |
AcpiOsPrintf ("%2.2X", Target[Temp16]); |
if ((UINT32) (Temp16 + 1) < ByteLength) |
{ |
if ((Temp16 > 0) && (!((Temp16+1) % 16))) |
{ |
AcpiOsPrintf (" \\\n"); /* Line continuation */ |
AcpiDmLineHeader (0, 0, NULL); |
} |
else |
{ |
AcpiOsPrintf (" "); |
} |
} |
} |
AcpiOsPrintf ("\n"); |
break; |
case ACPI_DMT_UUID: |
/* Convert 16-byte UUID buffer to 36-byte formatted UUID string */ |
(void) AuConvertUuidToString ((char *) Target, MsgBuffer); |
AcpiOsPrintf ("%s\n", MsgBuffer); |
break; |
case ACPI_DMT_STRING: |
AcpiOsPrintf ("\"%s\"\n", ACPI_CAST_PTR (char, Target)); |
721,9 → 911,12 |
TableData = AcpiDmGetTableData (ACPI_CAST_PTR (char, Target)); |
if (TableData) |
{ |
AcpiOsPrintf ("/* %s */", TableData->Name); |
AcpiOsPrintf (STRING_FORMAT, TableData->Name); |
} |
else |
{ |
AcpiOsPrintf ("\n"); |
} |
break; |
case ACPI_DMT_NAME4: |
751,7 → 944,9 |
/* Checksum, display and validate */ |
AcpiOsPrintf ("%2.2X", *Target); |
Temp8 = AcpiTbGenerateChecksum (Table); |
Temp8 = AcpiDmGenerateChecksum (Table, |
ACPI_CAST_PTR (ACPI_TABLE_HEADER, Table)->Length, |
ACPI_CAST_PTR (ACPI_TABLE_HEADER, Table)->Checksum); |
if (Temp8 != ACPI_CAST_PTR (ACPI_TABLE_HEADER, Table)->Checksum) |
{ |
AcpiOsPrintf ( |
764,14 → 959,27 |
/* Address Space ID */ |
AcpiOsPrintf ("%2.2X (%s)\n", *Target, AcpiUtGetRegionName (*Target)); |
AcpiOsPrintf (UINT8_FORMAT, *Target, AcpiUtGetRegionName (*Target)); |
break; |
case ACPI_DMT_ACCWIDTH: |
/* Encoded Access Width */ |
Temp8 = *Target; |
if (Temp8 > ACPI_GAS_WIDTH_RESERVED) |
{ |
Temp8 = ACPI_GAS_WIDTH_RESERVED; |
} |
AcpiOsPrintf (UINT8_FORMAT, Temp8, AcpiDmGasAccessWidth[Temp8]); |
break; |
case ACPI_DMT_GAS: |
/* Generic Address Structure */ |
AcpiOsPrintf ("<Generic Address Structure>\n"); |
AcpiOsPrintf (STRING_FORMAT, "Generic Address Structure"); |
AcpiDmDumpTable (TableLength, CurrentOffset, Target, |
sizeof (ACPI_GENERIC_ADDRESS), AcpiDmTableInfoGas); |
AcpiOsPrintf ("\n"); |
788,7 → 996,7 |
Temp16 = ACPI_ASF_TYPE_RESERVED; |
} |
AcpiOsPrintf ("%2.2X <%s>\n", *Target, AcpiDmAsfSubnames[Temp16]); |
AcpiOsPrintf (UINT8_FORMAT, *Target, AcpiDmAsfSubnames[Temp16]); |
break; |
case ACPI_DMT_DMAR: |
801,9 → 1009,61 |
Temp16 = ACPI_DMAR_TYPE_RESERVED; |
} |
AcpiOsPrintf ("%4.4X <%s>\n", ACPI_GET16 (Target), AcpiDmDmarSubnames[Temp16]); |
AcpiOsPrintf (UINT16_FORMAT, ACPI_GET16 (Target), AcpiDmDmarSubnames[Temp16]); |
break; |
case ACPI_DMT_EINJACT: |
/* EINJ Action types */ |
Temp8 = *Target; |
if (Temp8 > ACPI_EINJ_ACTION_RESERVED) |
{ |
Temp8 = ACPI_EINJ_ACTION_RESERVED; |
} |
AcpiOsPrintf (UINT8_FORMAT, *Target, AcpiDmEinjActions[Temp8]); |
break; |
case ACPI_DMT_EINJINST: |
/* EINJ Instruction types */ |
Temp8 = *Target; |
if (Temp8 > ACPI_EINJ_INSTRUCTION_RESERVED) |
{ |
Temp8 = ACPI_EINJ_INSTRUCTION_RESERVED; |
} |
AcpiOsPrintf (UINT8_FORMAT, *Target, AcpiDmEinjInstructions[Temp8]); |
break; |
case ACPI_DMT_ERSTACT: |
/* ERST Action types */ |
Temp8 = *Target; |
if (Temp8 > ACPI_ERST_ACTION_RESERVED) |
{ |
Temp8 = ACPI_ERST_ACTION_RESERVED; |
} |
AcpiOsPrintf (UINT8_FORMAT, *Target, AcpiDmErstActions[Temp8]); |
break; |
case ACPI_DMT_ERSTINST: |
/* ERST Instruction types */ |
Temp8 = *Target; |
if (Temp8 > ACPI_ERST_INSTRUCTION_RESERVED) |
{ |
Temp8 = ACPI_ERST_INSTRUCTION_RESERVED; |
} |
AcpiOsPrintf (UINT8_FORMAT, *Target, AcpiDmErstInstructions[Temp8]); |
break; |
case ACPI_DMT_HEST: |
/* HEST subtable types */ |
814,12 → 1074,12 |
Temp16 = ACPI_HEST_TYPE_RESERVED; |
} |
AcpiOsPrintf ("%4.4X (%s)\n", ACPI_GET16 (Target), AcpiDmHestSubnames[Temp16]); |
AcpiOsPrintf (UINT16_FORMAT, ACPI_GET16 (Target), AcpiDmHestSubnames[Temp16]); |
break; |
case ACPI_DMT_HESTNTFY: |
AcpiOsPrintf ("<Hardware Error Notification Structure>\n"); |
AcpiOsPrintf (STRING_FORMAT, "Hardware Error Notification Structure"); |
AcpiDmDumpTable (TableLength, CurrentOffset, Target, |
sizeof (ACPI_HEST_NOTIFY), AcpiDmTableInfoHestNotify); |
AcpiOsPrintf ("\n"); |
836,10 → 1096,9 |
Temp8 = ACPI_HEST_NOTIFY_RESERVED; |
} |
AcpiOsPrintf ("%2.2X (%s)\n", *Target, AcpiDmHestNotifySubnames[Temp8]); |
AcpiOsPrintf (UINT8_FORMAT, *Target, AcpiDmHestNotifySubnames[Temp8]); |
break; |
case ACPI_DMT_MADT: |
/* MADT subtable types */ |
850,9 → 1109,22 |
Temp8 = ACPI_MADT_TYPE_RESERVED; |
} |
AcpiOsPrintf ("%2.2X <%s>\n", *Target, AcpiDmMadtSubnames[Temp8]); |
AcpiOsPrintf (UINT8_FORMAT, *Target, AcpiDmMadtSubnames[Temp8]); |
break; |
case ACPI_DMT_SLIC: |
/* SLIC subtable types */ |
Temp8 = *Target; |
if (Temp8 > ACPI_SLIC_TYPE_RESERVED) |
{ |
Temp8 = ACPI_SLIC_TYPE_RESERVED; |
} |
AcpiOsPrintf (UINT32_FORMAT, *Target, AcpiDmSlicSubnames[Temp8]); |
break; |
case ACPI_DMT_SRAT: |
/* SRAT subtable types */ |
863,7 → 1135,7 |
Temp8 = ACPI_SRAT_TYPE_RESERVED; |
} |
AcpiOsPrintf ("%2.2X <%s>\n", *Target, AcpiDmSratSubnames[Temp8]); |
AcpiOsPrintf (UINT8_FORMAT, *Target, AcpiDmSratSubnames[Temp8]); |
break; |
case ACPI_DMT_FADTPM: |
876,7 → 1148,7 |
Temp8 = ACPI_FADT_PM_RESERVED; |
} |
AcpiOsPrintf ("%2.2X (%s)\n", *Target, AcpiDmFadtProfiles[Temp8]); |
AcpiOsPrintf (UINT8_FORMAT, *Target, AcpiDmFadtProfiles[Temp8]); |
break; |
case ACPI_DMT_IVRS: |
901,7 → 1173,7 |
break; |
} |
AcpiOsPrintf ("%2.2X <%s>\n", *Target, Name); |
AcpiOsPrintf (UINT8_FORMAT, *Target, Name); |
break; |
case ACPI_DMT_EXIT: |
/drivers/devman/acpica/common/dmtbdump.c |
---|
8,7 → 8,7 |
* |
* 1. Copyright Notice |
* |
* Some or all of this work - Copyright (c) 1999 - 2010, Intel Corp. |
* Some or all of this work - Copyright (c) 1999 - 2011, Intel Corp. |
* All rights reserved. |
* |
* 2. License |
124,6 → 124,12 |
ACPI_MODULE_NAME ("dmtbdump") |
static void |
AcpiDmValidateFadtLength ( |
UINT32 Revision, |
UINT32 Length); |
/******************************************************************************* |
* |
* FUNCTION: AcpiDmDumpRsdp |
130,7 → 136,8 |
* |
* PARAMETERS: Table - A RSDP |
* |
* RETURN: Length of the table (there is no length field, use revision) |
* RETURN: Length of the table (there is not always a length field, |
* use revision or length if available (ACPI 2.0+)) |
* |
* DESCRIPTION: Format the contents of a RSDP |
* |
140,7 → 147,9 |
AcpiDmDumpRsdp ( |
ACPI_TABLE_HEADER *Table) |
{ |
UINT32 Length = ACPI_RSDP_REV0_SIZE; |
ACPI_TABLE_RSDP *Rsdp = ACPI_CAST_PTR (ACPI_TABLE_RSDP, Table); |
UINT32 Length = sizeof (ACPI_RSDP_COMMON); |
UINT8 Checksum; |
/* Dump the common ACPI 1.0 portion */ |
147,13 → 156,34 |
AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoRsdp1); |
/* ACPI 2.0+ contains more data and has a Length field */ |
/* Validate the first checksum */ |
if (ACPI_CAST_PTR (ACPI_TABLE_RSDP, Table)->Revision > 0) |
Checksum = AcpiDmGenerateChecksum (Rsdp, sizeof (ACPI_RSDP_COMMON), |
Rsdp->Checksum); |
if (Checksum != Rsdp->Checksum) |
{ |
Length = ACPI_CAST_PTR (ACPI_TABLE_RSDP, Table)->Length; |
AcpiOsPrintf ("/* Incorrect Checksum above, should be 0x%2.2X */\n", |
Checksum); |
} |
/* The RSDP for ACPI 2.0+ contains more data and has a Length field */ |
if (Rsdp->Revision > 0) |
{ |
Length = Rsdp->Length; |
AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoRsdp2); |
/* Validate the extended checksum over entire RSDP */ |
Checksum = AcpiDmGenerateChecksum (Rsdp, sizeof (ACPI_TABLE_RSDP), |
Rsdp->ExtendedChecksum); |
if (Checksum != Rsdp->ExtendedChecksum) |
{ |
AcpiOsPrintf ( |
"/* Incorrect Extended Checksum above, should be 0x%2.2X */\n", |
Checksum); |
} |
} |
return (Length); |
} |
249,6 → 279,10 |
* |
* DESCRIPTION: Format the contents of a FADT |
* |
* NOTE: We cannot depend on the FADT version to indicate the actual |
* contents of the FADT because of BIOS bugs. The table length |
* is the only reliable indicator. |
* |
******************************************************************************/ |
void |
256,20 → 290,21 |
ACPI_TABLE_HEADER *Table) |
{ |
/* Common ACPI 1.0 portion of FADT */ |
/* Always dump the minimum FADT revision 1 fields (ACPI 1.0) */ |
AcpiDmDumpTable (Table->Length, 0, Table, 0, AcpiDmTableInfoFadt1); |
/* Check for ACPI 1.0B MS extensions (FADT revision 2) */ |
/* Check for FADT revision 2 fields (ACPI 1.0B MS extensions) */ |
if (Table->Revision == 2) |
if ((Table->Length > ACPI_FADT_V1_SIZE) && |
(Table->Length <= ACPI_FADT_V2_SIZE)) |
{ |
AcpiDmDumpTable (Table->Length, 0, Table, 0, AcpiDmTableInfoFadt2); |
} |
/* Check for ACPI 2.0+ extended data (FADT revision 3+) */ |
/* Check for FADT revision 3 fields and up (ACPI 2.0+ extended data) */ |
else if (Table->Length >= sizeof (ACPI_TABLE_FADT)) |
else if (Table->Length > ACPI_FADT_V2_SIZE) |
{ |
AcpiDmDumpTable (Table->Length, 0, Table, 0, AcpiDmTableInfoFadt3); |
} |
277,11 → 312,73 |
/* Validate various fields in the FADT, including length */ |
AcpiTbCreateLocalFadt (Table, Table->Length); |
/* Validate FADT length against the revision */ |
AcpiDmValidateFadtLength (Table->Revision, Table->Length); |
} |
/******************************************************************************* |
* |
* FUNCTION: AcpiDmValidateFadtLength |
* |
* PARAMETERS: Revision - FADT revision (Header->Revision) |
* Length - FADT length (Header->Length |
* |
* RETURN: None |
* |
* DESCRIPTION: Check the FADT revision against the expected table length for |
* that revision. Issue a warning if the length is not what was |
* expected. This seems to be such a common BIOS bug that the |
* FADT revision has been rendered virtually meaningless. |
* |
******************************************************************************/ |
static void |
AcpiDmValidateFadtLength ( |
UINT32 Revision, |
UINT32 Length) |
{ |
UINT32 ExpectedLength; |
switch (Revision) |
{ |
case 0: |
AcpiOsPrintf ("// ACPI Warning: Invalid FADT revision: 0\n"); |
return; |
case 1: |
ExpectedLength = ACPI_FADT_V1_SIZE; |
break; |
case 2: |
ExpectedLength = ACPI_FADT_V2_SIZE; |
break; |
case 3: |
case 4: |
ExpectedLength = ACPI_FADT_V3_SIZE; |
break; |
default: |
return; |
} |
if (Length == ExpectedLength) |
{ |
return; |
} |
AcpiOsPrintf ( |
"\n// ACPI Warning: FADT revision %X does not match length: found %X expected %X\n", |
Revision, Length, ExpectedLength); |
} |
/******************************************************************************* |
* |
* FUNCTION: AcpiDmDumpAsf |
* |
* PARAMETERS: Table - A ASF table |
595,7 → 692,7 |
while (PathOffset < ScopeTable->Length) |
{ |
AcpiDmLineHeader ((PathOffset + ScopeOffset + Offset), 2, "PCI Path"); |
AcpiOsPrintf ("[%2.2X, %2.2X]\n", PciPath[0], PciPath[1]); |
AcpiOsPrintf ("%2.2X,%2.2X\n", PciPath[0], PciPath[1]); |
/* Point to next PCI Path entry */ |
709,7 → 806,7 |
{ |
AcpiOsPrintf ("\n"); |
Status = AcpiDmDumpTable (Length, Offset, SubTable, |
sizeof (ACPI_WHEA_HEADER), AcpiDmTableInfoEinj0); |
sizeof (ACPI_WHEA_HEADER), AcpiDmTableInfoErst0); |
if (ACPI_FAILURE (Status)) |
{ |
return; |
1250,6 → 1347,81 |
/******************************************************************************* |
* |
* FUNCTION: AcpiDmDumpSlic |
* |
* PARAMETERS: Table - A SLIC table |
* |
* RETURN: None |
* |
* DESCRIPTION: Format the contents of a SLIC |
* |
******************************************************************************/ |
void |
AcpiDmDumpSlic ( |
ACPI_TABLE_HEADER *Table) |
{ |
ACPI_STATUS Status; |
UINT32 Offset = sizeof (ACPI_TABLE_SLIC); |
ACPI_SLIC_HEADER *SubTable; |
ACPI_DMTABLE_INFO *InfoTable; |
/* There is no main SLIC table, only subtables */ |
SubTable = ACPI_ADD_PTR (ACPI_SLIC_HEADER, Table, Offset); |
while (Offset < Table->Length) |
{ |
/* Common sub-table header */ |
AcpiOsPrintf ("\n"); |
Status = AcpiDmDumpTable (Table->Length, Offset, SubTable, |
SubTable->Length, AcpiDmTableInfoSlicHdr); |
if (ACPI_FAILURE (Status)) |
{ |
return; |
} |
switch (SubTable->Type) |
{ |
case ACPI_SLIC_TYPE_PUBLIC_KEY: |
InfoTable = AcpiDmTableInfoSlic0; |
break; |
case ACPI_SLIC_TYPE_WINDOWS_MARKER: |
InfoTable = AcpiDmTableInfoSlic1; |
break; |
default: |
AcpiOsPrintf ("\n**** Unknown SLIC sub-table type 0x%X\n", SubTable->Type); |
/* Attempt to continue */ |
if (!SubTable->Length) |
{ |
AcpiOsPrintf ("Invalid zero length subtable\n"); |
return; |
} |
goto NextSubTable; |
} |
AcpiOsPrintf ("\n"); |
Status = AcpiDmDumpTable (Table->Length, Offset, SubTable, |
SubTable->Length, InfoTable); |
if (ACPI_FAILURE (Status)) |
{ |
return; |
} |
NextSubTable: |
/* Point to next sub-table */ |
Offset += SubTable->Length; |
SubTable = ACPI_ADD_PTR (ACPI_SLIC_HEADER, SubTable, SubTable->Length); |
} |
} |
/******************************************************************************* |
* |
* FUNCTION: AcpiDmDumpSlit |
* |
* PARAMETERS: Table - An SLIT |
1306,12 → 1478,17 |
/* Display up to 16 bytes per output row */ |
if (j && (((j+1) % 16) == 0) && ((j+1) < Localities)) |
if ((j+1) < Localities) |
{ |
AcpiOsPrintf ("\n"); |
AcpiDmLineHeader (Offset, 0, ""); |
AcpiOsPrintf (" "); |
if (j && (((j+1) % 16) == 0)) |
{ |
AcpiOsPrintf ("\\\n"); /* With line continuation char */ |
AcpiDmLineHeader (Offset, 0, NULL); |
} |
} |
} |
/* Point to next row */ |
/drivers/devman/acpica/common/dmtbinfo.c |
---|
8,7 → 8,7 |
* |
* 1. Copyright Notice |
* |
* Some or all of this work - Copyright (c) 1999 - 2010, Intel Corp. |
* Some or all of this work - Copyright (c) 1999 - 2011, Intel Corp. |
* All rights reserved. |
* |
* 2. License |
123,6 → 123,31 |
ACPI_MODULE_NAME ("dmtbinfo") |
/* |
* How to add a new table: |
* |
* - Add the C table definition to the actbl1.h or actbl2.h header. |
* - Add ACPI_xxxx_OFFSET macro(s) for the table (and subtables) to list below. |
* - Define the table in this file (for the disassembler). If any |
* new data types are required (ACPI_DMT_*), see below. |
* - Add an external declaration for the new table definition (AcpiDmTableInfo*) |
* in acdisam.h |
* - Add new table definition to the dispatch table in dmtable.c (AcpiDmTableData) |
* If a simple table (with no subtables), no disassembly code is needed. |
* Otherwise, create the AcpiDmDump* function for to disassemble the table |
* and add it to the dmtbdump.c file. |
* - Add an external declaration for the new AcpiDmDump* function in acdisasm.h |
* - Add the new AcpiDmDump* function to the dispatch table in dmtable.c |
* - Create a template for the new table |
* - Add data table compiler support |
* |
* How to add a new data type (ACPI_DMT_*): |
* |
* - Add new type at the end of the ACPI_DMT list in acdisasm.h |
* - Add length and implementation cases in dmtable.c (disassembler) |
* - Add type and length cases in dtutils.c (DT compiler) |
*/ |
/* |
* Macros used to generate offsets to specific table fields |
*/ |
#define ACPI_FACS_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_TABLE_FACS,f) |
153,6 → 178,7 |
#define ACPI_UEFI_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_TABLE_UEFI,f) |
#define ACPI_WAET_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_TABLE_WAET,f) |
#define ACPI_WDAT_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_TABLE_WDAT,f) |
#define ACPI_WDDT_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_TABLE_WDDT,f) |
#define ACPI_WDRT_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_TABLE_WDRT,f) |
/* Subtables */ |
171,6 → 197,7 |
#define ACPI_DMAR2_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_DMAR_ATSR,f) |
#define ACPI_DMAR3_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_DMAR_RHSA,f) |
#define ACPI_EINJ0_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_WHEA_HEADER,f) |
#define ACPI_ERST0_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_WHEA_HEADER,f) |
#define ACPI_HEST0_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_HEST_IA_MACHINE_CHECK,f) |
#define ACPI_HEST1_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_HEST_IA_CORRECTED,f) |
#define ACPI_HEST2_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_HEST_IA_NMI,f) |
201,6 → 228,9 |
#define ACPI_MADTH_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_SUBTABLE_HEADER,f) |
#define ACPI_MCFG0_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_MCFG_ALLOCATION,f) |
#define ACPI_MSCT0_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_MSCT_PROXIMITY,f) |
#define ACPI_SLICH_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_SLIC_HEADER,f) |
#define ACPI_SLIC0_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_SLIC_KEY,f) |
#define ACPI_SLIC1_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_SLIC_MARKER,f) |
#define ACPI_SRATH_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_SUBTABLE_HEADER,f) |
#define ACPI_SRAT0_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_SRAT_CPU_AFFINITY,f) |
#define ACPI_SRAT1_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_SRAT_MEM_AFFINITY,f) |
229,6 → 259,12 |
#define ACPI_MADT8_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_MADT_INTERRUPT_SOURCE,f,o) |
#define ACPI_MADT9_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_MADT_LOCAL_X2APIC,f,o) |
#define ACPI_MADT10_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_MADT_LOCAL_X2APIC_NMI,f,o) |
#define ACPI_WDDT_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_TABLE_WDDT,f,o) |
#define ACPI_EINJ0_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_WHEA_HEADER,f,o) |
#define ACPI_ERST0_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_WHEA_HEADER,f,o) |
#define ACPI_HEST0_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_HEST_IA_MACHINE_CHECK,f,o) |
#define ACPI_HEST1_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_HEST_IA_CORRECTED,f,o) |
#define ACPI_HEST6_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_HEST_AER_ROOT,f,o) |
/* |
* Required terminator for all tables below |
274,7 → 310,7 |
{ACPI_DMT_SPACEID, ACPI_GAS_OFFSET (SpaceId), "Space ID", 0}, |
{ACPI_DMT_UINT8, ACPI_GAS_OFFSET (BitWidth), "Bit Width", 0}, |
{ACPI_DMT_UINT8, ACPI_GAS_OFFSET (BitOffset), "Bit Offset", 0}, |
{ACPI_DMT_UINT8, ACPI_GAS_OFFSET (AccessWidth), "Access Width", 0}, |
{ACPI_DMT_ACCWIDTH, ACPI_GAS_OFFSET (AccessWidth), "Encoded Access Width", 0}, |
{ACPI_DMT_UINT64, ACPI_GAS_OFFSET (Address), "Address", 0}, |
ACPI_DMT_TERMINATOR |
}; |
541,7 → 577,7 |
ACPI_DMTABLE_INFO AcpiDmTableInfoAsf3[] = |
{ |
{ACPI_DMT_UINT56, ACPI_ASF3_OFFSET (Capabilities[0]), "Capabilities", 0}, |
{ACPI_DMT_BUF7, ACPI_ASF3_OFFSET (Capabilities[0]), "Capabilities", 0}, |
{ACPI_DMT_UINT8, ACPI_ASF3_OFFSET (CompletionCode), "Completion Code", 0}, |
{ACPI_DMT_UINT32, ACPI_ASF3_OFFSET (EnterpriseId), "Enterprise ID", 0}, |
{ACPI_DMT_UINT8, ACPI_ASF3_OFFSET (Command), "Command", 0}, |
731,7 → 767,7 |
ACPI_DMTABLE_INFO AcpiDmTableInfoEinj[] = |
{ |
{ACPI_DMT_UINT32, ACPI_EINJ_OFFSET (HeaderLength), "Injection Header Length", DT_LENGTH}, |
{ACPI_DMT_UINT32, ACPI_EINJ_OFFSET (HeaderLength), "Injection Header Length", 0}, |
{ACPI_DMT_UINT8, ACPI_EINJ_OFFSET (Flags), "Flags", 0}, |
{ACPI_DMT_UINT24, ACPI_EINJ_OFFSET (Reserved[0]), "Reserved", 0}, |
{ACPI_DMT_UINT32, ACPI_EINJ_OFFSET (Entries), "Injection Entry Count", 0}, |
740,9 → 776,11 |
ACPI_DMTABLE_INFO AcpiDmTableInfoEinj0[] = |
{ |
{ACPI_DMT_UINT8, ACPI_EINJ0_OFFSET (Action), "Action", 0}, |
{ACPI_DMT_UINT8, ACPI_EINJ0_OFFSET (Instruction), "Instruction", 0}, |
{ACPI_DMT_UINT8, ACPI_EINJ0_OFFSET (Flags), "Flags", 0}, |
{ACPI_DMT_EINJACT, ACPI_EINJ0_OFFSET (Action), "Action", 0}, |
{ACPI_DMT_EINJINST, ACPI_EINJ0_OFFSET (Instruction), "Instruction", 0}, |
{ACPI_DMT_UINT8, ACPI_EINJ0_OFFSET (Flags), "Flags (decoded below)", DT_FLAG}, |
{ACPI_DMT_FLAG0, ACPI_EINJ0_FLAG_OFFSET (Flags,0), "Preserve Register Bits", 0}, |
{ACPI_DMT_UINT8, ACPI_EINJ0_OFFSET (Reserved), "Reserved", 0}, |
{ACPI_DMT_GAS, ACPI_EINJ0_OFFSET (RegisterRegion), "Register Region", 0}, |
{ACPI_DMT_UINT64, ACPI_EINJ0_OFFSET (Value), "Value", 0}, |
759,13 → 797,27 |
ACPI_DMTABLE_INFO AcpiDmTableInfoErst[] = |
{ |
{ACPI_DMT_UINT32, ACPI_ERST_OFFSET (HeaderLength), "Serialization Header Length", DT_LENGTH}, |
{ACPI_DMT_UINT32, ACPI_ERST_OFFSET (HeaderLength), "Serialization Header Length", 0}, |
{ACPI_DMT_UINT32, ACPI_ERST_OFFSET (Reserved), "Reserved", 0}, |
{ACPI_DMT_UINT32, ACPI_ERST_OFFSET (Entries), "Instruction Entry Count", 0}, |
ACPI_DMT_TERMINATOR |
}; |
ACPI_DMTABLE_INFO AcpiDmTableInfoErst0[] = |
{ |
{ACPI_DMT_ERSTACT, ACPI_ERST0_OFFSET (Action), "Action", 0}, |
{ACPI_DMT_ERSTINST, ACPI_ERST0_OFFSET (Instruction), "Instruction", 0}, |
{ACPI_DMT_UINT8, ACPI_ERST0_OFFSET (Flags), "Flags (decoded below)", DT_FLAG}, |
{ACPI_DMT_FLAG0, ACPI_ERST0_FLAG_OFFSET (Flags,0), "Preserve Register Bits", 0}, |
{ACPI_DMT_UINT8, ACPI_ERST0_OFFSET (Reserved), "Reserved", 0}, |
{ACPI_DMT_GAS, ACPI_ERST0_OFFSET (RegisterRegion), "Register Region", 0}, |
{ACPI_DMT_UINT64, ACPI_ERST0_OFFSET (Value), "Value", 0}, |
{ACPI_DMT_UINT64, ACPI_ERST0_OFFSET (Mask), "Mask", 0}, |
ACPI_DMT_TERMINATOR |
}; |
/******************************************************************************* |
* |
* HEST - Hardware Error Source table |
786,7 → 838,8 |
#define ACPI_DM_HEST_AER \ |
{ACPI_DMT_UINT16, ACPI_HEST6_OFFSET (Aer.Reserved1), "Reserved", 0}, \ |
{ACPI_DMT_UINT8, ACPI_HEST6_OFFSET (Aer.Flags), "Flags", 0}, \ |
{ACPI_DMT_UINT8, ACPI_HEST6_OFFSET (Aer.Flags), "Flags (decoded below)", DT_FLAG}, \ |
{ACPI_DMT_FLAG0, ACPI_HEST6_FLAG_OFFSET (Aer.Flags,0), "Firmware First", 0}, \ |
{ACPI_DMT_UINT8, ACPI_HEST6_OFFSET (Aer.Enabled), "Enabled", 0}, \ |
{ACPI_DMT_UINT32, ACPI_HEST6_OFFSET (Aer.RecordsToPreallocate), "Records To Preallocate", 0}, \ |
{ACPI_DMT_UINT32, ACPI_HEST6_OFFSET (Aer.MaxSectionsPerRecord), "Max Sections Per Record", 0}, \ |
808,8 → 861,10 |
ACPI_DMTABLE_INFO AcpiDmTableInfoHest0[] = |
{ |
ACPI_DM_HEST_HEADER, |
{ACPI_DMT_UINT16, ACPI_HEST0_OFFSET (Reserved1), "Reserved", 0}, |
{ACPI_DMT_UINT8, ACPI_HEST0_OFFSET (Flags), "Flags", 0}, |
{ACPI_DMT_UINT16, ACPI_HEST0_OFFSET (Reserved1), "Reserved1", 0}, |
{ACPI_DMT_UINT8, ACPI_HEST0_OFFSET (Flags), "Flags (decoded below)", DT_FLAG}, |
{ACPI_DMT_FLAG0, ACPI_HEST0_FLAG_OFFSET (Flags,0), "Firmware First", 0}, |
{ACPI_DMT_UINT8, ACPI_HEST0_OFFSET (Enabled), "Enabled", 0}, |
{ACPI_DMT_UINT32, ACPI_HEST0_OFFSET (RecordsToPreallocate), "Records To Preallocate", 0}, |
{ACPI_DMT_UINT32, ACPI_HEST0_OFFSET (MaxSectionsPerRecord), "Max Sections Per Record", 0}, |
816,7 → 871,7 |
{ACPI_DMT_UINT64, ACPI_HEST0_OFFSET (GlobalCapabilityData), "Global Capability Data", 0}, |
{ACPI_DMT_UINT64, ACPI_HEST0_OFFSET (GlobalControlData), "Global Control Data", 0}, |
{ACPI_DMT_UINT8, ACPI_HEST0_OFFSET (NumHardwareBanks), "Num Hardware Banks", 0}, |
{ACPI_DMT_UINT56, ACPI_HEST0_OFFSET (Reserved3[0]), "Reserved", 0}, |
{ACPI_DMT_UINT56, ACPI_HEST0_OFFSET (Reserved3[0]), "Reserved2", 0}, |
ACPI_DMT_TERMINATOR |
}; |
825,14 → 880,16 |
ACPI_DMTABLE_INFO AcpiDmTableInfoHest1[] = |
{ |
ACPI_DM_HEST_HEADER, |
{ACPI_DMT_UINT16, ACPI_HEST1_OFFSET (Reserved1), "Reserved", 0}, |
{ACPI_DMT_UINT8, ACPI_HEST1_OFFSET (Flags), "Flags", 0}, |
{ACPI_DMT_UINT16, ACPI_HEST1_OFFSET (Reserved1), "Reserved1", 0}, |
{ACPI_DMT_UINT8, ACPI_HEST1_OFFSET (Flags), "Flags (decoded below)", DT_FLAG}, |
{ACPI_DMT_FLAG0, ACPI_HEST1_FLAG_OFFSET (Flags,0), "Firmware First", 0}, |
{ACPI_DMT_UINT8, ACPI_HEST1_OFFSET (Enabled), "Enabled", 0}, |
{ACPI_DMT_UINT32, ACPI_HEST1_OFFSET (RecordsToPreallocate), "Records To Preallocate", 0}, |
{ACPI_DMT_UINT32, ACPI_HEST1_OFFSET (MaxSectionsPerRecord), "Max Sections Per Record", 0}, |
{ACPI_DMT_HESTNTFY, ACPI_HEST1_OFFSET (Notify), "Notify", 0}, |
{ACPI_DMT_UINT8, ACPI_HEST1_OFFSET (NumHardwareBanks), "Num Hardware Banks", 0}, |
{ACPI_DMT_UINT24, ACPI_HEST1_OFFSET (Reserved2[0]), "Reserved", 0}, |
{ACPI_DMT_UINT24, ACPI_HEST1_OFFSET (Reserved2[0]), "Reserved2", 0}, |
ACPI_DMT_TERMINATOR |
}; |
848,7 → 905,6 |
ACPI_DMT_TERMINATOR |
}; |
/* 6: PCI Express Root Port AER */ |
ACPI_DMTABLE_INFO AcpiDmTableInfoHest6[] = |
1300,17 → 1356,46 |
/******************************************************************************* |
* |
* SLIC - Software Licensing Description Table. NOT FULLY IMPLEMENTED, do not |
* have the table definition. |
* SLIC - Software Licensing Description Table. There is no common table, just |
* the standard ACPI header and then subtables. |
* |
******************************************************************************/ |
ACPI_DMTABLE_INFO AcpiDmTableInfoSlic[] = |
/* Common Subtable header (one per Subtable) */ |
ACPI_DMTABLE_INFO AcpiDmTableInfoSlicHdr[] = |
{ |
{ACPI_DMT_SLIC, ACPI_SLICH_OFFSET (Type), "Subtable Type", 0}, |
{ACPI_DMT_UINT32, ACPI_SLICH_OFFSET (Length), "Length", DT_LENGTH}, |
ACPI_DMT_TERMINATOR |
}; |
ACPI_DMTABLE_INFO AcpiDmTableInfoSlic0[] = |
{ |
{ACPI_DMT_UINT8, ACPI_SLIC0_OFFSET (KeyType), "Key Type", 0}, |
{ACPI_DMT_UINT8, ACPI_SLIC0_OFFSET (Version), "Version", 0}, |
{ACPI_DMT_UINT16, ACPI_SLIC0_OFFSET (Reserved), "Reserved", 0}, |
{ACPI_DMT_UINT32, ACPI_SLIC0_OFFSET (Algorithm), "Algorithm", 0}, |
{ACPI_DMT_NAME4, ACPI_SLIC0_OFFSET (Magic), "Magic", 0}, |
{ACPI_DMT_UINT32, ACPI_SLIC0_OFFSET (BitLength), "BitLength", 0}, |
{ACPI_DMT_UINT32, ACPI_SLIC0_OFFSET (Exponent), "Exponent", 0}, |
{ACPI_DMT_BUF128, ACPI_SLIC0_OFFSET (Modulus[0]), "Modulus", 0}, |
ACPI_DMT_TERMINATOR |
}; |
ACPI_DMTABLE_INFO AcpiDmTableInfoSlic1[] = |
{ |
{ACPI_DMT_UINT32, ACPI_SLIC1_OFFSET (Version), "Version", 0}, |
{ACPI_DMT_NAME6, ACPI_SLIC1_OFFSET (OemId[0]), "Oem ID", 0}, |
{ACPI_DMT_NAME8, ACPI_SLIC1_OFFSET (OemTableId[0]), "Oem Table ID", 0}, |
{ACPI_DMT_NAME8, ACPI_SLIC1_OFFSET (WindowsFlag[0]), "Windows Flag", 0}, |
{ACPI_DMT_UINT32, ACPI_SLIC1_OFFSET (SlicVersion), "SLIC Version", 0}, |
{ACPI_DMT_BUF16, ACPI_SLIC1_OFFSET (Reserved[0]), "Reserved", 0}, |
{ACPI_DMT_BUF128, ACPI_SLIC1_OFFSET (Signature[0]), "Signature", 0}, |
ACPI_DMT_TERMINATOR |
}; |
/******************************************************************************* |
* |
* SLIT - System Locality Information Table |
1425,15 → 1510,15 |
ACPI_DMTABLE_INFO AcpiDmTableInfoSrat1[] = |
{ |
{ACPI_DMT_UINT32, ACPI_SRAT1_OFFSET (ProximityDomain), "Proximity Domain", 0}, |
{ACPI_DMT_UINT16, ACPI_SRAT1_OFFSET (Reserved), "Reserved", 0}, |
{ACPI_DMT_UINT16, ACPI_SRAT1_OFFSET (Reserved), "Reserved1", 0}, |
{ACPI_DMT_UINT64, ACPI_SRAT1_OFFSET (BaseAddress), "Base Address", 0}, |
{ACPI_DMT_UINT64, ACPI_SRAT1_OFFSET (Length), "Address Length", 0}, |
{ACPI_DMT_UINT32, ACPI_SRAT1_OFFSET (Reserved1), "Reserved", 0}, |
{ACPI_DMT_UINT32, ACPI_SRAT1_OFFSET (Reserved1), "Reserved2", 0}, |
{ACPI_DMT_UINT32, ACPI_SRAT1_OFFSET (Flags), "Flags (decoded below)", DT_FLAG}, |
{ACPI_DMT_FLAG0, ACPI_SRAT1_FLAG_OFFSET (Flags,0), "Enabled", 0}, |
{ACPI_DMT_FLAG1, ACPI_SRAT1_FLAG_OFFSET (Flags,0), "Hot Pluggable", 0}, |
{ACPI_DMT_FLAG2, ACPI_SRAT1_FLAG_OFFSET (Flags,0), "Non-Volatile", 0}, |
{ACPI_DMT_UINT64, ACPI_SRAT1_OFFSET (Reserved2), "Reserved", 0}, |
{ACPI_DMT_UINT64, ACPI_SRAT1_OFFSET (Reserved2), "Reserved3", 0}, |
ACPI_DMT_TERMINATOR |
}; |
1441,13 → 1526,13 |
ACPI_DMTABLE_INFO AcpiDmTableInfoSrat2[] = |
{ |
{ACPI_DMT_UINT16, ACPI_SRAT2_OFFSET (Reserved), "Reserved", 0}, |
{ACPI_DMT_UINT16, ACPI_SRAT2_OFFSET (Reserved), "Reserved1", 0}, |
{ACPI_DMT_UINT32, ACPI_SRAT2_OFFSET (ProximityDomain), "Proximity Domain", 0}, |
{ACPI_DMT_UINT32, ACPI_SRAT2_OFFSET (ApicId), "Apic ID", 0}, |
{ACPI_DMT_UINT32, ACPI_SRAT2_OFFSET (Flags), "Flags (decoded below)", DT_FLAG}, |
{ACPI_DMT_FLAG0, ACPI_SRAT2_FLAG_OFFSET (Flags,0), "Enabled", 0}, |
{ACPI_DMT_UINT32, ACPI_SRAT2_OFFSET (ClockDomain), "Clock Domain", 0}, |
{ACPI_DMT_UINT32, ACPI_SRAT2_OFFSET (Reserved2), "Reserved", 0}, |
{ACPI_DMT_UINT32, ACPI_SRAT2_OFFSET (Reserved2), "Reserved2", 0}, |
ACPI_DMT_TERMINATOR |
}; |
1475,7 → 1560,7 |
ACPI_DMTABLE_INFO AcpiDmTableInfoUefi[] = |
{ |
{ACPI_DMT_BUF16, ACPI_UEFI_OFFSET (Identifier[0]), "UUID Identifier", 0}, |
{ACPI_DMT_UUID, ACPI_UEFI_OFFSET (Identifier[0]), "UUID Identifier", 0}, |
{ACPI_DMT_UINT16, ACPI_UEFI_OFFSET (DataOffset), "Data Offset", 0}, |
ACPI_DMT_TERMINATOR |
}; |
1537,6 → 1622,46 |
/******************************************************************************* |
* |
* WDDT - Watchdog Description Table |
* |
******************************************************************************/ |
ACPI_DMTABLE_INFO AcpiDmTableInfoWddt[] = |
{ |
{ACPI_DMT_UINT16, ACPI_WDDT_OFFSET (SpecVersion), "Specification Version", 0}, |
{ACPI_DMT_UINT16, ACPI_WDDT_OFFSET (TableVersion), "Table Version", 0}, |
{ACPI_DMT_UINT16, ACPI_WDDT_OFFSET (PciVendorId), "PCI Vendor ID", 0}, |
{ACPI_DMT_GAS, ACPI_WDDT_OFFSET (Address), "Timer Register", 0}, |
{ACPI_DMT_UINT16, ACPI_WDDT_OFFSET (MaxCount), "Max Count", 0}, |
{ACPI_DMT_UINT16, ACPI_WDDT_OFFSET (MinCount), "Min Count", 0}, |
{ACPI_DMT_UINT16, ACPI_WDDT_OFFSET (Period), "Period", 0}, |
{ACPI_DMT_UINT16, ACPI_WDDT_OFFSET (Status), "Status (decoded below)", 0}, |
/* Status Flags byte 0 */ |
{ACPI_DMT_FLAG0, ACPI_WDDT_FLAG_OFFSET (Status,0), "Available", 0}, |
{ACPI_DMT_FLAG1, ACPI_WDDT_FLAG_OFFSET (Status,0), "Active", 0}, |
{ACPI_DMT_FLAG2, ACPI_WDDT_FLAG_OFFSET (Status,0), "OS Owns", 0}, |
/* Status Flags byte 1 */ |
{ACPI_DMT_FLAG3, ACPI_WDDT_FLAG_OFFSET (Status,1), "User Reset", 0}, |
{ACPI_DMT_FLAG4, ACPI_WDDT_FLAG_OFFSET (Status,1), "Timeout Reset", 0}, |
{ACPI_DMT_FLAG5, ACPI_WDDT_FLAG_OFFSET (Status,1), "Power Fail Reset", 0}, |
{ACPI_DMT_FLAG6, ACPI_WDDT_FLAG_OFFSET (Status,1), "Unknown Reset", 0}, |
{ACPI_DMT_UINT16, ACPI_WDDT_OFFSET (Capability), "Capability (decoded below)", 0}, |
/* Capability Flags byte 0 */ |
{ACPI_DMT_FLAG0, ACPI_WDDT_FLAG_OFFSET (Capability,0), "Auto Reset", 0}, |
{ACPI_DMT_FLAG1, ACPI_WDDT_FLAG_OFFSET (Capability,0), "Timeout Alert", 0}, |
ACPI_DMT_TERMINATOR |
}; |
/******************************************************************************* |
* |
* WDRT - Watchdog Resource Table |
* |
******************************************************************************/ |
1556,3 → 1681,42 |
ACPI_DMT_TERMINATOR |
}; |
/* |
* Generic types (used in UEFI) |
* |
* Examples: |
* |
* Buffer : cc 04 ff bb |
* UINT8 : 11 |
* UINT16 : 1122 |
* UINT24 : 112233 |
* UINT32 : 11223344 |
* UINT56 : 11223344556677 |
* UINT64 : 1122334455667788 |
* |
* String : "This is string" |
* Unicode : "This string encoded to Unicode" |
* |
* GUID : 11223344-5566-7788-99aa-bbccddeeff00 |
* DevicePath : "\PciRoot(0)\Pci(0x1f,1)\Usb(0,0)" |
*/ |
#define ACPI_DM_GENERIC_ENTRY(FieldType, FieldName)\ |
{{FieldType, 0, FieldName, 0}, ACPI_DMT_TERMINATOR} |
ACPI_DMTABLE_INFO AcpiDmTableInfoGeneric[][2] = |
{ |
ACPI_DM_GENERIC_ENTRY (ACPI_DMT_UINT8, "UINT8"), |
ACPI_DM_GENERIC_ENTRY (ACPI_DMT_UINT16, "UINT16"), |
ACPI_DM_GENERIC_ENTRY (ACPI_DMT_UINT24, "UINT24"), |
ACPI_DM_GENERIC_ENTRY (ACPI_DMT_UINT32, "UINT32"), |
ACPI_DM_GENERIC_ENTRY (ACPI_DMT_UINT56, "UINT56"), |
ACPI_DM_GENERIC_ENTRY (ACPI_DMT_UINT64, "UINT64"), |
ACPI_DM_GENERIC_ENTRY (ACPI_DMT_STRING, "String"), |
ACPI_DM_GENERIC_ENTRY (ACPI_DMT_UNICODE, "Unicode"), |
ACPI_DM_GENERIC_ENTRY (ACPI_DMT_BUFFER, "Buffer"), |
ACPI_DM_GENERIC_ENTRY (ACPI_DMT_UUID, "GUID"), |
ACPI_DM_GENERIC_ENTRY (ACPI_DMT_STRING, "DevicePath"), |
ACPI_DM_GENERIC_ENTRY (ACPI_DMT_LABEL, "Label"), |
{ACPI_DMT_TERMINATOR} |
}; |
/drivers/devman/acpica/common/getopt.c |
---|
9,7 → 9,7 |
* |
* 1. Copyright Notice |
* |
* Some or all of this work - Copyright (c) 1999 - 2010, Intel Corp. |
* Some or all of this work - Copyright (c) 1999 - 2011, Intel Corp. |
* All rights reserved. |
* |
* 2. License |
114,19 → 114,18 |
* |
*****************************************************************************/ |
#include <stdio.h> |
#include <string.h> |
#include "acpi.h" |
#include "accommon.h" |
#include "acapps.h" |
#include <stdio.h> |
#include <string.h> |
#define ERR(szz,czz) if(AcpiGbl_Opterr){fprintf(stderr,"%s%s%c\n",argv[0],szz,czz);} |
int AcpiGbl_Opterr = 1; |
int AcpiGbl_Optind = 1; |
int AcpiGbl_Optopt; |
char *AcpiGbl_Optarg; |
171,9 → 170,7 |
/* Get the option */ |
CurrentChar = |
AcpiGbl_Optopt = |
argv[AcpiGbl_Optind][CurrentCharPtr]; |
CurrentChar = argv[AcpiGbl_Optind][CurrentCharPtr]; |
/* Make sure that the option is legal */ |