summaryrefslogtreecommitdiff
path: root/sys/contrib/dev/acpica/nsdump.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/contrib/dev/acpica/nsdump.c')
-rw-r--r--sys/contrib/dev/acpica/nsdump.c77
1 files changed, 61 insertions, 16 deletions
diff --git a/sys/contrib/dev/acpica/nsdump.c b/sys/contrib/dev/acpica/nsdump.c
index ee74fee10873..0f6e9157e69e 100644
--- a/sys/contrib/dev/acpica/nsdump.c
+++ b/sys/contrib/dev/acpica/nsdump.c
@@ -1,7 +1,7 @@
/******************************************************************************
*
* Module Name: nsdump - table dumping routines for debug
- * $Revision: 127 $
+ * $Revision: 129 $
*
*****************************************************************************/
@@ -146,7 +146,7 @@ AcpiNsPrintPathname (
UINT32 NumSegments,
char *Pathname)
{
- ACPI_FUNCTION_NAME ("AcpiNsPrintPathname");
+ ACPI_FUNCTION_NAME ("NsPrintPathname");
if (!(AcpiDbgLevel & ACPI_LV_NAMES) || !(AcpiDbgLayer & ACPI_NAMESPACE))
@@ -340,7 +340,7 @@ AcpiNsDumpOneObject (
Type = INTERNAL_TYPE_DEF_ANY; /* prints as *ERROR* */
}
- if (!AcpiUtValidAcpiName (ThisNode->Name))
+ if (!AcpiUtValidAcpiName (ThisNode->Name.Integer))
{
ACPI_REPORT_WARNING (("Invalid ACPI Name %08X\n", ThisNode->Name));
}
@@ -371,62 +371,95 @@ AcpiNsDumpOneObject (
switch (Type)
{
case ACPI_TYPE_PROCESSOR:
+
AcpiOsPrintf (" ID %d Addr %.4X Len %.4X\n",
ObjDesc->Processor.ProcId,
ObjDesc->Processor.Address,
ObjDesc->Processor.Length);
break;
+
case ACPI_TYPE_DEVICE:
+
AcpiOsPrintf (" Notification object: %p", ObjDesc);
break;
+
case ACPI_TYPE_METHOD:
+
AcpiOsPrintf (" Args %d Len %.4X Aml %p \n",
ObjDesc->Method.ParamCount,
ObjDesc->Method.AmlLength,
ObjDesc->Method.AmlStart);
break;
+
case ACPI_TYPE_INTEGER:
+
AcpiOsPrintf (" = %8.8X%8.8X\n",
ACPI_HIDWORD (ObjDesc->Integer.Value),
ACPI_LODWORD (ObjDesc->Integer.Value));
break;
+
case ACPI_TYPE_PACKAGE:
- AcpiOsPrintf (" Elements %.2X\n",
- ObjDesc->Package.Count);
+
+ if (ObjDesc->Common.Flags & AOPOBJ_DATA_VALID)
+ {
+ AcpiOsPrintf (" Elements %.2X\n",
+ ObjDesc->Package.Count);
+ }
+ else
+ {
+ AcpiOsPrintf (" [Length not yet evaluated]\n");
+ }
break;
- case ACPI_TYPE_BUFFER:
- AcpiOsPrintf (" Len %.2X",
- ObjDesc->Buffer.Length);
- /* Dump some of the buffer */
+ case ACPI_TYPE_BUFFER:
- if (ObjDesc->Buffer.Length > 0)
+ if (ObjDesc->Common.Flags & AOPOBJ_DATA_VALID)
{
- AcpiOsPrintf (" =");
- for (i = 0; (i < ObjDesc->Buffer.Length && i < 12); i++)
+ AcpiOsPrintf (" Len %.2X",
+ ObjDesc->Buffer.Length);
+
+ /* Dump some of the buffer */
+
+ if (ObjDesc->Buffer.Length > 0)
{
- AcpiOsPrintf (" %.2X", ObjDesc->Buffer.Pointer[i]);
+ AcpiOsPrintf (" =");
+ for (i = 0; (i < ObjDesc->Buffer.Length && i < 12); i++)
+ {
+ AcpiOsPrintf (" %.2X", ObjDesc->Buffer.Pointer[i]);
+ }
}
+ AcpiOsPrintf ("\n");
+ }
+ else
+ {
+ AcpiOsPrintf (" [Length not yet evaluated]\n");
}
- AcpiOsPrintf ("\n");
break;
+
case ACPI_TYPE_STRING:
+
AcpiOsPrintf (" Len %.2X", ObjDesc->String.Length);
if (ObjDesc->String.Length > 0)
{
- AcpiOsPrintf (" = \"%.32s\"...", ObjDesc->String.Pointer);
+ AcpiOsPrintf (" = \"%.32s\"", ObjDesc->String.Pointer);
+ if (ObjDesc->String.Length > 32)
+ {
+ AcpiOsPrintf ("...");
+ }
}
AcpiOsPrintf ("\n");
break;
+
case ACPI_TYPE_REGION:
+
AcpiOsPrintf (" [%s]", AcpiUtGetRegionName (ObjDesc->Region.SpaceId));
if (ObjDesc->Region.Flags & AOPOBJ_DATA_VALID)
{
@@ -437,16 +470,20 @@ AcpiNsDumpOneObject (
}
else
{
- AcpiOsPrintf (" [Address/Length not evaluated]\n");
+ AcpiOsPrintf (" [Address/Length not yet evaluated]\n");
}
break;
+
case INTERNAL_TYPE_REFERENCE:
+
AcpiOsPrintf (" [%s]\n",
AcpiPsGetOpcodeName (ObjDesc->Reference.Opcode));
break;
+
case ACPI_TYPE_BUFFER_FIELD:
+
if (ObjDesc->BufferField.BufferObj &&
ObjDesc->BufferField.BufferObj->Buffer.Node)
{
@@ -455,24 +492,32 @@ AcpiNsDumpOneObject (
}
break;
+
case INTERNAL_TYPE_REGION_FIELD:
+
AcpiOsPrintf (" Rgn [%4.4s]",
(char *) &ObjDesc->CommonField.RegionObj->Region.Node->Name);
break;
+
case INTERNAL_TYPE_BANK_FIELD:
+
AcpiOsPrintf (" Rgn [%4.4s] Bnk [%4.4s]",
(char *) &ObjDesc->CommonField.RegionObj->Region.Node->Name,
(char *) &ObjDesc->BankField.BankObj->CommonField.Node->Name);
break;
+
case INTERNAL_TYPE_INDEX_FIELD:
+
AcpiOsPrintf (" Idx [%4.4s] Dat [%4.4s]",
(char *) &ObjDesc->IndexField.IndexObj->CommonField.Node->Name,
(char *) &ObjDesc->IndexField.DataObj->CommonField.Node->Name);
break;
+
default:
+
AcpiOsPrintf (" Object %p\n", ObjDesc);
break;
}