Index: gdb/gdbarch.c |
diff --git a/gdb/gdbarch.c b/gdb/gdbarch.c |
index 1ada504ca75860a56765ea70d542faf79146f57d..f3d81a163c1ece92407adf8cbefcb3a61ff22fc8 100644 |
--- a/gdb/gdbarch.c |
+++ b/gdb/gdbarch.c |
@@ -49,6 +49,7 @@ |
#include "gdb_obstack.h" |
#include "observer.h" |
#include "regcache.h" |
+#include "objfiles.h" |
/* Static function declarations */ |
@@ -199,6 +200,7 @@ struct gdbarch |
gdbarch_address_to_pointer_ftype *address_to_pointer; |
gdbarch_integer_to_address_ftype *integer_to_address; |
gdbarch_return_value_ftype *return_value; |
+ gdbarch_return_in_first_hidden_param_p_ftype *return_in_first_hidden_param_p; |
gdbarch_skip_prologue_ftype *skip_prologue; |
gdbarch_skip_main_prologue_ftype *skip_main_prologue; |
gdbarch_inner_than_ftype *inner_than; |
@@ -239,6 +241,8 @@ struct gdbarch |
gdbarch_fetch_pointer_argument_ftype *fetch_pointer_argument; |
gdbarch_regset_from_core_section_ftype *regset_from_core_section; |
struct core_regset_section * core_regset_sections; |
+ gdbarch_make_corefile_notes_ftype *make_corefile_notes; |
+ gdbarch_find_memory_regions_ftype *find_memory_regions; |
gdbarch_core_xfer_shared_libraries_ftype *core_xfer_shared_libraries; |
gdbarch_core_pid_to_str_ftype *core_pid_to_str; |
const char * gcore_bfd_target; |
@@ -258,11 +262,20 @@ struct gdbarch |
int sofun_address_maybe_missing; |
gdbarch_process_record_ftype *process_record; |
gdbarch_process_record_signal_ftype *process_record_signal; |
- gdbarch_target_signal_from_host_ftype *target_signal_from_host; |
- gdbarch_target_signal_to_host_ftype *target_signal_to_host; |
+ gdbarch_gdb_signal_from_target_ftype *gdb_signal_from_target; |
gdbarch_get_siginfo_type_ftype *get_siginfo_type; |
gdbarch_record_special_symbol_ftype *record_special_symbol; |
gdbarch_get_syscall_number_ftype *get_syscall_number; |
+ const char * stap_integer_prefix; |
+ const char * stap_integer_suffix; |
+ const char * stap_register_prefix; |
+ const char * stap_register_suffix; |
+ const char * stap_register_indirection_prefix; |
+ const char * stap_register_indirection_suffix; |
+ const char * stap_gdb_register_prefix; |
+ const char * stap_gdb_register_suffix; |
+ gdbarch_stap_is_single_operand_ftype *stap_is_single_operand; |
+ gdbarch_stap_parse_special_token_ftype *stap_parse_special_token; |
int has_global_solist; |
int has_global_breakpoints; |
gdbarch_has_shared_address_space_ftype *has_shared_address_space; |
@@ -272,6 +285,8 @@ struct gdbarch |
const char * solib_symbols_extension; |
int has_dos_based_file_system; |
gdbarch_gen_return_address_ftype *gen_return_address; |
+ gdbarch_info_proc_ftype *info_proc; |
+ gdbarch_iterate_over_objfiles_in_search_order_ftype *iterate_over_objfiles_in_search_order; |
}; |
@@ -354,6 +369,7 @@ struct gdbarch startup_gdbarch = |
unsigned_address_to_pointer, /* address_to_pointer */ |
0, /* integer_to_address */ |
0, /* return_value */ |
+ default_return_in_first_hidden_param_p, /* return_in_first_hidden_param_p */ |
0, /* skip_prologue */ |
0, /* skip_main_prologue */ |
0, /* inner_than */ |
@@ -394,6 +410,8 @@ struct gdbarch startup_gdbarch = |
0, /* fetch_pointer_argument */ |
0, /* regset_from_core_section */ |
0, /* core_regset_sections */ |
+ 0, /* make_corefile_notes */ |
+ 0, /* find_memory_regions */ |
0, /* core_xfer_shared_libraries */ |
0, /* core_pid_to_str */ |
0, /* gcore_bfd_target */ |
@@ -413,11 +431,20 @@ struct gdbarch startup_gdbarch = |
0, /* sofun_address_maybe_missing */ |
0, /* process_record */ |
0, /* process_record_signal */ |
- default_target_signal_from_host, /* target_signal_from_host */ |
- default_target_signal_to_host, /* target_signal_to_host */ |
+ 0, /* gdb_signal_from_target */ |
0, /* get_siginfo_type */ |
0, /* record_special_symbol */ |
0, /* get_syscall_number */ |
+ 0, /* stap_integer_prefix */ |
+ 0, /* stap_integer_suffix */ |
+ 0, /* stap_register_prefix */ |
+ 0, /* stap_register_suffix */ |
+ 0, /* stap_register_indirection_prefix */ |
+ 0, /* stap_register_indirection_suffix */ |
+ 0, /* stap_gdb_register_prefix */ |
+ 0, /* stap_gdb_register_suffix */ |
+ 0, /* stap_is_single_operand */ |
+ 0, /* stap_parse_special_token */ |
0, /* has_global_solist */ |
0, /* has_global_breakpoints */ |
default_has_shared_address_space, /* has_shared_address_space */ |
@@ -427,6 +454,8 @@ struct gdbarch startup_gdbarch = |
0, /* solib_symbols_extension */ |
0, /* has_dos_based_file_system */ |
default_gen_return_address, /* gen_return_address */ |
+ 0, /* info_proc */ |
+ default_iterate_over_objfiles_in_search_order, /* iterate_over_objfiles_in_search_order */ |
/* startup_gdbarch() */ |
}; |
@@ -492,6 +521,7 @@ gdbarch_alloc (const struct gdbarch_info *info, |
gdbarch->value_from_register = default_value_from_register; |
gdbarch->pointer_to_address = unsigned_pointer_to_address; |
gdbarch->address_to_pointer = unsigned_address_to_pointer; |
+ gdbarch->return_in_first_hidden_param_p = default_return_in_first_hidden_param_p; |
gdbarch->remote_breakpoint_from_pc = default_remote_breakpoint_from_pc; |
gdbarch->memory_insert_breakpoint = default_memory_insert_breakpoint; |
gdbarch->memory_remove_breakpoint = default_memory_remove_breakpoint; |
@@ -512,13 +542,12 @@ gdbarch_alloc (const struct gdbarch_info *info, |
gdbarch->displaced_step_free_closure = NULL; |
gdbarch->displaced_step_location = NULL; |
gdbarch->relocate_instruction = NULL; |
- gdbarch->target_signal_from_host = default_target_signal_from_host; |
- gdbarch->target_signal_to_host = default_target_signal_to_host; |
gdbarch->has_shared_address_space = default_has_shared_address_space; |
gdbarch->fast_tracepoint_valid_at = default_fast_tracepoint_valid_at; |
gdbarch->auto_charset = default_auto_charset; |
gdbarch->auto_wide_charset = default_auto_wide_charset; |
gdbarch->gen_return_address = default_gen_return_address; |
+ gdbarch->iterate_over_objfiles_in_search_order = default_iterate_over_objfiles_in_search_order; |
/* gdbarch_alloc() */ |
return gdbarch; |
@@ -639,6 +668,7 @@ verify_gdbarch (struct gdbarch *gdbarch) |
/* Skip verify of address_to_pointer, invalid_p == 0 */ |
/* Skip verify of integer_to_address, has predicate. */ |
/* Skip verify of return_value, has predicate. */ |
+ /* Skip verify of return_in_first_hidden_param_p, invalid_p == 0 */ |
if (gdbarch->skip_prologue == 0) |
fprintf_unfiltered (log, "\n\tskip_prologue"); |
/* Skip verify of skip_main_prologue, has predicate. */ |
@@ -681,6 +711,8 @@ verify_gdbarch (struct gdbarch *gdbarch) |
/* Skip verify of register_reggroup_p, invalid_p == 0 */ |
/* Skip verify of fetch_pointer_argument, has predicate. */ |
/* Skip verify of regset_from_core_section, has predicate. */ |
+ /* Skip verify of make_corefile_notes, has predicate. */ |
+ /* Skip verify of find_memory_regions, has predicate. */ |
/* Skip verify of core_xfer_shared_libraries, has predicate. */ |
/* Skip verify of core_pid_to_str, has predicate. */ |
/* Skip verify of gcore_bfd_target, has predicate. */ |
@@ -702,11 +734,20 @@ verify_gdbarch (struct gdbarch *gdbarch) |
/* Skip verify of sofun_address_maybe_missing, invalid_p == 0 */ |
/* Skip verify of process_record, has predicate. */ |
/* Skip verify of process_record_signal, has predicate. */ |
- /* Skip verify of target_signal_from_host, invalid_p == 0 */ |
- /* Skip verify of target_signal_to_host, invalid_p == 0 */ |
+ /* Skip verify of gdb_signal_from_target, has predicate. */ |
/* Skip verify of get_siginfo_type, has predicate. */ |
/* Skip verify of record_special_symbol, has predicate. */ |
/* Skip verify of get_syscall_number, has predicate. */ |
+ /* Skip verify of stap_integer_prefix, invalid_p == 0 */ |
+ /* Skip verify of stap_integer_suffix, invalid_p == 0 */ |
+ /* Skip verify of stap_register_prefix, invalid_p == 0 */ |
+ /* Skip verify of stap_register_suffix, invalid_p == 0 */ |
+ /* Skip verify of stap_register_indirection_prefix, invalid_p == 0 */ |
+ /* Skip verify of stap_register_indirection_suffix, invalid_p == 0 */ |
+ /* Skip verify of stap_gdb_register_prefix, invalid_p == 0 */ |
+ /* Skip verify of stap_gdb_register_suffix, invalid_p == 0 */ |
+ /* Skip verify of stap_is_single_operand, has predicate. */ |
+ /* Skip verify of stap_parse_special_token, has predicate. */ |
/* Skip verify of has_global_solist, invalid_p == 0 */ |
/* Skip verify of has_global_breakpoints, invalid_p == 0 */ |
/* Skip verify of has_shared_address_space, invalid_p == 0 */ |
@@ -715,6 +756,8 @@ verify_gdbarch (struct gdbarch *gdbarch) |
/* Skip verify of auto_wide_charset, invalid_p == 0 */ |
/* Skip verify of has_dos_based_file_system, invalid_p == 0 */ |
/* Skip verify of gen_return_address, invalid_p == 0 */ |
+ /* Skip verify of info_proc, has predicate. */ |
+ /* Skip verify of iterate_over_objfiles_in_search_order, invalid_p == 0 */ |
buf = ui_file_xstrdup (log, &length); |
make_cleanup (xfree, buf); |
if (length > 0) |
@@ -922,6 +965,12 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file) |
"gdbarch_dump: fetch_tls_load_module_address = <%s>\n", |
host_address_to_string (gdbarch->fetch_tls_load_module_address)); |
fprintf_unfiltered (file, |
+ "gdbarch_dump: gdbarch_find_memory_regions_p() = %d\n", |
+ gdbarch_find_memory_regions_p (gdbarch)); |
+ fprintf_unfiltered (file, |
+ "gdbarch_dump: find_memory_regions = <%s>\n", |
+ host_address_to_string (gdbarch->find_memory_regions)); |
+ fprintf_unfiltered (file, |
"gdbarch_dump: float_bit = %s\n", |
plongest (gdbarch->float_bit)); |
fprintf_unfiltered (file, |
@@ -955,6 +1004,12 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file) |
"gdbarch_dump: gcore_bfd_target = %s\n", |
pstring (gdbarch->gcore_bfd_target)); |
fprintf_unfiltered (file, |
+ "gdbarch_dump: gdbarch_gdb_signal_from_target_p() = %d\n", |
+ gdbarch_gdb_signal_from_target_p (gdbarch)); |
+ fprintf_unfiltered (file, |
+ "gdbarch_dump: gdb_signal_from_target = <%s>\n", |
+ host_address_to_string (gdbarch->gdb_signal_from_target)); |
+ fprintf_unfiltered (file, |
"gdbarch_dump: gen_return_address = <%s>\n", |
host_address_to_string (gdbarch->gen_return_address)); |
fprintf_unfiltered (file, |
@@ -1003,6 +1058,12 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file) |
"gdbarch_dump: in_solib_return_trampoline = <%s>\n", |
host_address_to_string (gdbarch->in_solib_return_trampoline)); |
fprintf_unfiltered (file, |
+ "gdbarch_dump: gdbarch_info_proc_p() = %d\n", |
+ gdbarch_info_proc_p (gdbarch)); |
+ fprintf_unfiltered (file, |
+ "gdbarch_dump: info_proc = <%s>\n", |
+ host_address_to_string (gdbarch->info_proc)); |
+ fprintf_unfiltered (file, |
"gdbarch_dump: inner_than = <%s>\n", |
host_address_to_string (gdbarch->inner_than)); |
fprintf_unfiltered (file, |
@@ -1015,6 +1076,9 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file) |
"gdbarch_dump: integer_to_address = <%s>\n", |
host_address_to_string (gdbarch->integer_to_address)); |
fprintf_unfiltered (file, |
+ "gdbarch_dump: iterate_over_objfiles_in_search_order = <%s>\n", |
+ host_address_to_string (gdbarch->iterate_over_objfiles_in_search_order)); |
+ fprintf_unfiltered (file, |
"gdbarch_dump: long_bit = %s\n", |
plongest (gdbarch->long_bit)); |
fprintf_unfiltered (file, |
@@ -1030,6 +1094,12 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file) |
"gdbarch_dump: long_long_bit = %s\n", |
plongest (gdbarch->long_long_bit)); |
fprintf_unfiltered (file, |
+ "gdbarch_dump: gdbarch_make_corefile_notes_p() = %d\n", |
+ gdbarch_make_corefile_notes_p (gdbarch)); |
+ fprintf_unfiltered (file, |
+ "gdbarch_dump: make_corefile_notes = <%s>\n", |
+ host_address_to_string (gdbarch->make_corefile_notes)); |
+ fprintf_unfiltered (file, |
"gdbarch_dump: gdbarch_max_insn_length_p() = %d\n", |
gdbarch_max_insn_length_p (gdbarch)); |
fprintf_unfiltered (file, |
@@ -1177,6 +1247,9 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file) |
"gdbarch_dump: remote_register_number = <%s>\n", |
host_address_to_string (gdbarch->remote_register_number)); |
fprintf_unfiltered (file, |
+ "gdbarch_dump: return_in_first_hidden_param_p = <%s>\n", |
+ host_address_to_string (gdbarch->return_in_first_hidden_param_p)); |
+ fprintf_unfiltered (file, |
"gdbarch_dump: gdbarch_return_value_p() = %d\n", |
gdbarch_return_value_p (gdbarch)); |
fprintf_unfiltered (file, |
@@ -1240,6 +1313,42 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file) |
"gdbarch_dump: stabs_argument_has_addr = <%s>\n", |
host_address_to_string (gdbarch->stabs_argument_has_addr)); |
fprintf_unfiltered (file, |
+ "gdbarch_dump: stap_gdb_register_prefix = %s\n", |
+ gdbarch->stap_gdb_register_prefix); |
+ fprintf_unfiltered (file, |
+ "gdbarch_dump: stap_gdb_register_suffix = %s\n", |
+ gdbarch->stap_gdb_register_suffix); |
+ fprintf_unfiltered (file, |
+ "gdbarch_dump: stap_integer_prefix = %s\n", |
+ gdbarch->stap_integer_prefix); |
+ fprintf_unfiltered (file, |
+ "gdbarch_dump: stap_integer_suffix = %s\n", |
+ gdbarch->stap_integer_suffix); |
+ fprintf_unfiltered (file, |
+ "gdbarch_dump: gdbarch_stap_is_single_operand_p() = %d\n", |
+ gdbarch_stap_is_single_operand_p (gdbarch)); |
+ fprintf_unfiltered (file, |
+ "gdbarch_dump: stap_is_single_operand = <%s>\n", |
+ host_address_to_string (gdbarch->stap_is_single_operand)); |
+ fprintf_unfiltered (file, |
+ "gdbarch_dump: gdbarch_stap_parse_special_token_p() = %d\n", |
+ gdbarch_stap_parse_special_token_p (gdbarch)); |
+ fprintf_unfiltered (file, |
+ "gdbarch_dump: stap_parse_special_token = <%s>\n", |
+ host_address_to_string (gdbarch->stap_parse_special_token)); |
+ fprintf_unfiltered (file, |
+ "gdbarch_dump: stap_register_indirection_prefix = %s\n", |
+ gdbarch->stap_register_indirection_prefix); |
+ fprintf_unfiltered (file, |
+ "gdbarch_dump: stap_register_indirection_suffix = %s\n", |
+ gdbarch->stap_register_indirection_suffix); |
+ fprintf_unfiltered (file, |
+ "gdbarch_dump: stap_register_prefix = %s\n", |
+ gdbarch->stap_register_prefix); |
+ fprintf_unfiltered (file, |
+ "gdbarch_dump: stap_register_suffix = %s\n", |
+ gdbarch->stap_register_suffix); |
+ fprintf_unfiltered (file, |
"gdbarch_dump: gdbarch_static_transform_name_p() = %d\n", |
gdbarch_static_transform_name_p (gdbarch)); |
fprintf_unfiltered (file, |
@@ -1249,12 +1358,6 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file) |
"gdbarch_dump: target_desc = %s\n", |
host_address_to_string (gdbarch->target_desc)); |
fprintf_unfiltered (file, |
- "gdbarch_dump: target_signal_from_host = <%s>\n", |
- host_address_to_string (gdbarch->target_signal_from_host)); |
- fprintf_unfiltered (file, |
- "gdbarch_dump: target_signal_to_host = <%s>\n", |
- host_address_to_string (gdbarch->target_signal_to_host)); |
- fprintf_unfiltered (file, |
"gdbarch_dump: gdbarch_unwind_pc_p() = %d\n", |
gdbarch_unwind_pc_p (gdbarch)); |
fprintf_unfiltered (file, |
@@ -2443,13 +2546,13 @@ gdbarch_return_value_p (struct gdbarch *gdbarch) |
} |
enum return_value_convention |
-gdbarch_return_value (struct gdbarch *gdbarch, struct type *functype, struct type *valtype, struct regcache *regcache, gdb_byte *readbuf, const gdb_byte *writebuf) |
+gdbarch_return_value (struct gdbarch *gdbarch, struct value *function, struct type *valtype, struct regcache *regcache, gdb_byte *readbuf, const gdb_byte *writebuf) |
{ |
gdb_assert (gdbarch != NULL); |
gdb_assert (gdbarch->return_value != NULL); |
if (gdbarch_debug >= 2) |
fprintf_unfiltered (gdb_stdlog, "gdbarch_return_value called\n"); |
- return gdbarch->return_value (gdbarch, functype, valtype, regcache, readbuf, writebuf); |
+ return gdbarch->return_value (gdbarch, function, valtype, regcache, readbuf, writebuf); |
} |
void |
@@ -2459,6 +2562,23 @@ set_gdbarch_return_value (struct gdbarch *gdbarch, |
gdbarch->return_value = return_value; |
} |
+int |
+gdbarch_return_in_first_hidden_param_p (struct gdbarch *gdbarch, struct type *type) |
+{ |
+ gdb_assert (gdbarch != NULL); |
+ gdb_assert (gdbarch->return_in_first_hidden_param_p != NULL); |
+ if (gdbarch_debug >= 2) |
+ fprintf_unfiltered (gdb_stdlog, "gdbarch_return_in_first_hidden_param_p called\n"); |
+ return gdbarch->return_in_first_hidden_param_p (gdbarch, type); |
+} |
+ |
+void |
+set_gdbarch_return_in_first_hidden_param_p (struct gdbarch *gdbarch, |
+ gdbarch_return_in_first_hidden_param_p_ftype return_in_first_hidden_param_p) |
+{ |
+ gdbarch->return_in_first_hidden_param_p = return_in_first_hidden_param_p; |
+} |
+ |
CORE_ADDR |
gdbarch_skip_prologue (struct gdbarch *gdbarch, CORE_ADDR ip) |
{ |
@@ -2981,7 +3101,7 @@ set_gdbarch_skip_solib_resolver (struct gdbarch *gdbarch, |
} |
int |
-gdbarch_in_solib_return_trampoline (struct gdbarch *gdbarch, CORE_ADDR pc, char *name) |
+gdbarch_in_solib_return_trampoline (struct gdbarch *gdbarch, CORE_ADDR pc, const char *name) |
{ |
gdb_assert (gdbarch != NULL); |
gdb_assert (gdbarch->in_solib_return_trampoline != NULL); |
@@ -3236,6 +3356,54 @@ set_gdbarch_core_regset_sections (struct gdbarch *gdbarch, |
} |
int |
+gdbarch_make_corefile_notes_p (struct gdbarch *gdbarch) |
+{ |
+ gdb_assert (gdbarch != NULL); |
+ return gdbarch->make_corefile_notes != NULL; |
+} |
+ |
+char * |
+gdbarch_make_corefile_notes (struct gdbarch *gdbarch, bfd *obfd, int *note_size) |
+{ |
+ gdb_assert (gdbarch != NULL); |
+ gdb_assert (gdbarch->make_corefile_notes != NULL); |
+ if (gdbarch_debug >= 2) |
+ fprintf_unfiltered (gdb_stdlog, "gdbarch_make_corefile_notes called\n"); |
+ return gdbarch->make_corefile_notes (gdbarch, obfd, note_size); |
+} |
+ |
+void |
+set_gdbarch_make_corefile_notes (struct gdbarch *gdbarch, |
+ gdbarch_make_corefile_notes_ftype make_corefile_notes) |
+{ |
+ gdbarch->make_corefile_notes = make_corefile_notes; |
+} |
+ |
+int |
+gdbarch_find_memory_regions_p (struct gdbarch *gdbarch) |
+{ |
+ gdb_assert (gdbarch != NULL); |
+ return gdbarch->find_memory_regions != NULL; |
+} |
+ |
+int |
+gdbarch_find_memory_regions (struct gdbarch *gdbarch, find_memory_region_ftype func, void *data) |
+{ |
+ gdb_assert (gdbarch != NULL); |
+ gdb_assert (gdbarch->find_memory_regions != NULL); |
+ if (gdbarch_debug >= 2) |
+ fprintf_unfiltered (gdb_stdlog, "gdbarch_find_memory_regions called\n"); |
+ return gdbarch->find_memory_regions (gdbarch, func, data); |
+} |
+ |
+void |
+set_gdbarch_find_memory_regions (struct gdbarch *gdbarch, |
+ gdbarch_find_memory_regions_ftype find_memory_regions) |
+{ |
+ gdbarch->find_memory_regions = find_memory_regions; |
+} |
+ |
+int |
gdbarch_core_xfer_shared_libraries_p (struct gdbarch *gdbarch) |
{ |
gdb_assert (gdbarch != NULL); |
@@ -3571,8 +3739,8 @@ gdbarch_static_transform_name_p (struct gdbarch *gdbarch) |
return gdbarch->static_transform_name != NULL; |
} |
-char * |
-gdbarch_static_transform_name (struct gdbarch *gdbarch, char *name) |
+const char * |
+gdbarch_static_transform_name (struct gdbarch *gdbarch, const char *name) |
{ |
gdb_assert (gdbarch != NULL); |
gdb_assert (gdbarch->static_transform_name != NULL); |
@@ -3637,7 +3805,7 @@ gdbarch_process_record_signal_p (struct gdbarch *gdbarch) |
} |
int |
-gdbarch_process_record_signal (struct gdbarch *gdbarch, struct regcache *regcache, enum target_signal signal) |
+gdbarch_process_record_signal (struct gdbarch *gdbarch, struct regcache *regcache, enum gdb_signal signal) |
{ |
gdb_assert (gdbarch != NULL); |
gdb_assert (gdbarch->process_record_signal != NULL); |
@@ -3653,38 +3821,28 @@ set_gdbarch_process_record_signal (struct gdbarch *gdbarch, |
gdbarch->process_record_signal = process_record_signal; |
} |
-enum target_signal |
-gdbarch_target_signal_from_host (struct gdbarch *gdbarch, int signo) |
+int |
+gdbarch_gdb_signal_from_target_p (struct gdbarch *gdbarch) |
{ |
gdb_assert (gdbarch != NULL); |
- gdb_assert (gdbarch->target_signal_from_host != NULL); |
- if (gdbarch_debug >= 2) |
- fprintf_unfiltered (gdb_stdlog, "gdbarch_target_signal_from_host called\n"); |
- return gdbarch->target_signal_from_host (gdbarch, signo); |
+ return gdbarch->gdb_signal_from_target != NULL; |
} |
-void |
-set_gdbarch_target_signal_from_host (struct gdbarch *gdbarch, |
- gdbarch_target_signal_from_host_ftype target_signal_from_host) |
-{ |
- gdbarch->target_signal_from_host = target_signal_from_host; |
-} |
- |
-int |
-gdbarch_target_signal_to_host (struct gdbarch *gdbarch, enum target_signal ts) |
+enum gdb_signal |
+gdbarch_gdb_signal_from_target (struct gdbarch *gdbarch, int signo) |
{ |
gdb_assert (gdbarch != NULL); |
- gdb_assert (gdbarch->target_signal_to_host != NULL); |
+ gdb_assert (gdbarch->gdb_signal_from_target != NULL); |
if (gdbarch_debug >= 2) |
- fprintf_unfiltered (gdb_stdlog, "gdbarch_target_signal_to_host called\n"); |
- return gdbarch->target_signal_to_host (gdbarch, ts); |
+ fprintf_unfiltered (gdb_stdlog, "gdbarch_gdb_signal_from_target called\n"); |
+ return gdbarch->gdb_signal_from_target (gdbarch, signo); |
} |
void |
-set_gdbarch_target_signal_to_host (struct gdbarch *gdbarch, |
- gdbarch_target_signal_to_host_ftype target_signal_to_host) |
+set_gdbarch_gdb_signal_from_target (struct gdbarch *gdbarch, |
+ gdbarch_gdb_signal_from_target_ftype gdb_signal_from_target) |
{ |
- gdbarch->target_signal_to_host = target_signal_to_host; |
+ gdbarch->gdb_signal_from_target = gdb_signal_from_target; |
} |
int |
@@ -3759,6 +3917,190 @@ set_gdbarch_get_syscall_number (struct gdbarch *gdbarch, |
gdbarch->get_syscall_number = get_syscall_number; |
} |
+const char * |
+gdbarch_stap_integer_prefix (struct gdbarch *gdbarch) |
+{ |
+ gdb_assert (gdbarch != NULL); |
+ /* Skip verify of stap_integer_prefix, invalid_p == 0 */ |
+ if (gdbarch_debug >= 2) |
+ fprintf_unfiltered (gdb_stdlog, "gdbarch_stap_integer_prefix called\n"); |
+ return gdbarch->stap_integer_prefix; |
+} |
+ |
+void |
+set_gdbarch_stap_integer_prefix (struct gdbarch *gdbarch, |
+ const char * stap_integer_prefix) |
+{ |
+ gdbarch->stap_integer_prefix = stap_integer_prefix; |
+} |
+ |
+const char * |
+gdbarch_stap_integer_suffix (struct gdbarch *gdbarch) |
+{ |
+ gdb_assert (gdbarch != NULL); |
+ /* Skip verify of stap_integer_suffix, invalid_p == 0 */ |
+ if (gdbarch_debug >= 2) |
+ fprintf_unfiltered (gdb_stdlog, "gdbarch_stap_integer_suffix called\n"); |
+ return gdbarch->stap_integer_suffix; |
+} |
+ |
+void |
+set_gdbarch_stap_integer_suffix (struct gdbarch *gdbarch, |
+ const char * stap_integer_suffix) |
+{ |
+ gdbarch->stap_integer_suffix = stap_integer_suffix; |
+} |
+ |
+const char * |
+gdbarch_stap_register_prefix (struct gdbarch *gdbarch) |
+{ |
+ gdb_assert (gdbarch != NULL); |
+ /* Skip verify of stap_register_prefix, invalid_p == 0 */ |
+ if (gdbarch_debug >= 2) |
+ fprintf_unfiltered (gdb_stdlog, "gdbarch_stap_register_prefix called\n"); |
+ return gdbarch->stap_register_prefix; |
+} |
+ |
+void |
+set_gdbarch_stap_register_prefix (struct gdbarch *gdbarch, |
+ const char * stap_register_prefix) |
+{ |
+ gdbarch->stap_register_prefix = stap_register_prefix; |
+} |
+ |
+const char * |
+gdbarch_stap_register_suffix (struct gdbarch *gdbarch) |
+{ |
+ gdb_assert (gdbarch != NULL); |
+ /* Skip verify of stap_register_suffix, invalid_p == 0 */ |
+ if (gdbarch_debug >= 2) |
+ fprintf_unfiltered (gdb_stdlog, "gdbarch_stap_register_suffix called\n"); |
+ return gdbarch->stap_register_suffix; |
+} |
+ |
+void |
+set_gdbarch_stap_register_suffix (struct gdbarch *gdbarch, |
+ const char * stap_register_suffix) |
+{ |
+ gdbarch->stap_register_suffix = stap_register_suffix; |
+} |
+ |
+const char * |
+gdbarch_stap_register_indirection_prefix (struct gdbarch *gdbarch) |
+{ |
+ gdb_assert (gdbarch != NULL); |
+ /* Skip verify of stap_register_indirection_prefix, invalid_p == 0 */ |
+ if (gdbarch_debug >= 2) |
+ fprintf_unfiltered (gdb_stdlog, "gdbarch_stap_register_indirection_prefix called\n"); |
+ return gdbarch->stap_register_indirection_prefix; |
+} |
+ |
+void |
+set_gdbarch_stap_register_indirection_prefix (struct gdbarch *gdbarch, |
+ const char * stap_register_indirection_prefix) |
+{ |
+ gdbarch->stap_register_indirection_prefix = stap_register_indirection_prefix; |
+} |
+ |
+const char * |
+gdbarch_stap_register_indirection_suffix (struct gdbarch *gdbarch) |
+{ |
+ gdb_assert (gdbarch != NULL); |
+ /* Skip verify of stap_register_indirection_suffix, invalid_p == 0 */ |
+ if (gdbarch_debug >= 2) |
+ fprintf_unfiltered (gdb_stdlog, "gdbarch_stap_register_indirection_suffix called\n"); |
+ return gdbarch->stap_register_indirection_suffix; |
+} |
+ |
+void |
+set_gdbarch_stap_register_indirection_suffix (struct gdbarch *gdbarch, |
+ const char * stap_register_indirection_suffix) |
+{ |
+ gdbarch->stap_register_indirection_suffix = stap_register_indirection_suffix; |
+} |
+ |
+const char * |
+gdbarch_stap_gdb_register_prefix (struct gdbarch *gdbarch) |
+{ |
+ gdb_assert (gdbarch != NULL); |
+ /* Skip verify of stap_gdb_register_prefix, invalid_p == 0 */ |
+ if (gdbarch_debug >= 2) |
+ fprintf_unfiltered (gdb_stdlog, "gdbarch_stap_gdb_register_prefix called\n"); |
+ return gdbarch->stap_gdb_register_prefix; |
+} |
+ |
+void |
+set_gdbarch_stap_gdb_register_prefix (struct gdbarch *gdbarch, |
+ const char * stap_gdb_register_prefix) |
+{ |
+ gdbarch->stap_gdb_register_prefix = stap_gdb_register_prefix; |
+} |
+ |
+const char * |
+gdbarch_stap_gdb_register_suffix (struct gdbarch *gdbarch) |
+{ |
+ gdb_assert (gdbarch != NULL); |
+ /* Skip verify of stap_gdb_register_suffix, invalid_p == 0 */ |
+ if (gdbarch_debug >= 2) |
+ fprintf_unfiltered (gdb_stdlog, "gdbarch_stap_gdb_register_suffix called\n"); |
+ return gdbarch->stap_gdb_register_suffix; |
+} |
+ |
+void |
+set_gdbarch_stap_gdb_register_suffix (struct gdbarch *gdbarch, |
+ const char * stap_gdb_register_suffix) |
+{ |
+ gdbarch->stap_gdb_register_suffix = stap_gdb_register_suffix; |
+} |
+ |
+int |
+gdbarch_stap_is_single_operand_p (struct gdbarch *gdbarch) |
+{ |
+ gdb_assert (gdbarch != NULL); |
+ return gdbarch->stap_is_single_operand != NULL; |
+} |
+ |
+int |
+gdbarch_stap_is_single_operand (struct gdbarch *gdbarch, const char *s) |
+{ |
+ gdb_assert (gdbarch != NULL); |
+ gdb_assert (gdbarch->stap_is_single_operand != NULL); |
+ if (gdbarch_debug >= 2) |
+ fprintf_unfiltered (gdb_stdlog, "gdbarch_stap_is_single_operand called\n"); |
+ return gdbarch->stap_is_single_operand (gdbarch, s); |
+} |
+ |
+void |
+set_gdbarch_stap_is_single_operand (struct gdbarch *gdbarch, |
+ gdbarch_stap_is_single_operand_ftype stap_is_single_operand) |
+{ |
+ gdbarch->stap_is_single_operand = stap_is_single_operand; |
+} |
+ |
+int |
+gdbarch_stap_parse_special_token_p (struct gdbarch *gdbarch) |
+{ |
+ gdb_assert (gdbarch != NULL); |
+ return gdbarch->stap_parse_special_token != NULL; |
+} |
+ |
+int |
+gdbarch_stap_parse_special_token (struct gdbarch *gdbarch, struct stap_parse_info *p) |
+{ |
+ gdb_assert (gdbarch != NULL); |
+ gdb_assert (gdbarch->stap_parse_special_token != NULL); |
+ if (gdbarch_debug >= 2) |
+ fprintf_unfiltered (gdb_stdlog, "gdbarch_stap_parse_special_token called\n"); |
+ return gdbarch->stap_parse_special_token (gdbarch, p); |
+} |
+ |
+void |
+set_gdbarch_stap_parse_special_token (struct gdbarch *gdbarch, |
+ gdbarch_stap_parse_special_token_ftype stap_parse_special_token) |
+{ |
+ gdbarch->stap_parse_special_token = stap_parse_special_token; |
+} |
+ |
int |
gdbarch_has_global_solist (struct gdbarch *gdbarch) |
{ |
@@ -3911,6 +4253,47 @@ set_gdbarch_gen_return_address (struct gdbarch *gdbarch, |
gdbarch->gen_return_address = gen_return_address; |
} |
+int |
+gdbarch_info_proc_p (struct gdbarch *gdbarch) |
+{ |
+ gdb_assert (gdbarch != NULL); |
+ return gdbarch->info_proc != NULL; |
+} |
+ |
+void |
+gdbarch_info_proc (struct gdbarch *gdbarch, char *args, enum info_proc_what what) |
+{ |
+ gdb_assert (gdbarch != NULL); |
+ gdb_assert (gdbarch->info_proc != NULL); |
+ if (gdbarch_debug >= 2) |
+ fprintf_unfiltered (gdb_stdlog, "gdbarch_info_proc called\n"); |
+ gdbarch->info_proc (gdbarch, args, what); |
+} |
+ |
+void |
+set_gdbarch_info_proc (struct gdbarch *gdbarch, |
+ gdbarch_info_proc_ftype info_proc) |
+{ |
+ gdbarch->info_proc = info_proc; |
+} |
+ |
+void |
+gdbarch_iterate_over_objfiles_in_search_order (struct gdbarch *gdbarch, iterate_over_objfiles_in_search_order_cb_ftype *cb, void *cb_data, struct objfile *current_objfile) |
+{ |
+ gdb_assert (gdbarch != NULL); |
+ gdb_assert (gdbarch->iterate_over_objfiles_in_search_order != NULL); |
+ if (gdbarch_debug >= 2) |
+ fprintf_unfiltered (gdb_stdlog, "gdbarch_iterate_over_objfiles_in_search_order called\n"); |
+ gdbarch->iterate_over_objfiles_in_search_order (gdbarch, cb, cb_data, current_objfile); |
+} |
+ |
+void |
+set_gdbarch_iterate_over_objfiles_in_search_order (struct gdbarch *gdbarch, |
+ gdbarch_iterate_over_objfiles_in_search_order_ftype iterate_over_objfiles_in_search_order) |
+{ |
+ gdbarch->iterate_over_objfiles_in_search_order = iterate_over_objfiles_in_search_order; |
+} |
+ |
/* Keep a registry of per-architecture data-pointers required by GDB |
modules. */ |