summaryrefslogtreecommitdiffstats
path: root/source/common/dmtbdump.c
diff options
context:
space:
mode:
Diffstat (limited to 'source/common/dmtbdump.c')
-rw-r--r--source/common/dmtbdump.c31
1 files changed, 27 insertions, 4 deletions
diff --git a/source/common/dmtbdump.c b/source/common/dmtbdump.c
index 5b98191..41a78b6 100644
--- a/source/common/dmtbdump.c
+++ b/source/common/dmtbdump.c
@@ -809,8 +809,11 @@ AcpiDmDumpDbg2 (
/* Dump the OemData (optional) */
- AcpiDmDumpBuffer (SubTable, SubTable->OemDataOffset, SubTable->OemDataLength,
- Offset + SubTable->OemDataOffset, "OEM Data");
+ if (SubTable->OemDataOffset)
+ {
+ AcpiDmDumpBuffer (SubTable, SubTable->OemDataOffset, SubTable->OemDataLength,
+ Offset + SubTable->OemDataOffset, "OEM Data");
+ }
/* Point to next sub-table */
@@ -1947,11 +1950,31 @@ AcpiDmDumpPcct (
return;
}
- /* Sub-tables */
+ /* Subtables */
SubTable = ACPI_ADD_PTR (ACPI_PCCT_SUBSPACE, Table, Offset);
while (Offset < Table->Length)
{
+ /* Common subtable header */
+
+ AcpiOsPrintf ("\n");
+ Status = AcpiDmDumpTable (Length, Offset, SubTable,
+ SubTable->Header.Length, AcpiDmTableInfoPcctHdr);
+ if (ACPI_FAILURE (Status))
+ {
+ return;
+ }
+
+ /* ACPI 5.0: Only one type of PCCT subtable is supported */
+
+ if (SubTable->Header.Type != ACPI_PCCT_TYPE_GENERIC_SUBSPACE)
+ {
+ AcpiOsPrintf (
+ "\n**** Unexpected or unknown PCCT subtable type 0x%X\n\n",
+ SubTable->Header.Type);
+ return;
+ }
+
AcpiOsPrintf ("\n");
Status = AcpiDmDumpTable (Length, Offset, SubTable,
SubTable->Header.Length, AcpiDmTableInfoPcct0);
@@ -1960,7 +1983,7 @@ AcpiDmDumpPcct (
return;
}
- /* Point to next sub-table */
+ /* Point to next subtable */
Offset += SubTable->Header.Length;
SubTable = ACPI_ADD_PTR (ACPI_PCCT_SUBSPACE, SubTable,
OpenPOWER on IntegriCloud