ACPICA: Updates for Debug object output
Implemented several improvements for the output of the ASL "Debug" object to clarify and keep all data for a given object on one output line. Signed-off-by: Bob Moore <robert.moore@intel.com> Signed-off-by: Alexey Starikovskiy <astarikovskiy@suse.de> Signed-off-by: Len Brown <len.brown@intel.com>
This commit is contained in:
parent
cd0b224824
commit
d8846574ed
1 changed files with 52 additions and 24 deletions
|
@ -84,8 +84,12 @@ acpi_ex_do_debug_object(union acpi_operand_object *source_desc,
|
||||||
|
|
||||||
ACPI_FUNCTION_TRACE_PTR(ex_do_debug_object, source_desc);
|
ACPI_FUNCTION_TRACE_PTR(ex_do_debug_object, source_desc);
|
||||||
|
|
||||||
ACPI_DEBUG_PRINT_RAW((ACPI_DB_DEBUG_OBJECT, "[ACPI Debug] %*s",
|
/* Print line header as long as we are not in the middle of an object display */
|
||||||
level, " "));
|
|
||||||
|
if (!((level > 0) && index == 0)) {
|
||||||
|
ACPI_DEBUG_PRINT_RAW((ACPI_DB_DEBUG_OBJECT, "[ACPI Debug] %*s",
|
||||||
|
level, " "));
|
||||||
|
}
|
||||||
|
|
||||||
/* Display index for package output only */
|
/* Display index for package output only */
|
||||||
|
|
||||||
|
@ -95,12 +99,12 @@ acpi_ex_do_debug_object(union acpi_operand_object *source_desc,
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!source_desc) {
|
if (!source_desc) {
|
||||||
ACPI_DEBUG_PRINT_RAW((ACPI_DB_DEBUG_OBJECT, "<Null Object>\n"));
|
ACPI_DEBUG_PRINT_RAW((ACPI_DB_DEBUG_OBJECT, "[Null Object]\n"));
|
||||||
return_VOID;
|
return_VOID;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ACPI_GET_DESCRIPTOR_TYPE(source_desc) == ACPI_DESC_TYPE_OPERAND) {
|
if (ACPI_GET_DESCRIPTOR_TYPE(source_desc) == ACPI_DESC_TYPE_OPERAND) {
|
||||||
ACPI_DEBUG_PRINT_RAW((ACPI_DB_DEBUG_OBJECT, "%s: ",
|
ACPI_DEBUG_PRINT_RAW((ACPI_DB_DEBUG_OBJECT, "%s ",
|
||||||
acpi_ut_get_object_type_name
|
acpi_ut_get_object_type_name
|
||||||
(source_desc)));
|
(source_desc)));
|
||||||
|
|
||||||
|
@ -162,7 +166,7 @@ acpi_ex_do_debug_object(union acpi_operand_object *source_desc,
|
||||||
case ACPI_TYPE_PACKAGE:
|
case ACPI_TYPE_PACKAGE:
|
||||||
|
|
||||||
ACPI_DEBUG_PRINT_RAW((ACPI_DB_DEBUG_OBJECT,
|
ACPI_DEBUG_PRINT_RAW((ACPI_DB_DEBUG_OBJECT,
|
||||||
"[0x%.2X Elements]\n",
|
"[Contains 0x%.2X Elements]\n",
|
||||||
source_desc->package.count));
|
source_desc->package.count));
|
||||||
|
|
||||||
/* Output the entire contents of the package */
|
/* Output the entire contents of the package */
|
||||||
|
@ -194,8 +198,47 @@ acpi_ex_do_debug_object(union acpi_operand_object *source_desc,
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
ACPI_DEBUG_PRINT_RAW((ACPI_DB_DEBUG_OBJECT, "\n"));
|
ACPI_DEBUG_PRINT_RAW((ACPI_DB_DEBUG_OBJECT, " "));
|
||||||
if (source_desc->reference.object) {
|
|
||||||
|
/* Check for valid node first, then valid object */
|
||||||
|
|
||||||
|
if (source_desc->reference.node) {
|
||||||
|
if (ACPI_GET_DESCRIPTOR_TYPE
|
||||||
|
(source_desc->reference.node) !=
|
||||||
|
ACPI_DESC_TYPE_NAMED) {
|
||||||
|
ACPI_DEBUG_PRINT_RAW((ACPI_DB_DEBUG_OBJECT,
|
||||||
|
" %p - Not a valid namespace node\n",
|
||||||
|
source_desc->reference.
|
||||||
|
node));
|
||||||
|
} else {
|
||||||
|
ACPI_DEBUG_PRINT_RAW((ACPI_DB_DEBUG_OBJECT,
|
||||||
|
"Node %p [%4.4s] ",
|
||||||
|
source_desc->reference.
|
||||||
|
node,
|
||||||
|
(source_desc->reference.
|
||||||
|
node)->name.ascii));
|
||||||
|
|
||||||
|
switch ((source_desc->reference.node)->type) {
|
||||||
|
|
||||||
|
/* These types have no attached object */
|
||||||
|
|
||||||
|
case ACPI_TYPE_DEVICE:
|
||||||
|
acpi_os_printf("Device\n");
|
||||||
|
break;
|
||||||
|
|
||||||
|
case ACPI_TYPE_THERMAL:
|
||||||
|
acpi_os_printf("Thermal Zone\n");
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
acpi_ex_do_debug_object((source_desc->
|
||||||
|
reference.
|
||||||
|
node)->object,
|
||||||
|
level + 4, 0);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else if (source_desc->reference.object) {
|
||||||
if (ACPI_GET_DESCRIPTOR_TYPE
|
if (ACPI_GET_DESCRIPTOR_TYPE
|
||||||
(source_desc->reference.object) ==
|
(source_desc->reference.object) ==
|
||||||
ACPI_DESC_TYPE_NAMED) {
|
ACPI_DESC_TYPE_NAMED) {
|
||||||
|
@ -208,28 +251,13 @@ acpi_ex_do_debug_object(union acpi_operand_object *source_desc,
|
||||||
acpi_ex_do_debug_object(source_desc->reference.
|
acpi_ex_do_debug_object(source_desc->reference.
|
||||||
object, level + 4, 0);
|
object, level + 4, 0);
|
||||||
}
|
}
|
||||||
} else if (source_desc->reference.node) {
|
|
||||||
if (ACPI_GET_DESCRIPTOR_TYPE
|
|
||||||
(source_desc->reference.node) !=
|
|
||||||
ACPI_DESC_TYPE_NAMED) {
|
|
||||||
ACPI_DEBUG_PRINT_RAW((ACPI_DB_DEBUG_OBJECT,
|
|
||||||
" %p - Not a valid namespace node\n",
|
|
||||||
source_desc->reference.
|
|
||||||
node));
|
|
||||||
} else {
|
|
||||||
acpi_ex_do_debug_object((source_desc->reference.
|
|
||||||
node)->object,
|
|
||||||
level + 4, 0);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
|
||||||
ACPI_DEBUG_PRINT_RAW((ACPI_DB_DEBUG_OBJECT, "%p %s\n",
|
ACPI_DEBUG_PRINT_RAW((ACPI_DB_DEBUG_OBJECT, "%p\n",
|
||||||
source_desc,
|
source_desc));
|
||||||
acpi_ut_get_object_type_name
|
|
||||||
(source_desc)));
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue