aboutsummaryrefslogtreecommitdiff
path: root/drivers/acpi/namespace/nsdump.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/acpi/namespace/nsdump.c')
-rw-r--r--drivers/acpi/namespace/nsdump.c31
1 files changed, 15 insertions, 16 deletions
diff --git a/drivers/acpi/namespace/nsdump.c b/drivers/acpi/namespace/nsdump.c
index 6c2aef0e0dd..05af95322a6 100644
--- a/drivers/acpi/namespace/nsdump.c
+++ b/drivers/acpi/namespace/nsdump.c
@@ -475,7 +475,7 @@ acpi_ns_dump_one_object (
while (obj_desc) {
obj_type = ACPI_TYPE_INVALID;
- acpi_os_printf (" Attached Object %p: ", obj_desc);
+ acpi_os_printf ("Attached Object %p: ", obj_desc);
/* Decode the type of attached object and dump the contents */
@@ -484,9 +484,9 @@ acpi_ns_dump_one_object (
acpi_os_printf ("(Ptr to Node)\n");
bytes_to_dump = sizeof (struct acpi_namespace_node);
+ ACPI_DUMP_BUFFER (obj_desc, bytes_to_dump);
break;
-
case ACPI_DESC_TYPE_OPERAND:
obj_type = ACPI_GET_OBJECT_TYPE (obj_desc);
@@ -497,24 +497,19 @@ acpi_ns_dump_one_object (
bytes_to_dump = 32;
}
else {
- acpi_os_printf ("(Ptr to ACPI Object type %s, %X)\n",
- acpi_ut_get_type_name (obj_type), obj_type);
+ acpi_os_printf ("(Ptr to ACPI Object type %X [%s])\n",
+ obj_type, acpi_ut_get_type_name (obj_type));
bytes_to_dump = sizeof (union acpi_operand_object);
}
- break;
+ ACPI_DUMP_BUFFER (obj_desc, bytes_to_dump);
+ break;
default:
- acpi_os_printf (
- "(String or Buffer ptr - not an object descriptor) [%s]\n",
- acpi_ut_get_descriptor_name (obj_desc));
- bytes_to_dump = 16;
break;
}
- ACPI_DUMP_BUFFER (obj_desc, bytes_to_dump);
-
/* If value is NOT an internal object, we are done */
if (ACPI_GET_DESCRIPTOR_TYPE (obj_desc) != ACPI_DESC_TYPE_OPERAND) {
@@ -525,13 +520,17 @@ acpi_ns_dump_one_object (
* Valid object, get the pointer to next level, if any
*/
switch (obj_type) {
+ case ACPI_TYPE_BUFFER:
case ACPI_TYPE_STRING:
+ /*
+ * NOTE: takes advantage of common fields between string/buffer
+ */
+ bytes_to_dump = obj_desc->string.length;
obj_desc = (void *) obj_desc->string.pointer;
- break;
-
- case ACPI_TYPE_BUFFER:
- obj_desc = (void *) obj_desc->buffer.pointer;
- break;
+ acpi_os_printf ( "(Buffer/String pointer %p length %X)\n",
+ obj_desc, bytes_to_dump);
+ ACPI_DUMP_BUFFER (obj_desc, bytes_to_dump);
+ goto cleanup;
case ACPI_TYPE_BUFFER_FIELD:
obj_desc = (union acpi_operand_object *) obj_desc->buffer_field.buffer_obj;