Viewing file: acdebug.h (8.78 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
/****************************************************************************** * * Name: acdebug.h - ACPI/AML debugger * $Revision: 50 $ * *****************************************************************************/
/* * Copyright (C) 2000, 2001 R. Byron Moore * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
#ifndef __ACDEBUG_H__ #define __ACDEBUG_H__
#define DB_MAX_ARGS 8 /* Must be max method args + 1 */
#define DB_COMMAND_PROMPT '-' #define DB_EXECUTE_PROMPT '%'
extern int optind; extern NATIVE_CHAR *optarg; extern u8 *aml_start; extern u32 aml_length;
extern u8 acpi_gbl_db_opt_tables; extern u8 acpi_gbl_db_opt_disasm; extern u8 acpi_gbl_db_opt_stats; extern u8 acpi_gbl_db_opt_parse_jit; extern u8 acpi_gbl_db_opt_verbose; extern u8 acpi_gbl_db_opt_ini_methods;
extern NATIVE_CHAR *acpi_gbl_db_args[DB_MAX_ARGS]; extern NATIVE_CHAR acpi_gbl_db_line_buf[80]; extern NATIVE_CHAR acpi_gbl_db_scope_buf[40]; extern NATIVE_CHAR acpi_gbl_db_debug_filename[40]; extern u8 acpi_gbl_db_output_to_file; extern NATIVE_CHAR *acpi_gbl_db_buffer; extern NATIVE_CHAR *acpi_gbl_db_filename; extern NATIVE_CHAR *acpi_gbl_db_disasm_indent; extern u8 acpi_gbl_db_output_flags; extern u32 acpi_gbl_db_debug_level; extern u32 acpi_gbl_db_console_debug_level; extern acpi_table_header *acpi_gbl_db_table_ptr;
/* * Statistic globals */ extern u16 acpi_gbl_obj_type_count[INTERNAL_TYPE_NODE_MAX+1]; extern u16 acpi_gbl_node_type_count[INTERNAL_TYPE_NODE_MAX+1]; extern u16 acpi_gbl_obj_type_count_misc; extern u16 acpi_gbl_node_type_count_misc; extern u32 acpi_gbl_num_nodes; extern u32 acpi_gbl_num_objects;
extern u32 acpi_gbl_size_of_parse_tree; extern u32 acpi_gbl_size_of_method_trees; extern u32 acpi_gbl_size_of_node_entries; extern u32 acpi_gbl_size_of_acpi_objects;
#define ACPI_DEBUG_BUFFER_SIZE 4196
#define DB_REDIRECTABLE_OUTPUT 0x01 #define DB_CONSOLE_OUTPUT 0x02 #define DB_DUPLICATE_OUTPUT 0x03
typedef struct command_info { NATIVE_CHAR *name; /* Command Name */ u8 min_args; /* Minimum arguments required */
} COMMAND_INFO;
typedef struct argument_info { NATIVE_CHAR *name; /* Argument Name */
} ARGUMENT_INFO;
#define PARAM_LIST(pl) pl
#define DBTEST_OUTPUT_LEVEL(lvl) if (acpi_gbl_db_opt_verbose)
#define VERBOSE_PRINT(fp) DBTEST_OUTPUT_LEVEL(lvl) {\ acpi_os_printf PARAM_LIST(fp);}
#define EX_NO_SINGLE_STEP 1 #define EX_SINGLE_STEP 2
/* Prototypes */
/* * dbapi - external debugger interfaces */
int acpi_db_initialize ( void);
void acpi_db_terminate ( void);
acpi_status acpi_db_single_step ( acpi_walk_state *walk_state, acpi_parse_object *op, u32 op_type);
/* * dbcmds - debug commands and output routines */
void acpi_db_display_table_info ( NATIVE_CHAR *table_arg);
void acpi_db_unload_acpi_table ( NATIVE_CHAR *table_arg, NATIVE_CHAR *instance_arg);
void acpi_db_set_method_breakpoint ( NATIVE_CHAR *location, acpi_walk_state *walk_state, acpi_parse_object *op);
void acpi_db_set_method_call_breakpoint ( acpi_parse_object *op);
void acpi_db_disassemble_aml ( NATIVE_CHAR *statements, acpi_parse_object *op);
void acpi_db_dump_namespace ( NATIVE_CHAR *start_arg, NATIVE_CHAR *depth_arg);
void acpi_db_dump_namespace_by_owner ( NATIVE_CHAR *owner_arg, NATIVE_CHAR *depth_arg);
void acpi_db_send_notify ( NATIVE_CHAR *name, u32 value);
void acpi_db_set_method_data ( NATIVE_CHAR *type_arg, NATIVE_CHAR *index_arg, NATIVE_CHAR *value_arg);
acpi_status acpi_db_display_objects ( NATIVE_CHAR *obj_type_arg, NATIVE_CHAR *display_count_arg);
acpi_status acpi_db_find_name_in_namespace ( NATIVE_CHAR *name_arg);
void acpi_db_set_scope ( NATIVE_CHAR *name);
void acpi_db_find_references ( NATIVE_CHAR *object_arg);
void acpi_db_display_locks (void);
void acpi_db_display_resources ( NATIVE_CHAR *object_arg);
/* * dbdisasm - AML disassembler */
void acpi_db_display_op ( acpi_walk_state *walk_state, acpi_parse_object *origin, u32 num_opcodes);
void acpi_db_display_namestring ( NATIVE_CHAR *name);
void acpi_db_display_path ( acpi_parse_object *op);
void acpi_db_display_opcode ( acpi_walk_state *walk_state, acpi_parse_object *op);
void acpi_db_decode_internal_object ( acpi_operand_object *obj_desc);
/* * dbdisply - debug display commands */
void acpi_db_display_method_info ( acpi_parse_object *op);
void acpi_db_decode_and_display_object ( NATIVE_CHAR *target, NATIVE_CHAR *output_type);
void acpi_db_display_result_object ( acpi_operand_object *obj_desc, acpi_walk_state *walk_state);
acpi_status acpi_db_display_all_methods ( NATIVE_CHAR *display_count_arg);
void acpi_db_display_internal_object ( acpi_operand_object *obj_desc, acpi_walk_state *walk_state);
void acpi_db_display_arguments ( void);
void acpi_db_display_locals ( void);
void acpi_db_display_results ( void);
void acpi_db_display_calling_tree ( void);
void acpi_db_display_argument_object ( acpi_operand_object *obj_desc, acpi_walk_state *walk_state);
/* * dbexec - debugger control method execution */
void acpi_db_execute ( NATIVE_CHAR *name, NATIVE_CHAR **args, u32 flags);
void acpi_db_create_execution_threads ( NATIVE_CHAR *num_threads_arg, NATIVE_CHAR *num_loops_arg, NATIVE_CHAR *method_name_arg);
/* * dbfileio - Debugger file I/O commands */
acpi_object_type8 acpi_db_match_argument ( NATIVE_CHAR *user_argument, ARGUMENT_INFO *arguments);
void acpi_db_close_debug_file ( void);
void acpi_db_open_debug_file ( NATIVE_CHAR *name);
acpi_status acpi_db_load_acpi_table ( NATIVE_CHAR *filename);
/* * dbhistry - debugger HISTORY command */
void acpi_db_add_to_history ( NATIVE_CHAR *command_line);
void acpi_db_display_history (void);
NATIVE_CHAR * acpi_db_get_from_history ( NATIVE_CHAR *command_num_arg);
/* * dbinput - user front-end to the AML debugger */
acpi_status acpi_db_command_dispatch ( NATIVE_CHAR *input_buffer, acpi_walk_state *walk_state, acpi_parse_object *op);
void acpi_db_execute_thread ( void *context);
acpi_status acpi_db_user_commands ( NATIVE_CHAR prompt, acpi_parse_object *op);
/* * dbstats - Generation and display of ACPI table statistics */
void acpi_db_generate_statistics ( acpi_parse_object *root, u8 is_method);
acpi_status acpi_db_display_statistics ( NATIVE_CHAR *type_arg);
/* * dbutils - AML debugger utilities */
void acpi_db_set_output_destination ( u32 where);
void acpi_db_dump_buffer ( u32 address);
void acpi_db_dump_object ( acpi_object *obj_desc, u32 level);
void acpi_db_prep_namestring ( NATIVE_CHAR *name);
acpi_status acpi_db_second_pass_parse ( acpi_parse_object *root);
acpi_namespace_node * acpi_db_local_ns_lookup ( NATIVE_CHAR *name);
#endif /* __ACDEBUG_H__ */
|