2
0
mirror of https://github.com/edk2-porting/linux-next.git synced 2024-12-30 16:13:54 +08:00

ACPICA: Debugger: Improve support for Alias objects

ACPICA commit 916993dbcd45b46e01f6c9b8337a01513f5d8dcc

Properly resolve alias objects for display.
General cleanup of related output.

Link: https://github.com/acpica/acpica/commit/916993db
Signed-off-by: Bob Moore <robert.moore@intel.com>
Signed-off-by: Lv Zheng <lv.zheng@intel.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
This commit is contained in:
Bob Moore 2017-08-03 14:27:15 +08:00 committed by Rafael J. Wysocki
parent a5b6e982fb
commit 7ab58197d8
2 changed files with 58 additions and 13 deletions

View File

@ -310,7 +310,7 @@ dump_node:
} }
else { else {
acpi_os_printf("Object (%p) Pathname: %s\n", acpi_os_printf("Object %p: Namespace Node - Pathname: %s\n",
node, (char *)ret_buf.pointer); node, (char *)ret_buf.pointer);
} }
@ -326,7 +326,7 @@ dump_node:
obj_desc = acpi_ns_get_attached_object(node); obj_desc = acpi_ns_get_attached_object(node);
if (obj_desc) { if (obj_desc) {
acpi_os_printf("\nAttached Object (%p):\n", obj_desc); acpi_os_printf("\nAttached Object %p:", obj_desc);
if (!acpi_os_readable if (!acpi_os_readable
(obj_desc, sizeof(union acpi_operand_object))) { (obj_desc, sizeof(union acpi_operand_object))) {
acpi_os_printf acpi_os_printf
@ -335,9 +335,36 @@ dump_node:
return; return;
} }
acpi_ut_debug_dump_buffer((void *)obj_desc, if (ACPI_GET_DESCRIPTOR_TYPE(((struct acpi_namespace_node *)
sizeof(union acpi_operand_object), obj_desc)) ==
display, ACPI_UINT32_MAX); ACPI_DESC_TYPE_NAMED) {
acpi_os_printf(" Namespace Node - ");
status =
acpi_get_name((struct acpi_namespace_node *)
obj_desc,
ACPI_FULL_PATHNAME_NO_TRAILING,
&ret_buf);
if (ACPI_FAILURE(status)) {
acpi_os_printf
("Could not convert name to pathname\n");
} else {
acpi_os_printf("Pathname: %s",
(char *)ret_buf.pointer);
}
acpi_os_printf("\n");
acpi_ut_debug_dump_buffer((void *)obj_desc,
sizeof(struct
acpi_namespace_node),
display, ACPI_UINT32_MAX);
} else {
acpi_os_printf("\n");
acpi_ut_debug_dump_buffer((void *)obj_desc,
sizeof(union
acpi_operand_object),
display, ACPI_UINT32_MAX);
}
acpi_ex_dump_object_descriptor(obj_desc, 1); acpi_ex_dump_object_descriptor(obj_desc, 1);
} }
} }

View File

@ -102,7 +102,7 @@ static struct acpi_exdump_info acpi_ex_dump_package[6] = {
{ACPI_EXD_INIT, ACPI_EXD_TABLE_SIZE(acpi_ex_dump_package), NULL}, {ACPI_EXD_INIT, ACPI_EXD_TABLE_SIZE(acpi_ex_dump_package), NULL},
{ACPI_EXD_NODE, ACPI_EXD_OFFSET(package.node), "Parent Node"}, {ACPI_EXD_NODE, ACPI_EXD_OFFSET(package.node), "Parent Node"},
{ACPI_EXD_UINT8, ACPI_EXD_OFFSET(package.flags), "Flags"}, {ACPI_EXD_UINT8, ACPI_EXD_OFFSET(package.flags), "Flags"},
{ACPI_EXD_UINT32, ACPI_EXD_OFFSET(package.count), "Elements"}, {ACPI_EXD_UINT32, ACPI_EXD_OFFSET(package.count), "Element Count"},
{ACPI_EXD_POINTER, ACPI_EXD_OFFSET(package.elements), "Element List"}, {ACPI_EXD_POINTER, ACPI_EXD_OFFSET(package.elements), "Element List"},
{ACPI_EXD_PACKAGE, 0, NULL} {ACPI_EXD_PACKAGE, 0, NULL}
}; };
@ -384,6 +384,10 @@ acpi_ex_dump_object(union acpi_operand_object *obj_desc,
count = info->offset; count = info->offset;
while (count) { while (count) {
if (!obj_desc) {
return;
}
target = ACPI_ADD_PTR(u8, obj_desc, info->offset); target = ACPI_ADD_PTR(u8, obj_desc, info->offset);
name = info->name; name = info->name;
@ -469,9 +473,9 @@ acpi_ex_dump_object(union acpi_operand_object *obj_desc,
start = *ACPI_CAST_PTR(void *, target); start = *ACPI_CAST_PTR(void *, target);
next = start; next = start;
acpi_os_printf("%20s : %p", name, next); acpi_os_printf("%20s : %p ", name, next);
if (next) { if (next) {
acpi_os_printf("(%s %2.2X)", acpi_os_printf("%s (Type %2.2X)",
acpi_ut_get_object_type_name acpi_ut_get_object_type_name
(next), next->common.type); (next), next->common.type);
@ -493,6 +497,8 @@ acpi_ex_dump_object(union acpi_operand_object *obj_desc,
break; break;
} }
} }
} else {
acpi_os_printf("- No attached objects");
} }
acpi_os_printf("\n"); acpi_os_printf("\n");
@ -1129,7 +1135,9 @@ acpi_ex_dump_package_obj(union acpi_operand_object *obj_desc,
default: default:
acpi_os_printf("[Unknown Type] %X\n", obj_desc->common.type); acpi_os_printf("[%s] Type: %2.2X\n",
acpi_ut_get_type_name(obj_desc->common.type),
obj_desc->common.type);
break; break;
} }
} }
@ -1167,11 +1175,17 @@ acpi_ex_dump_object_descriptor(union acpi_operand_object *obj_desc, u32 flags)
acpi_ex_dump_namespace_node((struct acpi_namespace_node *) acpi_ex_dump_namespace_node((struct acpi_namespace_node *)
obj_desc, flags); obj_desc, flags);
acpi_os_printf("\nAttached Object (%p):\n",
((struct acpi_namespace_node *)obj_desc)->
object);
obj_desc = ((struct acpi_namespace_node *)obj_desc)->object; obj_desc = ((struct acpi_namespace_node *)obj_desc)->object;
if (!obj_desc) {
return_VOID;
}
acpi_os_printf("\nAttached Object %p", obj_desc);
if (ACPI_GET_DESCRIPTOR_TYPE(obj_desc) == ACPI_DESC_TYPE_NAMED) {
acpi_os_printf(" - Namespace Node");
}
acpi_os_printf(":\n");
goto dump_object; goto dump_object;
} }
@ -1191,6 +1205,10 @@ acpi_ex_dump_object_descriptor(union acpi_operand_object *obj_desc, u32 flags)
dump_object: dump_object:
if (!obj_desc) {
return_VOID;
}
/* Common Fields */ /* Common Fields */
acpi_ex_dump_object(obj_desc, acpi_ex_dump_common); acpi_ex_dump_object(obj_desc, acpi_ex_dump_common);