^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) /* SPDX-License-Identifier: BSD-3-Clause OR GPL-2.0 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2) /******************************************************************************
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4) * Name: acdebug.h - ACPI/AML debugger
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5) *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6) * Copyright (C) 2000 - 2020, Intel Corp.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7) *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8) *****************************************************************************/
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) #ifndef __ACDEBUG_H__
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) #define __ACDEBUG_H__
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) /* The debugger is used in conjunction with the disassembler most of time */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) #ifdef ACPI_DISASSEMBLER
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) #include "acdisasm.h"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) #endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) #define ACPI_DEBUG_BUFFER_SIZE 0x4000 /* 16K buffer for return objects */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) #define ACPI_DEBUG_LENGTH_FORMAT " (%.4X bits, %.3X bytes)"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) struct acpi_db_command_info {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) const char *name; /* Command Name */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) u8 min_args; /* Minimum arguments required */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) struct acpi_db_command_help {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) u8 line_count; /* Number of help lines */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) char *invocation; /* Command Invocation */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) char *description; /* Command Description */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) struct acpi_db_argument_info {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) const char *name; /* Argument Name */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) struct acpi_db_execute_walk {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) u32 count;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) u32 max_count;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) char name_seg[ACPI_NAMESEG_SIZE + 1];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) #define PARAM_LIST(pl) pl
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) #define EX_NO_SINGLE_STEP 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46) #define EX_SINGLE_STEP 2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47) #define EX_ALL 4
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50) * dbxface - external debugger interfaces
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52) ACPI_DBR_DEPENDENT_RETURN_OK(acpi_status
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53) acpi_db_single_step(struct acpi_walk_state
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54) *walk_state,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55) union acpi_parse_object *op,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 56) u32 op_type))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 57) ACPI_DBR_DEPENDENT_RETURN_VOID(void
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 58) acpi_db_signal_break_point(struct
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 59) acpi_walk_state
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 60) *walk_state))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 61)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 62) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 63) * dbcmds - debug commands and output routines
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 64) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 65) struct acpi_namespace_node *acpi_db_convert_to_node(char *in_string);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 66)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 67) void acpi_db_display_table_info(char *table_arg);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 68)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 69) void acpi_db_display_template(char *buffer_arg);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 70)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 71) void acpi_db_unload_acpi_table(char *name);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 72)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 73) void acpi_db_send_notify(char *name, u32 value);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 74)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 75) void acpi_db_display_interfaces(char *action_arg, char *interface_name_arg);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 76)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 77) acpi_status acpi_db_sleep(char *object_arg);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 78)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 79) void acpi_db_trace(char *enable_arg, char *method_arg, char *once_arg);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 80)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 81) void acpi_db_display_locks(void);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 82)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 83) void acpi_db_display_resources(char *object_arg);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 84)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 85) ACPI_HW_DEPENDENT_RETURN_VOID(void acpi_db_display_gpes(void))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 86)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 87) void acpi_db_display_handlers(void);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 88)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 89) ACPI_HW_DEPENDENT_RETURN_VOID(void
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 90) acpi_db_generate_gpe(char *gpe_arg,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 91) char *block_arg))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 92) ACPI_HW_DEPENDENT_RETURN_VOID(void acpi_db_generate_sci(void))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 93)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 94) void acpi_db_execute_test(char *type_arg);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 95)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 96) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 97) * dbconvert - miscellaneous conversion routines
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 98) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 99) acpi_status acpi_db_hex_char_to_value(int hex_char, u8 *return_value);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 100)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 101) acpi_status acpi_db_convert_to_package(char *string, union acpi_object *object);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 102)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 103) acpi_status
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 104) acpi_db_convert_to_object(acpi_object_type type,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 105) char *string, union acpi_object *object);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 106)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 107) u8 *acpi_db_encode_pld_buffer(struct acpi_pld_info *pld_info);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 108)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 109) void acpi_db_dump_pld_buffer(union acpi_object *obj_desc);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 110)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 111) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 112) * dbmethod - control method commands
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 113) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 114) void
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 115) acpi_db_set_method_breakpoint(char *location,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 116) struct acpi_walk_state *walk_state,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 117) union acpi_parse_object *op);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 118)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 119) void acpi_db_set_method_call_breakpoint(union acpi_parse_object *op);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 120)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 121) void acpi_db_set_method_data(char *type_arg, char *index_arg, char *value_arg);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 122)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 123) acpi_status acpi_db_disassemble_method(char *name);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 124)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 125) void acpi_db_disassemble_aml(char *statements, union acpi_parse_object *op);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 126)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 127) void acpi_db_evaluate_predefined_names(void);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 128)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 129) void acpi_db_evaluate_all(char *name_seg);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 130)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 131) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 132) * dbnames - namespace commands
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 133) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 134) void acpi_db_set_scope(char *name);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 135)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 136) void acpi_db_dump_namespace(char *start_arg, char *depth_arg);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 137)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 138) void acpi_db_dump_namespace_paths(void);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 139)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 140) void acpi_db_dump_namespace_by_owner(char *owner_arg, char *depth_arg);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 141)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 142) acpi_status acpi_db_find_name_in_namespace(char *name_arg);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 143)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 144) void acpi_db_check_predefined_names(void);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 145)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 146) acpi_status
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 147) acpi_db_display_objects(char *obj_type_arg, char *display_count_arg);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 148)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 149) void acpi_db_check_integrity(void);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 150)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 151) void acpi_db_find_references(char *object_arg);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 152)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 153) void acpi_db_get_bus_info(void);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 154)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 155) acpi_status acpi_db_display_fields(u32 address_space_id);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 156)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 157) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 158) * dbdisply - debug display commands
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 159) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 160) void acpi_db_display_method_info(union acpi_parse_object *op);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 161)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 162) void acpi_db_decode_and_display_object(char *target, char *output_type);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 163)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 164) ACPI_DBR_DEPENDENT_RETURN_VOID(void
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 165) acpi_db_display_result_object(union
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 166) acpi_operand_object
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 167) *obj_desc,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 168) struct
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 169) acpi_walk_state
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 170) *walk_state))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 171)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 172) acpi_status acpi_db_display_all_methods(char *display_count_arg);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 173)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 174) void acpi_db_display_arguments(void);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 175)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 176) void acpi_db_display_locals(void);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 177)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 178) void acpi_db_display_results(void);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 179)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 180) void acpi_db_display_calling_tree(void);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 181)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 182) void acpi_db_display_object_type(char *object_arg);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 183)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 184) ACPI_DBR_DEPENDENT_RETURN_VOID(void
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 185) acpi_db_display_argument_object(union
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 186) acpi_operand_object
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 187) *obj_desc,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 188) struct
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 189) acpi_walk_state
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 190) *walk_state))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 191)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 192) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 193) * dbexec - debugger control method execution
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 194) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 195) void
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 196) acpi_db_execute(char *name, char **args, acpi_object_type *types, u32 flags);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 197)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 198) void
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 199) acpi_db_create_execution_thread(char *method_name_arg,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 200) char **arguments, acpi_object_type *types);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 201)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 202) void
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 203) acpi_db_create_execution_threads(char *num_threads_arg,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 204) char *num_loops_arg, char *method_name_arg);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 205)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 206) void acpi_db_delete_objects(u32 count, union acpi_object *objects);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 207)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 208) #ifdef ACPI_DBG_TRACK_ALLOCATIONS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 209) u32 acpi_db_get_cache_info(struct acpi_memory_list *cache);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 210) #endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 211)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 212) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 213) * dbfileio - Debugger file I/O commands
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 214) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 215) acpi_object_type
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 216) acpi_db_match_argument(char *user_argument,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 217) struct acpi_db_argument_info *arguments);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 218)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 219) void acpi_db_close_debug_file(void);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 220)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 221) void acpi_db_open_debug_file(char *name);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 222)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 223) acpi_status acpi_db_load_acpi_table(char *filename);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 224)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 225) acpi_status acpi_db_load_tables(struct acpi_new_table_desc *list_head);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 226)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 227) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 228) * dbhistry - debugger HISTORY command
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 229) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 230) void acpi_db_add_to_history(char *command_line);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 231)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 232) void acpi_db_display_history(void);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 233)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 234) char *acpi_db_get_from_history(char *command_num_arg);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 235)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 236) char *acpi_db_get_history_by_index(u32 commandd_num);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 237)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 238) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 239) * dbinput - user front-end to the AML debugger
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 240) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 241) acpi_status
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 242) acpi_db_command_dispatch(char *input_buffer,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 243) struct acpi_walk_state *walk_state,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 244) union acpi_parse_object *op);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 245)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 246) void ACPI_SYSTEM_XFACE acpi_db_execute_thread(void *context);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 247)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 248) acpi_status acpi_db_user_commands(void);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 249)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 250) char *acpi_db_get_next_token(char *string,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 251) char **next, acpi_object_type *return_type);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 252)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 253) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 254) * dbobject
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 255) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 256) void acpi_db_decode_internal_object(union acpi_operand_object *obj_desc);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 257)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 258) void
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 259) acpi_db_display_internal_object(union acpi_operand_object *obj_desc,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 260) struct acpi_walk_state *walk_state);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 261)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 262) void acpi_db_decode_arguments(struct acpi_walk_state *walk_state);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 263)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 264) void acpi_db_decode_locals(struct acpi_walk_state *walk_state);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 265)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 266) void
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 267) acpi_db_dump_method_info(acpi_status status,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 268) struct acpi_walk_state *walk_state);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 269)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 270) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 271) * dbstats - Generation and display of ACPI table statistics
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 272) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 273) void acpi_db_generate_statistics(union acpi_parse_object *root, u8 is_method);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 274)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 275) acpi_status acpi_db_display_statistics(char *type_arg);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 276)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 277) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 278) * dbutils - AML debugger utilities
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 279) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 280) void acpi_db_set_output_destination(u32 where);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 281)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 282) void acpi_db_dump_external_object(union acpi_object *obj_desc, u32 level);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 283)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 284) void acpi_db_prep_namestring(char *name);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 285)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 286) struct acpi_namespace_node *acpi_db_local_ns_lookup(char *name);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 287)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 288) void acpi_db_uint32_to_hex_string(u32 value, char *buffer);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 289)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 290) #endif /* __ACDEBUG_H__ */