summaryrefslogtreecommitdiff
path: root/source/components/executer/exdebug.c
diff options
context:
space:
mode:
authorRobert Moore <Robert.Moore@intel.com>2015-06-04 12:22:08 -0700
committerRobert Moore <Robert.Moore@intel.com>2015-06-04 12:22:08 -0700
commitd4a53a396fe5d384425251b0257f8d125bbed617 (patch)
treee3c9c582be9e1e3e052dd99850e767b58d3ed256 /source/components/executer/exdebug.c
parentb761344dd4cc2a2b4cec8ce8736b6d4f9aaef8a6 (diff)
downloadacpica-d4a53a396fe5d384425251b0257f8d125bbed617.tar.gz
Cleanup output for the ASL Debug object.
Especially for use of the Index operator. For buffers and strings, only output the actual byte pointed to by the index. For packages, only print the package element decoded by the index.
Diffstat (limited to 'source/components/executer/exdebug.c')
-rw-r--r--source/components/executer/exdebug.c35
1 files changed, 33 insertions, 2 deletions
diff --git a/source/components/executer/exdebug.c b/source/components/executer/exdebug.c
index 64fef550e..79ca96c3f 100644
--- a/source/components/executer/exdebug.c
+++ b/source/components/executer/exdebug.c
@@ -153,6 +153,8 @@ AcpiExDoDebugObject (
{
UINT32 i;
UINT32 Timer;
+ ACPI_OPERAND_OBJECT *ObjectDesc;
+ UINT32 Value;
ACPI_FUNCTION_TRACE_PTR (ExDoDebugObject, SourceDesc);
@@ -339,8 +341,37 @@ AcpiExDoDebugObject (
}
else
{
- AcpiExDoDebugObject (SourceDesc->Reference.Object,
- Level+4, 0);
+ ObjectDesc = SourceDesc->Reference.Object;
+ Value = SourceDesc->Reference.Value;
+
+ switch (ObjectDesc->Common.Type)
+ {
+ case ACPI_TYPE_BUFFER:
+
+ AcpiOsPrintf ("Buffer[%u] = 0x%2.2X\n",
+ Value, *SourceDesc->Reference.IndexPointer);
+ break;
+
+ case ACPI_TYPE_STRING:
+
+ AcpiOsPrintf ("String[%u] = \"%c\" (0x%2.2X)\n",
+ Value, *SourceDesc->Reference.IndexPointer,
+ *SourceDesc->Reference.IndexPointer);
+ break;
+
+ case ACPI_TYPE_PACKAGE:
+
+ AcpiOsPrintf ("Package[%u] = ", Value);
+ AcpiExDoDebugObject (*SourceDesc->Reference.Where,
+ Level+4, 0);
+ break;
+
+ default:
+
+ AcpiOsPrintf ("Unknown Reference object type %X\n",
+ ObjectDesc->Common.Type);
+ break;
+ }
}
}
break;