/******************************************************************************* * * FUNCTION: acpi_db_get_pointer * * PARAMETERS: target - Pointer to string to be converted * * RETURN: Converted pointer * * DESCRIPTION: Convert an ascii pointer value to a real value *
******************************************************************************/
/* The parameter is a name string that must be resolved to a Named obj */
node = acpi_db_local_ns_lookup(target); if (!node) { return;
}
dump_node: /* Now dump the NS node */
status = acpi_get_name(node, ACPI_FULL_PATHNAME_NO_TRAILING, &ret_buf); if (ACPI_FAILURE(status)) {
acpi_os_printf("Could not convert name to pathname\n");
}
/******************************************************************************* * * FUNCTION: acpi_db_display_method_info * * PARAMETERS: start_op - Root of the control method parse tree * * RETURN: None * * DESCRIPTION: Display information about the current method *
******************************************************************************/
walk_state = acpi_ds_get_current_walk_state(acpi_gbl_current_walk_list); if (!walk_state) {
acpi_os_printf("There is no method currently executing\n"); return;
}
walk_state = acpi_ds_get_current_walk_state(acpi_gbl_current_walk_list); if (!walk_state) {
acpi_os_printf("There is no method currently executing\n"); return;
}
acpi_db_decode_locals(walk_state);
}
/******************************************************************************* * * FUNCTION: acpi_db_display_arguments * * PARAMETERS: None * * RETURN: None * * DESCRIPTION: Display all arguments for the currently running control method *
******************************************************************************/
walk_state = acpi_ds_get_current_walk_state(acpi_gbl_current_walk_list); if (!walk_state) {
acpi_os_printf("There is no method currently executing\n"); return;
}
acpi_db_decode_arguments(walk_state);
}
/******************************************************************************* * * FUNCTION: acpi_db_display_results * * PARAMETERS: None * * RETURN: None * * DESCRIPTION: Display current contents of a method result stack *
******************************************************************************/
void acpi_db_display_results(void)
{
u32 i; struct acpi_walk_state *walk_state; union acpi_operand_object *obj_desc;
u32 result_count = 0; struct acpi_namespace_node *node; union acpi_generic_state *frame;
u32 index; /* Index onto current frame */
walk_state = acpi_ds_get_current_walk_state(acpi_gbl_current_walk_list); if (!walk_state) {
acpi_os_printf("There is no method currently executing\n"); return;
}
node = walk_state->method_node;
if (walk_state->results) {
result_count = walk_state->result_count;
}
acpi_os_printf("Method [%4.4s] has %X stacked result objects\n",
acpi_ut_get_node_name(node), result_count);
/* From the top element of result stack */
frame = walk_state->results;
index = (result_count - 1) % ACPI_RESULTS_FRAME_OBJ_NUM;
for (i = 0; i < result_count; i++) {
obj_desc = frame->results.obj_desc[index];
acpi_os_printf("Result%u: ", i);
acpi_db_display_internal_object(obj_desc, walk_state);
if (index == 0) {
frame = frame->results.next;
index = ACPI_RESULTS_FRAME_OBJ_NUM;
}
index--;
}
}
/******************************************************************************* * * FUNCTION: acpi_db_display_calling_tree * * PARAMETERS: None * * RETURN: None * * DESCRIPTION: Display current calling tree of nested control methods *
******************************************************************************/
walk_state = acpi_ds_get_current_walk_state(acpi_gbl_current_walk_list); if (!walk_state) {
acpi_os_printf("There is no method currently executing\n"); return;
}
acpi_os_printf("Current Control Method Call Tree\n");
while (walk_state) {
node = walk_state->method_node;
acpi_os_printf(" [%4.4s]\n", acpi_ut_get_node_name(node));
walk_state = walk_state->next;
}
}
/******************************************************************************* * * FUNCTION: acpi_db_display_object_type * * PARAMETERS: object_arg - User entered NS node handle * * RETURN: None * * DESCRIPTION: Display type of an arbitrary NS node *
******************************************************************************/
status = acpi_get_object_info(handle, &info); if (ACPI_FAILURE(status)) {
acpi_os_printf("Could not get object info, %s\n",
acpi_format_exception(status)); return;
}
if (info->valid & ACPI_VALID_HID) {
acpi_os_printf("HID: %s\n", info->hardware_id.string);
}
if (info->valid & ACPI_VALID_UID) {
acpi_os_printf("UID: %s\n", info->unique_id.string);
}
if (info->valid & ACPI_VALID_CID) { for (i = 0; i < info->compatible_id_list.count; i++) {
acpi_os_printf("CID %u: %s\n", i,
info->compatible_id_list.ids[i].string);
}
}
ACPI_FREE(info);
}
/******************************************************************************* * * FUNCTION: acpi_db_display_result_object * * PARAMETERS: obj_desc - Object to be displayed * walk_state - Current walk state * * RETURN: None * * DESCRIPTION: Display the result of an AML opcode * * Note: Currently only displays the result object if we are single stepping. * However, this output may be useful in other contexts and could be enabled * to do so if needed. *
******************************************************************************/
/******************************************************************************* * * FUNCTION: acpi_db_display_argument_object * * PARAMETERS: obj_desc - Object to be displayed * walk_state - Current walk state * * RETURN: None * * DESCRIPTION: Display the result of an AML opcode *
******************************************************************************/
gpe_xrupt_info = acpi_gbl_gpe_xrupt_list_head; while (gpe_xrupt_info) {
gpe_block = gpe_xrupt_info->gpe_block_list_head; while (gpe_block) {
status = acpi_get_name(gpe_block->node,
ACPI_FULL_PATHNAME_NO_TRAILING,
&ret_buf); if (ACPI_FAILURE(status)) {
acpi_os_printf
("Could not convert name to pathname\n");
}
/******************************************************************************* * * FUNCTION: acpi_db_display_handlers * * PARAMETERS: None * * RETURN: None * * DESCRIPTION: Display the currently installed global handlers *
******************************************************************************/
void acpi_db_display_handlers(void)
{ union acpi_operand_object *obj_desc; union acpi_operand_object *handler_obj;
acpi_adr_space_type space_id;
u32 i;
/* Operation region handlers */
acpi_os_printf("\nOperation Region Handlers at the namespace root:\n");
obj_desc = acpi_ns_get_attached_object(acpi_gbl_root_node); if (obj_desc) { for (i = 0; i < ACPI_ARRAY_LENGTH(acpi_gbl_space_id_list); i++) {
space_id = acpi_gbl_space_id_list[i];
/******************************************************************************* * * FUNCTION: acpi_db_display_non_root_handlers * * PARAMETERS: acpi_walk_callback * * RETURN: Status * * DESCRIPTION: Display information about all handlers installed for a * device object. *
******************************************************************************/
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.