/* Local prototypes */ staticvoid acpi_db_decode_node(struct acpi_namespace_node *node);
/******************************************************************************* * * FUNCTION: acpi_db_dump_method_info * * PARAMETERS: status - Method execution status * walk_state - Current state of the parse tree walk * * RETURN: None * * DESCRIPTION: Called when a method has been aborted because of an error. * Dumps the method execution stack, and the method locals/args, * and disassembles the AML opcode that failed. *
******************************************************************************/
/* There are no locals or arguments for the module-level code case */
if (node == acpi_gbl_root_node) { return;
}
/* Ignore control codes, they are not errors */
if (ACPI_CNTL_EXCEPTION(status)) { return;
}
/* We may be executing a deferred opcode */
if (walk_state->deferred_node) {
acpi_os_printf("Executing subtree for Buffer/Package/Region\n"); return;
}
/* * If there is no Thread, we are not actually executing a method. * This can happen when the iASL compiler calls the interpreter * to perform constant folding.
*/
thread = walk_state->thread; if (!thread) { return;
}
acpi_os_printf("(%u)", obj_desc->buffer.length); for (i = 0; (i < 8) && (i < obj_desc->buffer.length); i++) {
acpi_os_printf(" %2.2X", obj_desc->buffer.pointer[i]);
} break;
default:
acpi_os_printf(" %p", obj_desc); break;
}
}
/******************************************************************************* * * FUNCTION: acpi_db_decode_node * * PARAMETERS: node - Object to be displayed * * RETURN: None * * DESCRIPTION: Short display of a namespace node *
******************************************************************************/
/******************************************************************************* * * FUNCTION: acpi_db_display_internal_object * * PARAMETERS: obj_desc - Object to be displayed * walk_state - Current walk state * * RETURN: None * * DESCRIPTION: Short display of an internal object *
******************************************************************************/
acpi_os_printf("<Not a valid ACPI Object Descriptor> [%s]",
acpi_ut_get_descriptor_name(obj_desc)); break;
}
acpi_os_printf("\n");
}
/******************************************************************************* * * FUNCTION: acpi_db_decode_locals * * PARAMETERS: walk_state - State for current method * * RETURN: None * * DESCRIPTION: Display all locals for the currently running control method *
******************************************************************************/
/* There are no locals for the module-level code case */
if (node == acpi_gbl_root_node) { return;
}
if (!node) {
acpi_os_printf
("No method node (Executing subtree for buffer or opregion)\n"); return;
}
if (node->type != ACPI_TYPE_METHOD) {
acpi_os_printf("Executing subtree for Buffer/Package/Region\n"); return;
}
/* Are any locals actually set? */
for (i = 0; i < ACPI_METHOD_NUM_LOCALS; i++) {
obj_desc = walk_state->local_variables[i].object; if (obj_desc) {
display_locals = TRUE; break;
}
}
/* If any are set, only display the ones that are set */
if (display_locals) {
acpi_os_printf
("\nInitialized Local Variables for Method [%4.4s]:\n",
acpi_ut_get_node_name(node));
for (i = 0; i < ACPI_METHOD_NUM_LOCALS; i++) {
obj_desc = walk_state->local_variables[i].object; if (obj_desc) {
acpi_os_printf(" Local%X: ", i);
acpi_db_display_internal_object(obj_desc,
walk_state);
}
}
} else {
acpi_os_printf
("No Local Variables are initialized for Method [%4.4s]\n",
acpi_ut_get_node_name(node));
}
}
/******************************************************************************* * * FUNCTION: acpi_db_decode_arguments * * PARAMETERS: walk_state - State for current method * * RETURN: None * * DESCRIPTION: Display all arguments for the currently running control method *
******************************************************************************/
/* There are no arguments for the module-level code case */
if (node == acpi_gbl_root_node) { return;
}
if (!node) {
acpi_os_printf
("No method node (Executing subtree for buffer or opregion)\n"); return;
}
if (node->type != ACPI_TYPE_METHOD) {
acpi_os_printf("Executing subtree for Buffer/Package/Region\n"); return;
}
/* Are any arguments actually set? */
for (i = 0; i < ACPI_METHOD_NUM_ARGS; i++) {
obj_desc = walk_state->arguments[i].object; if (obj_desc) {
display_args = TRUE; break;
}
}
/* If any are set, only display the ones that are set */
if (display_args) {
acpi_os_printf("Initialized Arguments for Method [%4.4s]: " "(%X arguments defined for method invocation)\n",
acpi_ut_get_node_name(node),
node->object->method.param_count);
for (i = 0; i < ACPI_METHOD_NUM_ARGS; i++) {
obj_desc = walk_state->arguments[i].object; if (obj_desc) {
acpi_os_printf(" Arg%u: ", i);
acpi_db_display_internal_object(obj_desc,
walk_state);
}
}
} else {
acpi_os_printf
("No Arguments are initialized for method [%4.4s]\n",
acpi_ut_get_node_name(node));
}
}
Messung V0.5 in Prozent
¤ Dauer der Verarbeitung: 0.4 Sekunden
(vorverarbeitet am 2026-04-28)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.