diff options
author | Robert Moore <Robert.Moore@intel.com> | 2015-06-04 12:22:08 -0700 |
---|---|---|
committer | Robert Moore <Robert.Moore@intel.com> | 2015-06-04 12:22:08 -0700 |
commit | d4a53a396fe5d384425251b0257f8d125bbed617 (patch) | |
tree | e3c9c582be9e1e3e052dd99850e767b58d3ed256 /source/components/executer/exdebug.c | |
parent | b761344dd4cc2a2b4cec8ce8736b6d4f9aaef8a6 (diff) | |
download | acpica-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.c | 35 |
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; |