gdb: move displaced stepping logic to gdbarch, allow starting concurrent displaced...
[deliverable/binutils-gdb.git] / gdb / gdbarch.c
1 /* *INDENT-OFF* */ /* THIS FILE IS GENERATED -*- buffer-read-only: t -*- */
2 /* vi:set ro: */
3
4 /* Dynamic architecture support for GDB, the GNU debugger.
5
6 Copyright (C) 1998-2020 Free Software Foundation, Inc.
7
8 This file is part of GDB.
9
10 This program is free software; you can redistribute it and/or modify
11 it under the terms of the GNU General Public License as published by
12 the Free Software Foundation; either version 3 of the License, or
13 (at your option) any later version.
14
15 This program is distributed in the hope that it will be useful,
16 but WITHOUT ANY WARRANTY; without even the implied warranty of
17 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 GNU General Public License for more details.
19
20 You should have received a copy of the GNU General Public License
21 along with this program. If not, see <http://www.gnu.org/licenses/>. */
22
23 /* This file was created with the aid of ``gdbarch.sh''. */
24
25
26 #include "defs.h"
27 #include "arch-utils.h"
28
29 #include "gdbcmd.h"
30 #include "inferior.h"
31 #include "symcat.h"
32
33 #include "floatformat.h"
34 #include "reggroups.h"
35 #include "osabi.h"
36 #include "gdb_obstack.h"
37 #include "observable.h"
38 #include "regcache.h"
39 #include "objfiles.h"
40 #include "auxv.h"
41 #include "frame-unwind.h"
42 #include "dummy-frame.h"
43
44 /* Static function declarations */
45
46 static void alloc_gdbarch_data (struct gdbarch *);
47
48 /* Non-zero if we want to trace architecture code. */
49
50 #ifndef GDBARCH_DEBUG
51 #define GDBARCH_DEBUG 0
52 #endif
53 unsigned int gdbarch_debug = GDBARCH_DEBUG;
54 static void
55 show_gdbarch_debug (struct ui_file *file, int from_tty,
56 struct cmd_list_element *c, const char *value)
57 {
58 fprintf_filtered (file, _("Architecture debugging is %s.\n"), value);
59 }
60
61 static const char *
62 pformat (const struct floatformat **format)
63 {
64 if (format == NULL)
65 return "(null)";
66 else
67 /* Just print out one of them - this is only for diagnostics. */
68 return format[0]->name;
69 }
70
71 static const char *
72 pstring (const char *string)
73 {
74 if (string == NULL)
75 return "(null)";
76 return string;
77 }
78
79 static const char *
80 pstring_ptr (char **string)
81 {
82 if (string == NULL || *string == NULL)
83 return "(null)";
84 return *string;
85 }
86
87 /* Helper function to print a list of strings, represented as "const
88 char *const *". The list is printed comma-separated. */
89
90 static const char *
91 pstring_list (const char *const *list)
92 {
93 static char ret[100];
94 const char *const *p;
95 size_t offset = 0;
96
97 if (list == NULL)
98 return "(null)";
99
100 ret[0] = '\0';
101 for (p = list; *p != NULL && offset < sizeof (ret); ++p)
102 {
103 size_t s = xsnprintf (ret + offset, sizeof (ret) - offset, "%s, ", *p);
104 offset += 2 + s;
105 }
106
107 if (offset > 0)
108 {
109 gdb_assert (offset - 2 < sizeof (ret));
110 ret[offset - 2] = '\0';
111 }
112
113 return ret;
114 }
115
116
117 /* Maintain the struct gdbarch object. */
118
119 struct gdbarch
120 {
121 /* Has this architecture been fully initialized? */
122 int initialized_p;
123
124 /* An obstack bound to the lifetime of the architecture. */
125 struct obstack *obstack;
126
127 /* basic architectural information. */
128 const struct bfd_arch_info * bfd_arch_info;
129 enum bfd_endian byte_order;
130 enum bfd_endian byte_order_for_code;
131 enum gdb_osabi osabi;
132 const struct target_desc * target_desc;
133
134 /* target specific vector. */
135 struct gdbarch_tdep *tdep;
136 gdbarch_dump_tdep_ftype *dump_tdep;
137
138 /* per-architecture data-pointers. */
139 unsigned nr_data;
140 void **data;
141
142 /* Multi-arch values.
143
144 When extending this structure you must:
145
146 Add the field below.
147
148 Declare set/get functions and define the corresponding
149 macro in gdbarch.h.
150
151 gdbarch_alloc(): If zero/NULL is not a suitable default,
152 initialize the new field.
153
154 verify_gdbarch(): Confirm that the target updated the field
155 correctly.
156
157 gdbarch_dump(): Add a fprintf_unfiltered call so that the new
158 field is dumped out
159
160 get_gdbarch(): Implement the set/get functions (probably using
161 the macro's as shortcuts).
162
163 */
164
165 int short_bit;
166 int int_bit;
167 int long_bit;
168 int long_long_bit;
169 int half_bit;
170 const struct floatformat ** half_format;
171 int float_bit;
172 const struct floatformat ** float_format;
173 int double_bit;
174 const struct floatformat ** double_format;
175 int long_double_bit;
176 const struct floatformat ** long_double_format;
177 int wchar_bit;
178 int wchar_signed;
179 gdbarch_floatformat_for_type_ftype *floatformat_for_type;
180 int ptr_bit;
181 int addr_bit;
182 int dwarf2_addr_size;
183 int char_signed;
184 gdbarch_read_pc_ftype *read_pc;
185 gdbarch_write_pc_ftype *write_pc;
186 gdbarch_virtual_frame_pointer_ftype *virtual_frame_pointer;
187 gdbarch_pseudo_register_read_ftype *pseudo_register_read;
188 gdbarch_pseudo_register_read_value_ftype *pseudo_register_read_value;
189 gdbarch_pseudo_register_write_ftype *pseudo_register_write;
190 int num_regs;
191 int num_pseudo_regs;
192 gdbarch_ax_pseudo_register_collect_ftype *ax_pseudo_register_collect;
193 gdbarch_ax_pseudo_register_push_stack_ftype *ax_pseudo_register_push_stack;
194 gdbarch_handle_segmentation_fault_ftype *handle_segmentation_fault;
195 int sp_regnum;
196 int pc_regnum;
197 int ps_regnum;
198 int fp0_regnum;
199 gdbarch_stab_reg_to_regnum_ftype *stab_reg_to_regnum;
200 gdbarch_ecoff_reg_to_regnum_ftype *ecoff_reg_to_regnum;
201 gdbarch_sdb_reg_to_regnum_ftype *sdb_reg_to_regnum;
202 gdbarch_dwarf2_reg_to_regnum_ftype *dwarf2_reg_to_regnum;
203 gdbarch_register_name_ftype *register_name;
204 gdbarch_register_type_ftype *register_type;
205 gdbarch_dummy_id_ftype *dummy_id;
206 int deprecated_fp_regnum;
207 gdbarch_push_dummy_call_ftype *push_dummy_call;
208 int call_dummy_location;
209 gdbarch_push_dummy_code_ftype *push_dummy_code;
210 gdbarch_code_of_frame_writable_ftype *code_of_frame_writable;
211 gdbarch_print_registers_info_ftype *print_registers_info;
212 gdbarch_print_float_info_ftype *print_float_info;
213 gdbarch_print_vector_info_ftype *print_vector_info;
214 gdbarch_register_sim_regno_ftype *register_sim_regno;
215 gdbarch_cannot_fetch_register_ftype *cannot_fetch_register;
216 gdbarch_cannot_store_register_ftype *cannot_store_register;
217 gdbarch_get_longjmp_target_ftype *get_longjmp_target;
218 int believe_pcc_promotion;
219 gdbarch_convert_register_p_ftype *convert_register_p;
220 gdbarch_register_to_value_ftype *register_to_value;
221 gdbarch_value_to_register_ftype *value_to_register;
222 gdbarch_value_from_register_ftype *value_from_register;
223 gdbarch_pointer_to_address_ftype *pointer_to_address;
224 gdbarch_address_to_pointer_ftype *address_to_pointer;
225 gdbarch_integer_to_address_ftype *integer_to_address;
226 gdbarch_return_value_ftype *return_value;
227 gdbarch_return_in_first_hidden_param_p_ftype *return_in_first_hidden_param_p;
228 gdbarch_skip_prologue_ftype *skip_prologue;
229 gdbarch_skip_main_prologue_ftype *skip_main_prologue;
230 gdbarch_skip_entrypoint_ftype *skip_entrypoint;
231 gdbarch_inner_than_ftype *inner_than;
232 gdbarch_breakpoint_from_pc_ftype *breakpoint_from_pc;
233 gdbarch_breakpoint_kind_from_pc_ftype *breakpoint_kind_from_pc;
234 gdbarch_sw_breakpoint_from_kind_ftype *sw_breakpoint_from_kind;
235 gdbarch_breakpoint_kind_from_current_state_ftype *breakpoint_kind_from_current_state;
236 gdbarch_adjust_breakpoint_address_ftype *adjust_breakpoint_address;
237 gdbarch_memory_insert_breakpoint_ftype *memory_insert_breakpoint;
238 gdbarch_memory_remove_breakpoint_ftype *memory_remove_breakpoint;
239 CORE_ADDR decr_pc_after_break;
240 CORE_ADDR deprecated_function_start_offset;
241 gdbarch_remote_register_number_ftype *remote_register_number;
242 gdbarch_fetch_tls_load_module_address_ftype *fetch_tls_load_module_address;
243 gdbarch_get_thread_local_address_ftype *get_thread_local_address;
244 CORE_ADDR frame_args_skip;
245 gdbarch_unwind_pc_ftype *unwind_pc;
246 gdbarch_unwind_sp_ftype *unwind_sp;
247 gdbarch_frame_num_args_ftype *frame_num_args;
248 gdbarch_frame_align_ftype *frame_align;
249 gdbarch_stabs_argument_has_addr_ftype *stabs_argument_has_addr;
250 int frame_red_zone_size;
251 gdbarch_convert_from_func_ptr_addr_ftype *convert_from_func_ptr_addr;
252 gdbarch_addr_bits_remove_ftype *addr_bits_remove;
253 int significant_addr_bit;
254 gdbarch_software_single_step_ftype *software_single_step;
255 gdbarch_single_step_through_delay_ftype *single_step_through_delay;
256 gdbarch_print_insn_ftype *print_insn;
257 gdbarch_skip_trampoline_code_ftype *skip_trampoline_code;
258 gdbarch_skip_solib_resolver_ftype *skip_solib_resolver;
259 gdbarch_in_solib_return_trampoline_ftype *in_solib_return_trampoline;
260 gdbarch_in_indirect_branch_thunk_ftype *in_indirect_branch_thunk;
261 gdbarch_stack_frame_destroyed_p_ftype *stack_frame_destroyed_p;
262 gdbarch_elf_make_msymbol_special_ftype *elf_make_msymbol_special;
263 gdbarch_coff_make_msymbol_special_ftype *coff_make_msymbol_special;
264 gdbarch_make_symbol_special_ftype *make_symbol_special;
265 gdbarch_adjust_dwarf2_addr_ftype *adjust_dwarf2_addr;
266 gdbarch_adjust_dwarf2_line_ftype *adjust_dwarf2_line;
267 int cannot_step_breakpoint;
268 int have_nonsteppable_watchpoint;
269 gdbarch_address_class_type_flags_ftype *address_class_type_flags;
270 gdbarch_address_class_type_flags_to_name_ftype *address_class_type_flags_to_name;
271 gdbarch_execute_dwarf_cfa_vendor_op_ftype *execute_dwarf_cfa_vendor_op;
272 gdbarch_address_class_name_to_type_flags_ftype *address_class_name_to_type_flags;
273 gdbarch_register_reggroup_p_ftype *register_reggroup_p;
274 gdbarch_fetch_pointer_argument_ftype *fetch_pointer_argument;
275 gdbarch_iterate_over_regset_sections_ftype *iterate_over_regset_sections;
276 gdbarch_make_corefile_notes_ftype *make_corefile_notes;
277 gdbarch_find_memory_regions_ftype *find_memory_regions;
278 gdbarch_core_xfer_shared_libraries_ftype *core_xfer_shared_libraries;
279 gdbarch_core_xfer_shared_libraries_aix_ftype *core_xfer_shared_libraries_aix;
280 gdbarch_core_pid_to_str_ftype *core_pid_to_str;
281 gdbarch_core_thread_name_ftype *core_thread_name;
282 gdbarch_core_xfer_siginfo_ftype *core_xfer_siginfo;
283 const char * gcore_bfd_target;
284 int vtable_function_descriptors;
285 int vbit_in_delta;
286 gdbarch_skip_permanent_breakpoint_ftype *skip_permanent_breakpoint;
287 ULONGEST max_insn_length;
288 gdbarch_displaced_step_copy_insn_ftype *displaced_step_copy_insn;
289 gdbarch_displaced_step_hw_singlestep_ftype *displaced_step_hw_singlestep;
290 gdbarch_displaced_step_fixup_ftype *displaced_step_fixup;
291 gdbarch_displaced_step_prepare_ftype *displaced_step_prepare;
292 gdbarch_displaced_step_finish_ftype *displaced_step_finish;
293 gdbarch_relocate_instruction_ftype *relocate_instruction;
294 gdbarch_overlay_update_ftype *overlay_update;
295 gdbarch_core_read_description_ftype *core_read_description;
296 int sofun_address_maybe_missing;
297 gdbarch_process_record_ftype *process_record;
298 gdbarch_process_record_signal_ftype *process_record_signal;
299 gdbarch_gdb_signal_from_target_ftype *gdb_signal_from_target;
300 gdbarch_gdb_signal_to_target_ftype *gdb_signal_to_target;
301 gdbarch_get_siginfo_type_ftype *get_siginfo_type;
302 gdbarch_record_special_symbol_ftype *record_special_symbol;
303 gdbarch_get_syscall_number_ftype *get_syscall_number;
304 const char * xml_syscall_file;
305 struct syscalls_info * syscalls_info;
306 const char *const * stap_integer_prefixes;
307 const char *const * stap_integer_suffixes;
308 const char *const * stap_register_prefixes;
309 const char *const * stap_register_suffixes;
310 const char *const * stap_register_indirection_prefixes;
311 const char *const * stap_register_indirection_suffixes;
312 const char * stap_gdb_register_prefix;
313 const char * stap_gdb_register_suffix;
314 gdbarch_stap_is_single_operand_ftype *stap_is_single_operand;
315 gdbarch_stap_parse_special_token_ftype *stap_parse_special_token;
316 gdbarch_stap_adjust_register_ftype *stap_adjust_register;
317 gdbarch_dtrace_parse_probe_argument_ftype *dtrace_parse_probe_argument;
318 gdbarch_dtrace_probe_is_enabled_ftype *dtrace_probe_is_enabled;
319 gdbarch_dtrace_enable_probe_ftype *dtrace_enable_probe;
320 gdbarch_dtrace_disable_probe_ftype *dtrace_disable_probe;
321 int has_global_solist;
322 int has_global_breakpoints;
323 gdbarch_has_shared_address_space_ftype *has_shared_address_space;
324 gdbarch_fast_tracepoint_valid_at_ftype *fast_tracepoint_valid_at;
325 gdbarch_guess_tracepoint_registers_ftype *guess_tracepoint_registers;
326 gdbarch_auto_charset_ftype *auto_charset;
327 gdbarch_auto_wide_charset_ftype *auto_wide_charset;
328 const char * solib_symbols_extension;
329 int has_dos_based_file_system;
330 gdbarch_gen_return_address_ftype *gen_return_address;
331 gdbarch_info_proc_ftype *info_proc;
332 gdbarch_core_info_proc_ftype *core_info_proc;
333 gdbarch_iterate_over_objfiles_in_search_order_ftype *iterate_over_objfiles_in_search_order;
334 struct ravenscar_arch_ops * ravenscar_ops;
335 gdbarch_insn_is_call_ftype *insn_is_call;
336 gdbarch_insn_is_ret_ftype *insn_is_ret;
337 gdbarch_insn_is_jump_ftype *insn_is_jump;
338 gdbarch_program_breakpoint_here_p_ftype *program_breakpoint_here_p;
339 gdbarch_auxv_parse_ftype *auxv_parse;
340 gdbarch_print_auxv_entry_ftype *print_auxv_entry;
341 gdbarch_vsyscall_range_ftype *vsyscall_range;
342 gdbarch_infcall_mmap_ftype *infcall_mmap;
343 gdbarch_infcall_munmap_ftype *infcall_munmap;
344 gdbarch_gcc_target_options_ftype *gcc_target_options;
345 gdbarch_gnu_triplet_regexp_ftype *gnu_triplet_regexp;
346 gdbarch_addressable_memory_unit_size_ftype *addressable_memory_unit_size;
347 const char * disassembler_options_implicit;
348 char ** disassembler_options;
349 const disasm_options_and_args_t * valid_disassembler_options;
350 gdbarch_type_align_ftype *type_align;
351 gdbarch_get_pc_address_flags_ftype *get_pc_address_flags;
352 };
353
354 /* Create a new ``struct gdbarch'' based on information provided by
355 ``struct gdbarch_info''. */
356
357 struct gdbarch *
358 gdbarch_alloc (const struct gdbarch_info *info,
359 struct gdbarch_tdep *tdep)
360 {
361 struct gdbarch *gdbarch;
362
363 /* Create an obstack for allocating all the per-architecture memory,
364 then use that to allocate the architecture vector. */
365 struct obstack *obstack = XNEW (struct obstack);
366 obstack_init (obstack);
367 gdbarch = XOBNEW (obstack, struct gdbarch);
368 memset (gdbarch, 0, sizeof (*gdbarch));
369 gdbarch->obstack = obstack;
370
371 alloc_gdbarch_data (gdbarch);
372
373 gdbarch->tdep = tdep;
374
375 gdbarch->bfd_arch_info = info->bfd_arch_info;
376 gdbarch->byte_order = info->byte_order;
377 gdbarch->byte_order_for_code = info->byte_order_for_code;
378 gdbarch->osabi = info->osabi;
379 gdbarch->target_desc = info->target_desc;
380
381 /* Force the explicit initialization of these. */
382 gdbarch->short_bit = 2*TARGET_CHAR_BIT;
383 gdbarch->int_bit = 4*TARGET_CHAR_BIT;
384 gdbarch->long_bit = 4*TARGET_CHAR_BIT;
385 gdbarch->long_long_bit = 2*gdbarch->long_bit;
386 gdbarch->half_bit = 2*TARGET_CHAR_BIT;
387 gdbarch->float_bit = 4*TARGET_CHAR_BIT;
388 gdbarch->double_bit = 8*TARGET_CHAR_BIT;
389 gdbarch->long_double_bit = 8*TARGET_CHAR_BIT;
390 gdbarch->wchar_bit = 4*TARGET_CHAR_BIT;
391 gdbarch->wchar_signed = -1;
392 gdbarch->floatformat_for_type = default_floatformat_for_type;
393 gdbarch->ptr_bit = gdbarch->int_bit;
394 gdbarch->char_signed = -1;
395 gdbarch->virtual_frame_pointer = legacy_virtual_frame_pointer;
396 gdbarch->num_regs = -1;
397 gdbarch->sp_regnum = -1;
398 gdbarch->pc_regnum = -1;
399 gdbarch->ps_regnum = -1;
400 gdbarch->fp0_regnum = -1;
401 gdbarch->stab_reg_to_regnum = no_op_reg_to_regnum;
402 gdbarch->ecoff_reg_to_regnum = no_op_reg_to_regnum;
403 gdbarch->sdb_reg_to_regnum = no_op_reg_to_regnum;
404 gdbarch->dwarf2_reg_to_regnum = no_op_reg_to_regnum;
405 gdbarch->dummy_id = default_dummy_id;
406 gdbarch->deprecated_fp_regnum = -1;
407 gdbarch->call_dummy_location = AT_ENTRY_POINT;
408 gdbarch->code_of_frame_writable = default_code_of_frame_writable;
409 gdbarch->print_registers_info = default_print_registers_info;
410 gdbarch->print_float_info = default_print_float_info;
411 gdbarch->register_sim_regno = legacy_register_sim_regno;
412 gdbarch->cannot_fetch_register = cannot_register_not;
413 gdbarch->cannot_store_register = cannot_register_not;
414 gdbarch->convert_register_p = generic_convert_register_p;
415 gdbarch->value_from_register = default_value_from_register;
416 gdbarch->pointer_to_address = unsigned_pointer_to_address;
417 gdbarch->address_to_pointer = unsigned_address_to_pointer;
418 gdbarch->return_in_first_hidden_param_p = default_return_in_first_hidden_param_p;
419 gdbarch->breakpoint_from_pc = default_breakpoint_from_pc;
420 gdbarch->sw_breakpoint_from_kind = NULL;
421 gdbarch->breakpoint_kind_from_current_state = default_breakpoint_kind_from_current_state;
422 gdbarch->memory_insert_breakpoint = default_memory_insert_breakpoint;
423 gdbarch->memory_remove_breakpoint = default_memory_remove_breakpoint;
424 gdbarch->remote_register_number = default_remote_register_number;
425 gdbarch->unwind_pc = default_unwind_pc;
426 gdbarch->unwind_sp = default_unwind_sp;
427 gdbarch->stabs_argument_has_addr = default_stabs_argument_has_addr;
428 gdbarch->convert_from_func_ptr_addr = convert_from_func_ptr_addr_identity;
429 gdbarch->addr_bits_remove = core_addr_identity;
430 gdbarch->print_insn = default_print_insn;
431 gdbarch->skip_trampoline_code = generic_skip_trampoline_code;
432 gdbarch->skip_solib_resolver = generic_skip_solib_resolver;
433 gdbarch->in_solib_return_trampoline = generic_in_solib_return_trampoline;
434 gdbarch->in_indirect_branch_thunk = default_in_indirect_branch_thunk;
435 gdbarch->stack_frame_destroyed_p = generic_stack_frame_destroyed_p;
436 gdbarch->coff_make_msymbol_special = default_coff_make_msymbol_special;
437 gdbarch->make_symbol_special = default_make_symbol_special;
438 gdbarch->adjust_dwarf2_addr = default_adjust_dwarf2_addr;
439 gdbarch->adjust_dwarf2_line = default_adjust_dwarf2_line;
440 gdbarch->execute_dwarf_cfa_vendor_op = default_execute_dwarf_cfa_vendor_op;
441 gdbarch->register_reggroup_p = default_register_reggroup_p;
442 gdbarch->skip_permanent_breakpoint = default_skip_permanent_breakpoint;
443 gdbarch->displaced_step_hw_singlestep = default_displaced_step_hw_singlestep;
444 gdbarch->displaced_step_fixup = NULL;
445 gdbarch->displaced_step_prepare = NULL;
446 gdbarch->displaced_step_finish = NULL;
447 gdbarch->relocate_instruction = NULL;
448 gdbarch->has_shared_address_space = default_has_shared_address_space;
449 gdbarch->fast_tracepoint_valid_at = default_fast_tracepoint_valid_at;
450 gdbarch->guess_tracepoint_registers = default_guess_tracepoint_registers;
451 gdbarch->auto_charset = default_auto_charset;
452 gdbarch->auto_wide_charset = default_auto_wide_charset;
453 gdbarch->gen_return_address = default_gen_return_address;
454 gdbarch->iterate_over_objfiles_in_search_order = default_iterate_over_objfiles_in_search_order;
455 gdbarch->ravenscar_ops = NULL;
456 gdbarch->insn_is_call = default_insn_is_call;
457 gdbarch->insn_is_ret = default_insn_is_ret;
458 gdbarch->insn_is_jump = default_insn_is_jump;
459 gdbarch->program_breakpoint_here_p = default_program_breakpoint_here_p;
460 gdbarch->print_auxv_entry = default_print_auxv_entry;
461 gdbarch->vsyscall_range = default_vsyscall_range;
462 gdbarch->infcall_mmap = default_infcall_mmap;
463 gdbarch->infcall_munmap = default_infcall_munmap;
464 gdbarch->gcc_target_options = default_gcc_target_options;
465 gdbarch->gnu_triplet_regexp = default_gnu_triplet_regexp;
466 gdbarch->addressable_memory_unit_size = default_addressable_memory_unit_size;
467 gdbarch->type_align = default_type_align;
468 gdbarch->get_pc_address_flags = default_get_pc_address_flags;
469 /* gdbarch_alloc() */
470
471 return gdbarch;
472 }
473
474
475
476 obstack *gdbarch_obstack (gdbarch *arch)
477 {
478 return arch->obstack;
479 }
480
481 /* See gdbarch.h. */
482
483 char *
484 gdbarch_obstack_strdup (struct gdbarch *arch, const char *string)
485 {
486 return obstack_strdup (arch->obstack, string);
487 }
488
489
490 /* Free a gdbarch struct. This should never happen in normal
491 operation --- once you've created a gdbarch, you keep it around.
492 However, if an architecture's init function encounters an error
493 building the structure, it may need to clean up a partially
494 constructed gdbarch. */
495
496 void
497 gdbarch_free (struct gdbarch *arch)
498 {
499 struct obstack *obstack;
500
501 gdb_assert (arch != NULL);
502 gdb_assert (!arch->initialized_p);
503 obstack = arch->obstack;
504 obstack_free (obstack, 0); /* Includes the ARCH. */
505 xfree (obstack);
506 }
507
508
509 /* Ensure that all values in a GDBARCH are reasonable. */
510
511 static void
512 verify_gdbarch (struct gdbarch *gdbarch)
513 {
514 string_file log;
515
516 /* fundamental */
517 if (gdbarch->byte_order == BFD_ENDIAN_UNKNOWN)
518 log.puts ("\n\tbyte-order");
519 if (gdbarch->bfd_arch_info == NULL)
520 log.puts ("\n\tbfd_arch_info");
521 /* Check those that need to be defined for the given multi-arch level. */
522 /* Skip verify of short_bit, invalid_p == 0 */
523 /* Skip verify of int_bit, invalid_p == 0 */
524 /* Skip verify of long_bit, invalid_p == 0 */
525 /* Skip verify of long_long_bit, invalid_p == 0 */
526 /* Skip verify of half_bit, invalid_p == 0 */
527 if (gdbarch->half_format == 0)
528 gdbarch->half_format = floatformats_ieee_half;
529 /* Skip verify of float_bit, invalid_p == 0 */
530 if (gdbarch->float_format == 0)
531 gdbarch->float_format = floatformats_ieee_single;
532 /* Skip verify of double_bit, invalid_p == 0 */
533 if (gdbarch->double_format == 0)
534 gdbarch->double_format = floatformats_ieee_double;
535 /* Skip verify of long_double_bit, invalid_p == 0 */
536 if (gdbarch->long_double_format == 0)
537 gdbarch->long_double_format = floatformats_ieee_double;
538 /* Skip verify of wchar_bit, invalid_p == 0 */
539 if (gdbarch->wchar_signed == -1)
540 gdbarch->wchar_signed = 1;
541 /* Skip verify of floatformat_for_type, invalid_p == 0 */
542 /* Skip verify of ptr_bit, invalid_p == 0 */
543 if (gdbarch->addr_bit == 0)
544 gdbarch->addr_bit = gdbarch_ptr_bit (gdbarch);
545 if (gdbarch->dwarf2_addr_size == 0)
546 gdbarch->dwarf2_addr_size = gdbarch_ptr_bit (gdbarch) / TARGET_CHAR_BIT;
547 if (gdbarch->char_signed == -1)
548 gdbarch->char_signed = 1;
549 /* Skip verify of read_pc, has predicate. */
550 /* Skip verify of write_pc, has predicate. */
551 /* Skip verify of virtual_frame_pointer, invalid_p == 0 */
552 /* Skip verify of pseudo_register_read, has predicate. */
553 /* Skip verify of pseudo_register_read_value, has predicate. */
554 /* Skip verify of pseudo_register_write, has predicate. */
555 if (gdbarch->num_regs == -1)
556 log.puts ("\n\tnum_regs");
557 /* Skip verify of num_pseudo_regs, invalid_p == 0 */
558 /* Skip verify of ax_pseudo_register_collect, has predicate. */
559 /* Skip verify of ax_pseudo_register_push_stack, has predicate. */
560 /* Skip verify of handle_segmentation_fault, has predicate. */
561 /* Skip verify of sp_regnum, invalid_p == 0 */
562 /* Skip verify of pc_regnum, invalid_p == 0 */
563 /* Skip verify of ps_regnum, invalid_p == 0 */
564 /* Skip verify of fp0_regnum, invalid_p == 0 */
565 /* Skip verify of stab_reg_to_regnum, invalid_p == 0 */
566 /* Skip verify of ecoff_reg_to_regnum, invalid_p == 0 */
567 /* Skip verify of sdb_reg_to_regnum, invalid_p == 0 */
568 /* Skip verify of dwarf2_reg_to_regnum, invalid_p == 0 */
569 if (gdbarch->register_name == 0)
570 log.puts ("\n\tregister_name");
571 /* Skip verify of register_type, has predicate. */
572 /* Skip verify of dummy_id, invalid_p == 0 */
573 /* Skip verify of deprecated_fp_regnum, invalid_p == 0 */
574 /* Skip verify of push_dummy_call, has predicate. */
575 /* Skip verify of call_dummy_location, invalid_p == 0 */
576 /* Skip verify of push_dummy_code, has predicate. */
577 /* Skip verify of code_of_frame_writable, invalid_p == 0 */
578 /* Skip verify of print_registers_info, invalid_p == 0 */
579 /* Skip verify of print_float_info, invalid_p == 0 */
580 /* Skip verify of print_vector_info, has predicate. */
581 /* Skip verify of register_sim_regno, invalid_p == 0 */
582 /* Skip verify of cannot_fetch_register, invalid_p == 0 */
583 /* Skip verify of cannot_store_register, invalid_p == 0 */
584 /* Skip verify of get_longjmp_target, has predicate. */
585 /* Skip verify of convert_register_p, invalid_p == 0 */
586 /* Skip verify of value_from_register, invalid_p == 0 */
587 /* Skip verify of pointer_to_address, invalid_p == 0 */
588 /* Skip verify of address_to_pointer, invalid_p == 0 */
589 /* Skip verify of integer_to_address, has predicate. */
590 /* Skip verify of return_value, has predicate. */
591 /* Skip verify of return_in_first_hidden_param_p, invalid_p == 0 */
592 if (gdbarch->skip_prologue == 0)
593 log.puts ("\n\tskip_prologue");
594 /* Skip verify of skip_main_prologue, has predicate. */
595 /* Skip verify of skip_entrypoint, has predicate. */
596 if (gdbarch->inner_than == 0)
597 log.puts ("\n\tinner_than");
598 /* Skip verify of breakpoint_from_pc, invalid_p == 0 */
599 if (gdbarch->breakpoint_kind_from_pc == 0)
600 log.puts ("\n\tbreakpoint_kind_from_pc");
601 /* Skip verify of sw_breakpoint_from_kind, invalid_p == 0 */
602 /* Skip verify of breakpoint_kind_from_current_state, invalid_p == 0 */
603 /* Skip verify of adjust_breakpoint_address, has predicate. */
604 /* Skip verify of memory_insert_breakpoint, invalid_p == 0 */
605 /* Skip verify of memory_remove_breakpoint, invalid_p == 0 */
606 /* Skip verify of decr_pc_after_break, invalid_p == 0 */
607 /* Skip verify of deprecated_function_start_offset, invalid_p == 0 */
608 /* Skip verify of remote_register_number, invalid_p == 0 */
609 /* Skip verify of fetch_tls_load_module_address, has predicate. */
610 /* Skip verify of get_thread_local_address, has predicate. */
611 /* Skip verify of frame_args_skip, invalid_p == 0 */
612 /* Skip verify of unwind_pc, invalid_p == 0 */
613 /* Skip verify of unwind_sp, invalid_p == 0 */
614 /* Skip verify of frame_num_args, has predicate. */
615 /* Skip verify of frame_align, has predicate. */
616 /* Skip verify of stabs_argument_has_addr, invalid_p == 0 */
617 /* Skip verify of convert_from_func_ptr_addr, invalid_p == 0 */
618 /* Skip verify of addr_bits_remove, invalid_p == 0 */
619 /* Skip verify of significant_addr_bit, invalid_p == 0 */
620 /* Skip verify of software_single_step, has predicate. */
621 /* Skip verify of single_step_through_delay, has predicate. */
622 /* Skip verify of print_insn, invalid_p == 0 */
623 /* Skip verify of skip_trampoline_code, invalid_p == 0 */
624 /* Skip verify of skip_solib_resolver, invalid_p == 0 */
625 /* Skip verify of in_solib_return_trampoline, invalid_p == 0 */
626 /* Skip verify of in_indirect_branch_thunk, invalid_p == 0 */
627 /* Skip verify of stack_frame_destroyed_p, invalid_p == 0 */
628 /* Skip verify of elf_make_msymbol_special, has predicate. */
629 /* Skip verify of coff_make_msymbol_special, invalid_p == 0 */
630 /* Skip verify of make_symbol_special, invalid_p == 0 */
631 /* Skip verify of adjust_dwarf2_addr, invalid_p == 0 */
632 /* Skip verify of adjust_dwarf2_line, invalid_p == 0 */
633 /* Skip verify of cannot_step_breakpoint, invalid_p == 0 */
634 /* Skip verify of have_nonsteppable_watchpoint, invalid_p == 0 */
635 /* Skip verify of address_class_type_flags, has predicate. */
636 /* Skip verify of address_class_type_flags_to_name, has predicate. */
637 /* Skip verify of execute_dwarf_cfa_vendor_op, invalid_p == 0 */
638 /* Skip verify of address_class_name_to_type_flags, has predicate. */
639 /* Skip verify of register_reggroup_p, invalid_p == 0 */
640 /* Skip verify of fetch_pointer_argument, has predicate. */
641 /* Skip verify of iterate_over_regset_sections, has predicate. */
642 /* Skip verify of make_corefile_notes, has predicate. */
643 /* Skip verify of find_memory_regions, has predicate. */
644 /* Skip verify of core_xfer_shared_libraries, has predicate. */
645 /* Skip verify of core_xfer_shared_libraries_aix, has predicate. */
646 /* Skip verify of core_pid_to_str, has predicate. */
647 /* Skip verify of core_thread_name, has predicate. */
648 /* Skip verify of core_xfer_siginfo, has predicate. */
649 /* Skip verify of gcore_bfd_target, has predicate. */
650 /* Skip verify of vtable_function_descriptors, invalid_p == 0 */
651 /* Skip verify of vbit_in_delta, invalid_p == 0 */
652 /* Skip verify of skip_permanent_breakpoint, invalid_p == 0 */
653 /* Skip verify of max_insn_length, has predicate. */
654 /* Skip verify of displaced_step_copy_insn, has predicate. */
655 /* Skip verify of displaced_step_hw_singlestep, invalid_p == 0 */
656 /* Skip verify of displaced_step_fixup, has predicate. */
657 if ((! gdbarch->displaced_step_prepare) != (! gdbarch->displaced_step_copy_insn))
658 log.puts ("\n\tdisplaced_step_prepare");
659 if ((! gdbarch->displaced_step_finish) != (! gdbarch->displaced_step_copy_insn))
660 log.puts ("\n\tdisplaced_step_finish");
661 /* Skip verify of relocate_instruction, has predicate. */
662 /* Skip verify of overlay_update, has predicate. */
663 /* Skip verify of core_read_description, has predicate. */
664 /* Skip verify of sofun_address_maybe_missing, invalid_p == 0 */
665 /* Skip verify of process_record, has predicate. */
666 /* Skip verify of process_record_signal, has predicate. */
667 /* Skip verify of gdb_signal_from_target, has predicate. */
668 /* Skip verify of gdb_signal_to_target, has predicate. */
669 /* Skip verify of get_siginfo_type, has predicate. */
670 /* Skip verify of record_special_symbol, has predicate. */
671 /* Skip verify of get_syscall_number, has predicate. */
672 /* Skip verify of xml_syscall_file, invalid_p == 0 */
673 /* Skip verify of syscalls_info, invalid_p == 0 */
674 /* Skip verify of stap_integer_prefixes, invalid_p == 0 */
675 /* Skip verify of stap_integer_suffixes, invalid_p == 0 */
676 /* Skip verify of stap_register_prefixes, invalid_p == 0 */
677 /* Skip verify of stap_register_suffixes, invalid_p == 0 */
678 /* Skip verify of stap_register_indirection_prefixes, invalid_p == 0 */
679 /* Skip verify of stap_register_indirection_suffixes, invalid_p == 0 */
680 /* Skip verify of stap_gdb_register_prefix, invalid_p == 0 */
681 /* Skip verify of stap_gdb_register_suffix, invalid_p == 0 */
682 /* Skip verify of stap_is_single_operand, has predicate. */
683 /* Skip verify of stap_parse_special_token, has predicate. */
684 /* Skip verify of stap_adjust_register, has predicate. */
685 /* Skip verify of dtrace_parse_probe_argument, has predicate. */
686 /* Skip verify of dtrace_probe_is_enabled, has predicate. */
687 /* Skip verify of dtrace_enable_probe, has predicate. */
688 /* Skip verify of dtrace_disable_probe, has predicate. */
689 /* Skip verify of has_global_solist, invalid_p == 0 */
690 /* Skip verify of has_global_breakpoints, invalid_p == 0 */
691 /* Skip verify of has_shared_address_space, invalid_p == 0 */
692 /* Skip verify of fast_tracepoint_valid_at, invalid_p == 0 */
693 /* Skip verify of guess_tracepoint_registers, invalid_p == 0 */
694 /* Skip verify of auto_charset, invalid_p == 0 */
695 /* Skip verify of auto_wide_charset, invalid_p == 0 */
696 /* Skip verify of has_dos_based_file_system, invalid_p == 0 */
697 /* Skip verify of gen_return_address, invalid_p == 0 */
698 /* Skip verify of info_proc, has predicate. */
699 /* Skip verify of core_info_proc, has predicate. */
700 /* Skip verify of iterate_over_objfiles_in_search_order, invalid_p == 0 */
701 /* Skip verify of ravenscar_ops, invalid_p == 0 */
702 /* Skip verify of insn_is_call, invalid_p == 0 */
703 /* Skip verify of insn_is_ret, invalid_p == 0 */
704 /* Skip verify of insn_is_jump, invalid_p == 0 */
705 /* Skip verify of program_breakpoint_here_p, invalid_p == 0 */
706 /* Skip verify of auxv_parse, has predicate. */
707 /* Skip verify of print_auxv_entry, invalid_p == 0 */
708 /* Skip verify of vsyscall_range, invalid_p == 0 */
709 /* Skip verify of infcall_mmap, invalid_p == 0 */
710 /* Skip verify of infcall_munmap, invalid_p == 0 */
711 /* Skip verify of gcc_target_options, invalid_p == 0 */
712 /* Skip verify of gnu_triplet_regexp, invalid_p == 0 */
713 /* Skip verify of addressable_memory_unit_size, invalid_p == 0 */
714 /* Skip verify of disassembler_options_implicit, invalid_p == 0 */
715 /* Skip verify of disassembler_options, invalid_p == 0 */
716 /* Skip verify of valid_disassembler_options, invalid_p == 0 */
717 /* Skip verify of type_align, invalid_p == 0 */
718 /* Skip verify of get_pc_address_flags, invalid_p == 0 */
719 if (!log.empty ())
720 internal_error (__FILE__, __LINE__,
721 _("verify_gdbarch: the following are invalid ...%s"),
722 log.c_str ());
723 }
724
725
726 /* Print out the details of the current architecture. */
727
728 void
729 gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
730 {
731 const char *gdb_nm_file = "<not-defined>";
732
733 #if defined (GDB_NM_FILE)
734 gdb_nm_file = GDB_NM_FILE;
735 #endif
736 fprintf_unfiltered (file,
737 "gdbarch_dump: GDB_NM_FILE = %s\n",
738 gdb_nm_file);
739 fprintf_unfiltered (file,
740 "gdbarch_dump: addr_bit = %s\n",
741 plongest (gdbarch->addr_bit));
742 fprintf_unfiltered (file,
743 "gdbarch_dump: addr_bits_remove = <%s>\n",
744 host_address_to_string (gdbarch->addr_bits_remove));
745 fprintf_unfiltered (file,
746 "gdbarch_dump: gdbarch_address_class_name_to_type_flags_p() = %d\n",
747 gdbarch_address_class_name_to_type_flags_p (gdbarch));
748 fprintf_unfiltered (file,
749 "gdbarch_dump: address_class_name_to_type_flags = <%s>\n",
750 host_address_to_string (gdbarch->address_class_name_to_type_flags));
751 fprintf_unfiltered (file,
752 "gdbarch_dump: gdbarch_address_class_type_flags_p() = %d\n",
753 gdbarch_address_class_type_flags_p (gdbarch));
754 fprintf_unfiltered (file,
755 "gdbarch_dump: address_class_type_flags = <%s>\n",
756 host_address_to_string (gdbarch->address_class_type_flags));
757 fprintf_unfiltered (file,
758 "gdbarch_dump: gdbarch_address_class_type_flags_to_name_p() = %d\n",
759 gdbarch_address_class_type_flags_to_name_p (gdbarch));
760 fprintf_unfiltered (file,
761 "gdbarch_dump: address_class_type_flags_to_name = <%s>\n",
762 host_address_to_string (gdbarch->address_class_type_flags_to_name));
763 fprintf_unfiltered (file,
764 "gdbarch_dump: address_to_pointer = <%s>\n",
765 host_address_to_string (gdbarch->address_to_pointer));
766 fprintf_unfiltered (file,
767 "gdbarch_dump: addressable_memory_unit_size = <%s>\n",
768 host_address_to_string (gdbarch->addressable_memory_unit_size));
769 fprintf_unfiltered (file,
770 "gdbarch_dump: gdbarch_adjust_breakpoint_address_p() = %d\n",
771 gdbarch_adjust_breakpoint_address_p (gdbarch));
772 fprintf_unfiltered (file,
773 "gdbarch_dump: adjust_breakpoint_address = <%s>\n",
774 host_address_to_string (gdbarch->adjust_breakpoint_address));
775 fprintf_unfiltered (file,
776 "gdbarch_dump: adjust_dwarf2_addr = <%s>\n",
777 host_address_to_string (gdbarch->adjust_dwarf2_addr));
778 fprintf_unfiltered (file,
779 "gdbarch_dump: adjust_dwarf2_line = <%s>\n",
780 host_address_to_string (gdbarch->adjust_dwarf2_line));
781 fprintf_unfiltered (file,
782 "gdbarch_dump: auto_charset = <%s>\n",
783 host_address_to_string (gdbarch->auto_charset));
784 fprintf_unfiltered (file,
785 "gdbarch_dump: auto_wide_charset = <%s>\n",
786 host_address_to_string (gdbarch->auto_wide_charset));
787 fprintf_unfiltered (file,
788 "gdbarch_dump: gdbarch_auxv_parse_p() = %d\n",
789 gdbarch_auxv_parse_p (gdbarch));
790 fprintf_unfiltered (file,
791 "gdbarch_dump: auxv_parse = <%s>\n",
792 host_address_to_string (gdbarch->auxv_parse));
793 fprintf_unfiltered (file,
794 "gdbarch_dump: gdbarch_ax_pseudo_register_collect_p() = %d\n",
795 gdbarch_ax_pseudo_register_collect_p (gdbarch));
796 fprintf_unfiltered (file,
797 "gdbarch_dump: ax_pseudo_register_collect = <%s>\n",
798 host_address_to_string (gdbarch->ax_pseudo_register_collect));
799 fprintf_unfiltered (file,
800 "gdbarch_dump: gdbarch_ax_pseudo_register_push_stack_p() = %d\n",
801 gdbarch_ax_pseudo_register_push_stack_p (gdbarch));
802 fprintf_unfiltered (file,
803 "gdbarch_dump: ax_pseudo_register_push_stack = <%s>\n",
804 host_address_to_string (gdbarch->ax_pseudo_register_push_stack));
805 fprintf_unfiltered (file,
806 "gdbarch_dump: believe_pcc_promotion = %s\n",
807 plongest (gdbarch->believe_pcc_promotion));
808 fprintf_unfiltered (file,
809 "gdbarch_dump: bfd_arch_info = %s\n",
810 gdbarch_bfd_arch_info (gdbarch)->printable_name);
811 fprintf_unfiltered (file,
812 "gdbarch_dump: breakpoint_from_pc = <%s>\n",
813 host_address_to_string (gdbarch->breakpoint_from_pc));
814 fprintf_unfiltered (file,
815 "gdbarch_dump: breakpoint_kind_from_current_state = <%s>\n",
816 host_address_to_string (gdbarch->breakpoint_kind_from_current_state));
817 fprintf_unfiltered (file,
818 "gdbarch_dump: breakpoint_kind_from_pc = <%s>\n",
819 host_address_to_string (gdbarch->breakpoint_kind_from_pc));
820 fprintf_unfiltered (file,
821 "gdbarch_dump: byte_order = %s\n",
822 plongest (gdbarch->byte_order));
823 fprintf_unfiltered (file,
824 "gdbarch_dump: byte_order_for_code = %s\n",
825 plongest (gdbarch->byte_order_for_code));
826 fprintf_unfiltered (file,
827 "gdbarch_dump: call_dummy_location = %s\n",
828 plongest (gdbarch->call_dummy_location));
829 fprintf_unfiltered (file,
830 "gdbarch_dump: cannot_fetch_register = <%s>\n",
831 host_address_to_string (gdbarch->cannot_fetch_register));
832 fprintf_unfiltered (file,
833 "gdbarch_dump: cannot_step_breakpoint = %s\n",
834 plongest (gdbarch->cannot_step_breakpoint));
835 fprintf_unfiltered (file,
836 "gdbarch_dump: cannot_store_register = <%s>\n",
837 host_address_to_string (gdbarch->cannot_store_register));
838 fprintf_unfiltered (file,
839 "gdbarch_dump: char_signed = %s\n",
840 plongest (gdbarch->char_signed));
841 fprintf_unfiltered (file,
842 "gdbarch_dump: code_of_frame_writable = <%s>\n",
843 host_address_to_string (gdbarch->code_of_frame_writable));
844 fprintf_unfiltered (file,
845 "gdbarch_dump: coff_make_msymbol_special = <%s>\n",
846 host_address_to_string (gdbarch->coff_make_msymbol_special));
847 fprintf_unfiltered (file,
848 "gdbarch_dump: convert_from_func_ptr_addr = <%s>\n",
849 host_address_to_string (gdbarch->convert_from_func_ptr_addr));
850 fprintf_unfiltered (file,
851 "gdbarch_dump: convert_register_p = <%s>\n",
852 host_address_to_string (gdbarch->convert_register_p));
853 fprintf_unfiltered (file,
854 "gdbarch_dump: gdbarch_core_info_proc_p() = %d\n",
855 gdbarch_core_info_proc_p (gdbarch));
856 fprintf_unfiltered (file,
857 "gdbarch_dump: core_info_proc = <%s>\n",
858 host_address_to_string (gdbarch->core_info_proc));
859 fprintf_unfiltered (file,
860 "gdbarch_dump: gdbarch_core_pid_to_str_p() = %d\n",
861 gdbarch_core_pid_to_str_p (gdbarch));
862 fprintf_unfiltered (file,
863 "gdbarch_dump: core_pid_to_str = <%s>\n",
864 host_address_to_string (gdbarch->core_pid_to_str));
865 fprintf_unfiltered (file,
866 "gdbarch_dump: gdbarch_core_read_description_p() = %d\n",
867 gdbarch_core_read_description_p (gdbarch));
868 fprintf_unfiltered (file,
869 "gdbarch_dump: core_read_description = <%s>\n",
870 host_address_to_string (gdbarch->core_read_description));
871 fprintf_unfiltered (file,
872 "gdbarch_dump: gdbarch_core_thread_name_p() = %d\n",
873 gdbarch_core_thread_name_p (gdbarch));
874 fprintf_unfiltered (file,
875 "gdbarch_dump: core_thread_name = <%s>\n",
876 host_address_to_string (gdbarch->core_thread_name));
877 fprintf_unfiltered (file,
878 "gdbarch_dump: gdbarch_core_xfer_shared_libraries_p() = %d\n",
879 gdbarch_core_xfer_shared_libraries_p (gdbarch));
880 fprintf_unfiltered (file,
881 "gdbarch_dump: core_xfer_shared_libraries = <%s>\n",
882 host_address_to_string (gdbarch->core_xfer_shared_libraries));
883 fprintf_unfiltered (file,
884 "gdbarch_dump: gdbarch_core_xfer_shared_libraries_aix_p() = %d\n",
885 gdbarch_core_xfer_shared_libraries_aix_p (gdbarch));
886 fprintf_unfiltered (file,
887 "gdbarch_dump: core_xfer_shared_libraries_aix = <%s>\n",
888 host_address_to_string (gdbarch->core_xfer_shared_libraries_aix));
889 fprintf_unfiltered (file,
890 "gdbarch_dump: gdbarch_core_xfer_siginfo_p() = %d\n",
891 gdbarch_core_xfer_siginfo_p (gdbarch));
892 fprintf_unfiltered (file,
893 "gdbarch_dump: core_xfer_siginfo = <%s>\n",
894 host_address_to_string (gdbarch->core_xfer_siginfo));
895 fprintf_unfiltered (file,
896 "gdbarch_dump: decr_pc_after_break = %s\n",
897 core_addr_to_string_nz (gdbarch->decr_pc_after_break));
898 fprintf_unfiltered (file,
899 "gdbarch_dump: deprecated_fp_regnum = %s\n",
900 plongest (gdbarch->deprecated_fp_regnum));
901 fprintf_unfiltered (file,
902 "gdbarch_dump: deprecated_function_start_offset = %s\n",
903 core_addr_to_string_nz (gdbarch->deprecated_function_start_offset));
904 fprintf_unfiltered (file,
905 "gdbarch_dump: disassembler_options = %s\n",
906 pstring_ptr (gdbarch->disassembler_options));
907 fprintf_unfiltered (file,
908 "gdbarch_dump: disassembler_options_implicit = %s\n",
909 pstring (gdbarch->disassembler_options_implicit));
910 fprintf_unfiltered (file,
911 "gdbarch_dump: gdbarch_displaced_step_copy_insn_p() = %d\n",
912 gdbarch_displaced_step_copy_insn_p (gdbarch));
913 fprintf_unfiltered (file,
914 "gdbarch_dump: displaced_step_copy_insn = <%s>\n",
915 host_address_to_string (gdbarch->displaced_step_copy_insn));
916 fprintf_unfiltered (file,
917 "gdbarch_dump: displaced_step_finish = <%s>\n",
918 host_address_to_string (gdbarch->displaced_step_finish));
919 fprintf_unfiltered (file,
920 "gdbarch_dump: gdbarch_displaced_step_fixup_p() = %d\n",
921 gdbarch_displaced_step_fixup_p (gdbarch));
922 fprintf_unfiltered (file,
923 "gdbarch_dump: displaced_step_fixup = <%s>\n",
924 host_address_to_string (gdbarch->displaced_step_fixup));
925 fprintf_unfiltered (file,
926 "gdbarch_dump: displaced_step_hw_singlestep = <%s>\n",
927 host_address_to_string (gdbarch->displaced_step_hw_singlestep));
928 fprintf_unfiltered (file,
929 "gdbarch_dump: displaced_step_prepare = <%s>\n",
930 host_address_to_string (gdbarch->displaced_step_prepare));
931 fprintf_unfiltered (file,
932 "gdbarch_dump: double_bit = %s\n",
933 plongest (gdbarch->double_bit));
934 fprintf_unfiltered (file,
935 "gdbarch_dump: double_format = %s\n",
936 pformat (gdbarch->double_format));
937 fprintf_unfiltered (file,
938 "gdbarch_dump: gdbarch_dtrace_disable_probe_p() = %d\n",
939 gdbarch_dtrace_disable_probe_p (gdbarch));
940 fprintf_unfiltered (file,
941 "gdbarch_dump: dtrace_disable_probe = <%s>\n",
942 host_address_to_string (gdbarch->dtrace_disable_probe));
943 fprintf_unfiltered (file,
944 "gdbarch_dump: gdbarch_dtrace_enable_probe_p() = %d\n",
945 gdbarch_dtrace_enable_probe_p (gdbarch));
946 fprintf_unfiltered (file,
947 "gdbarch_dump: dtrace_enable_probe = <%s>\n",
948 host_address_to_string (gdbarch->dtrace_enable_probe));
949 fprintf_unfiltered (file,
950 "gdbarch_dump: gdbarch_dtrace_parse_probe_argument_p() = %d\n",
951 gdbarch_dtrace_parse_probe_argument_p (gdbarch));
952 fprintf_unfiltered (file,
953 "gdbarch_dump: dtrace_parse_probe_argument = <%s>\n",
954 host_address_to_string (gdbarch->dtrace_parse_probe_argument));
955 fprintf_unfiltered (file,
956 "gdbarch_dump: gdbarch_dtrace_probe_is_enabled_p() = %d\n",
957 gdbarch_dtrace_probe_is_enabled_p (gdbarch));
958 fprintf_unfiltered (file,
959 "gdbarch_dump: dtrace_probe_is_enabled = <%s>\n",
960 host_address_to_string (gdbarch->dtrace_probe_is_enabled));
961 fprintf_unfiltered (file,
962 "gdbarch_dump: dummy_id = <%s>\n",
963 host_address_to_string (gdbarch->dummy_id));
964 fprintf_unfiltered (file,
965 "gdbarch_dump: dwarf2_addr_size = %s\n",
966 plongest (gdbarch->dwarf2_addr_size));
967 fprintf_unfiltered (file,
968 "gdbarch_dump: dwarf2_reg_to_regnum = <%s>\n",
969 host_address_to_string (gdbarch->dwarf2_reg_to_regnum));
970 fprintf_unfiltered (file,
971 "gdbarch_dump: ecoff_reg_to_regnum = <%s>\n",
972 host_address_to_string (gdbarch->ecoff_reg_to_regnum));
973 fprintf_unfiltered (file,
974 "gdbarch_dump: gdbarch_elf_make_msymbol_special_p() = %d\n",
975 gdbarch_elf_make_msymbol_special_p (gdbarch));
976 fprintf_unfiltered (file,
977 "gdbarch_dump: elf_make_msymbol_special = <%s>\n",
978 host_address_to_string (gdbarch->elf_make_msymbol_special));
979 fprintf_unfiltered (file,
980 "gdbarch_dump: execute_dwarf_cfa_vendor_op = <%s>\n",
981 host_address_to_string (gdbarch->execute_dwarf_cfa_vendor_op));
982 fprintf_unfiltered (file,
983 "gdbarch_dump: fast_tracepoint_valid_at = <%s>\n",
984 host_address_to_string (gdbarch->fast_tracepoint_valid_at));
985 fprintf_unfiltered (file,
986 "gdbarch_dump: gdbarch_fetch_pointer_argument_p() = %d\n",
987 gdbarch_fetch_pointer_argument_p (gdbarch));
988 fprintf_unfiltered (file,
989 "gdbarch_dump: fetch_pointer_argument = <%s>\n",
990 host_address_to_string (gdbarch->fetch_pointer_argument));
991 fprintf_unfiltered (file,
992 "gdbarch_dump: gdbarch_fetch_tls_load_module_address_p() = %d\n",
993 gdbarch_fetch_tls_load_module_address_p (gdbarch));
994 fprintf_unfiltered (file,
995 "gdbarch_dump: fetch_tls_load_module_address = <%s>\n",
996 host_address_to_string (gdbarch->fetch_tls_load_module_address));
997 fprintf_unfiltered (file,
998 "gdbarch_dump: gdbarch_find_memory_regions_p() = %d\n",
999 gdbarch_find_memory_regions_p (gdbarch));
1000 fprintf_unfiltered (file,
1001 "gdbarch_dump: find_memory_regions = <%s>\n",
1002 host_address_to_string (gdbarch->find_memory_regions));
1003 fprintf_unfiltered (file,
1004 "gdbarch_dump: float_bit = %s\n",
1005 plongest (gdbarch->float_bit));
1006 fprintf_unfiltered (file,
1007 "gdbarch_dump: float_format = %s\n",
1008 pformat (gdbarch->float_format));
1009 fprintf_unfiltered (file,
1010 "gdbarch_dump: floatformat_for_type = <%s>\n",
1011 host_address_to_string (gdbarch->floatformat_for_type));
1012 fprintf_unfiltered (file,
1013 "gdbarch_dump: fp0_regnum = %s\n",
1014 plongest (gdbarch->fp0_regnum));
1015 fprintf_unfiltered (file,
1016 "gdbarch_dump: gdbarch_frame_align_p() = %d\n",
1017 gdbarch_frame_align_p (gdbarch));
1018 fprintf_unfiltered (file,
1019 "gdbarch_dump: frame_align = <%s>\n",
1020 host_address_to_string (gdbarch->frame_align));
1021 fprintf_unfiltered (file,
1022 "gdbarch_dump: frame_args_skip = %s\n",
1023 core_addr_to_string_nz (gdbarch->frame_args_skip));
1024 fprintf_unfiltered (file,
1025 "gdbarch_dump: gdbarch_frame_num_args_p() = %d\n",
1026 gdbarch_frame_num_args_p (gdbarch));
1027 fprintf_unfiltered (file,
1028 "gdbarch_dump: frame_num_args = <%s>\n",
1029 host_address_to_string (gdbarch->frame_num_args));
1030 fprintf_unfiltered (file,
1031 "gdbarch_dump: frame_red_zone_size = %s\n",
1032 plongest (gdbarch->frame_red_zone_size));
1033 fprintf_unfiltered (file,
1034 "gdbarch_dump: gcc_target_options = <%s>\n",
1035 host_address_to_string (gdbarch->gcc_target_options));
1036 fprintf_unfiltered (file,
1037 "gdbarch_dump: gdbarch_gcore_bfd_target_p() = %d\n",
1038 gdbarch_gcore_bfd_target_p (gdbarch));
1039 fprintf_unfiltered (file,
1040 "gdbarch_dump: gcore_bfd_target = %s\n",
1041 pstring (gdbarch->gcore_bfd_target));
1042 fprintf_unfiltered (file,
1043 "gdbarch_dump: gdbarch_gdb_signal_from_target_p() = %d\n",
1044 gdbarch_gdb_signal_from_target_p (gdbarch));
1045 fprintf_unfiltered (file,
1046 "gdbarch_dump: gdb_signal_from_target = <%s>\n",
1047 host_address_to_string (gdbarch->gdb_signal_from_target));
1048 fprintf_unfiltered (file,
1049 "gdbarch_dump: gdbarch_gdb_signal_to_target_p() = %d\n",
1050 gdbarch_gdb_signal_to_target_p (gdbarch));
1051 fprintf_unfiltered (file,
1052 "gdbarch_dump: gdb_signal_to_target = <%s>\n",
1053 host_address_to_string (gdbarch->gdb_signal_to_target));
1054 fprintf_unfiltered (file,
1055 "gdbarch_dump: gen_return_address = <%s>\n",
1056 host_address_to_string (gdbarch->gen_return_address));
1057 fprintf_unfiltered (file,
1058 "gdbarch_dump: gdbarch_get_longjmp_target_p() = %d\n",
1059 gdbarch_get_longjmp_target_p (gdbarch));
1060 fprintf_unfiltered (file,
1061 "gdbarch_dump: get_longjmp_target = <%s>\n",
1062 host_address_to_string (gdbarch->get_longjmp_target));
1063 fprintf_unfiltered (file,
1064 "gdbarch_dump: get_pc_address_flags = <%s>\n",
1065 host_address_to_string (gdbarch->get_pc_address_flags));
1066 fprintf_unfiltered (file,
1067 "gdbarch_dump: gdbarch_get_siginfo_type_p() = %d\n",
1068 gdbarch_get_siginfo_type_p (gdbarch));
1069 fprintf_unfiltered (file,
1070 "gdbarch_dump: get_siginfo_type = <%s>\n",
1071 host_address_to_string (gdbarch->get_siginfo_type));
1072 fprintf_unfiltered (file,
1073 "gdbarch_dump: gdbarch_get_syscall_number_p() = %d\n",
1074 gdbarch_get_syscall_number_p (gdbarch));
1075 fprintf_unfiltered (file,
1076 "gdbarch_dump: get_syscall_number = <%s>\n",
1077 host_address_to_string (gdbarch->get_syscall_number));
1078 fprintf_unfiltered (file,
1079 "gdbarch_dump: gdbarch_get_thread_local_address_p() = %d\n",
1080 gdbarch_get_thread_local_address_p (gdbarch));
1081 fprintf_unfiltered (file,
1082 "gdbarch_dump: get_thread_local_address = <%s>\n",
1083 host_address_to_string (gdbarch->get_thread_local_address));
1084 fprintf_unfiltered (file,
1085 "gdbarch_dump: gnu_triplet_regexp = <%s>\n",
1086 host_address_to_string (gdbarch->gnu_triplet_regexp));
1087 fprintf_unfiltered (file,
1088 "gdbarch_dump: guess_tracepoint_registers = <%s>\n",
1089 host_address_to_string (gdbarch->guess_tracepoint_registers));
1090 fprintf_unfiltered (file,
1091 "gdbarch_dump: half_bit = %s\n",
1092 plongest (gdbarch->half_bit));
1093 fprintf_unfiltered (file,
1094 "gdbarch_dump: half_format = %s\n",
1095 pformat (gdbarch->half_format));
1096 fprintf_unfiltered (file,
1097 "gdbarch_dump: gdbarch_handle_segmentation_fault_p() = %d\n",
1098 gdbarch_handle_segmentation_fault_p (gdbarch));
1099 fprintf_unfiltered (file,
1100 "gdbarch_dump: handle_segmentation_fault = <%s>\n",
1101 host_address_to_string (gdbarch->handle_segmentation_fault));
1102 fprintf_unfiltered (file,
1103 "gdbarch_dump: has_dos_based_file_system = %s\n",
1104 plongest (gdbarch->has_dos_based_file_system));
1105 fprintf_unfiltered (file,
1106 "gdbarch_dump: has_global_breakpoints = %s\n",
1107 plongest (gdbarch->has_global_breakpoints));
1108 fprintf_unfiltered (file,
1109 "gdbarch_dump: has_global_solist = %s\n",
1110 plongest (gdbarch->has_global_solist));
1111 fprintf_unfiltered (file,
1112 "gdbarch_dump: has_shared_address_space = <%s>\n",
1113 host_address_to_string (gdbarch->has_shared_address_space));
1114 fprintf_unfiltered (file,
1115 "gdbarch_dump: have_nonsteppable_watchpoint = %s\n",
1116 plongest (gdbarch->have_nonsteppable_watchpoint));
1117 fprintf_unfiltered (file,
1118 "gdbarch_dump: in_indirect_branch_thunk = <%s>\n",
1119 host_address_to_string (gdbarch->in_indirect_branch_thunk));
1120 fprintf_unfiltered (file,
1121 "gdbarch_dump: in_solib_return_trampoline = <%s>\n",
1122 host_address_to_string (gdbarch->in_solib_return_trampoline));
1123 fprintf_unfiltered (file,
1124 "gdbarch_dump: infcall_mmap = <%s>\n",
1125 host_address_to_string (gdbarch->infcall_mmap));
1126 fprintf_unfiltered (file,
1127 "gdbarch_dump: infcall_munmap = <%s>\n",
1128 host_address_to_string (gdbarch->infcall_munmap));
1129 fprintf_unfiltered (file,
1130 "gdbarch_dump: gdbarch_info_proc_p() = %d\n",
1131 gdbarch_info_proc_p (gdbarch));
1132 fprintf_unfiltered (file,
1133 "gdbarch_dump: info_proc = <%s>\n",
1134 host_address_to_string (gdbarch->info_proc));
1135 fprintf_unfiltered (file,
1136 "gdbarch_dump: inner_than = <%s>\n",
1137 host_address_to_string (gdbarch->inner_than));
1138 fprintf_unfiltered (file,
1139 "gdbarch_dump: insn_is_call = <%s>\n",
1140 host_address_to_string (gdbarch->insn_is_call));
1141 fprintf_unfiltered (file,
1142 "gdbarch_dump: insn_is_jump = <%s>\n",
1143 host_address_to_string (gdbarch->insn_is_jump));
1144 fprintf_unfiltered (file,
1145 "gdbarch_dump: insn_is_ret = <%s>\n",
1146 host_address_to_string (gdbarch->insn_is_ret));
1147 fprintf_unfiltered (file,
1148 "gdbarch_dump: int_bit = %s\n",
1149 plongest (gdbarch->int_bit));
1150 fprintf_unfiltered (file,
1151 "gdbarch_dump: gdbarch_integer_to_address_p() = %d\n",
1152 gdbarch_integer_to_address_p (gdbarch));
1153 fprintf_unfiltered (file,
1154 "gdbarch_dump: integer_to_address = <%s>\n",
1155 host_address_to_string (gdbarch->integer_to_address));
1156 fprintf_unfiltered (file,
1157 "gdbarch_dump: iterate_over_objfiles_in_search_order = <%s>\n",
1158 host_address_to_string (gdbarch->iterate_over_objfiles_in_search_order));
1159 fprintf_unfiltered (file,
1160 "gdbarch_dump: gdbarch_iterate_over_regset_sections_p() = %d\n",
1161 gdbarch_iterate_over_regset_sections_p (gdbarch));
1162 fprintf_unfiltered (file,
1163 "gdbarch_dump: iterate_over_regset_sections = <%s>\n",
1164 host_address_to_string (gdbarch->iterate_over_regset_sections));
1165 fprintf_unfiltered (file,
1166 "gdbarch_dump: long_bit = %s\n",
1167 plongest (gdbarch->long_bit));
1168 fprintf_unfiltered (file,
1169 "gdbarch_dump: long_double_bit = %s\n",
1170 plongest (gdbarch->long_double_bit));
1171 fprintf_unfiltered (file,
1172 "gdbarch_dump: long_double_format = %s\n",
1173 pformat (gdbarch->long_double_format));
1174 fprintf_unfiltered (file,
1175 "gdbarch_dump: long_long_bit = %s\n",
1176 plongest (gdbarch->long_long_bit));
1177 fprintf_unfiltered (file,
1178 "gdbarch_dump: gdbarch_make_corefile_notes_p() = %d\n",
1179 gdbarch_make_corefile_notes_p (gdbarch));
1180 fprintf_unfiltered (file,
1181 "gdbarch_dump: make_corefile_notes = <%s>\n",
1182 host_address_to_string (gdbarch->make_corefile_notes));
1183 fprintf_unfiltered (file,
1184 "gdbarch_dump: make_symbol_special = <%s>\n",
1185 host_address_to_string (gdbarch->make_symbol_special));
1186 fprintf_unfiltered (file,
1187 "gdbarch_dump: gdbarch_max_insn_length_p() = %d\n",
1188 gdbarch_max_insn_length_p (gdbarch));
1189 fprintf_unfiltered (file,
1190 "gdbarch_dump: max_insn_length = %s\n",
1191 plongest (gdbarch->max_insn_length));
1192 fprintf_unfiltered (file,
1193 "gdbarch_dump: memory_insert_breakpoint = <%s>\n",
1194 host_address_to_string (gdbarch->memory_insert_breakpoint));
1195 fprintf_unfiltered (file,
1196 "gdbarch_dump: memory_remove_breakpoint = <%s>\n",
1197 host_address_to_string (gdbarch->memory_remove_breakpoint));
1198 fprintf_unfiltered (file,
1199 "gdbarch_dump: num_pseudo_regs = %s\n",
1200 plongest (gdbarch->num_pseudo_regs));
1201 fprintf_unfiltered (file,
1202 "gdbarch_dump: num_regs = %s\n",
1203 plongest (gdbarch->num_regs));
1204 fprintf_unfiltered (file,
1205 "gdbarch_dump: osabi = %s\n",
1206 plongest (gdbarch->osabi));
1207 fprintf_unfiltered (file,
1208 "gdbarch_dump: gdbarch_overlay_update_p() = %d\n",
1209 gdbarch_overlay_update_p (gdbarch));
1210 fprintf_unfiltered (file,
1211 "gdbarch_dump: overlay_update = <%s>\n",
1212 host_address_to_string (gdbarch->overlay_update));
1213 fprintf_unfiltered (file,
1214 "gdbarch_dump: pc_regnum = %s\n",
1215 plongest (gdbarch->pc_regnum));
1216 fprintf_unfiltered (file,
1217 "gdbarch_dump: pointer_to_address = <%s>\n",
1218 host_address_to_string (gdbarch->pointer_to_address));
1219 fprintf_unfiltered (file,
1220 "gdbarch_dump: print_auxv_entry = <%s>\n",
1221 host_address_to_string (gdbarch->print_auxv_entry));
1222 fprintf_unfiltered (file,
1223 "gdbarch_dump: print_float_info = <%s>\n",
1224 host_address_to_string (gdbarch->print_float_info));
1225 fprintf_unfiltered (file,
1226 "gdbarch_dump: print_insn = <%s>\n",
1227 host_address_to_string (gdbarch->print_insn));
1228 fprintf_unfiltered (file,
1229 "gdbarch_dump: print_registers_info = <%s>\n",
1230 host_address_to_string (gdbarch->print_registers_info));
1231 fprintf_unfiltered (file,
1232 "gdbarch_dump: gdbarch_print_vector_info_p() = %d\n",
1233 gdbarch_print_vector_info_p (gdbarch));
1234 fprintf_unfiltered (file,
1235 "gdbarch_dump: print_vector_info = <%s>\n",
1236 host_address_to_string (gdbarch->print_vector_info));
1237 fprintf_unfiltered (file,
1238 "gdbarch_dump: gdbarch_process_record_p() = %d\n",
1239 gdbarch_process_record_p (gdbarch));
1240 fprintf_unfiltered (file,
1241 "gdbarch_dump: process_record = <%s>\n",
1242 host_address_to_string (gdbarch->process_record));
1243 fprintf_unfiltered (file,
1244 "gdbarch_dump: gdbarch_process_record_signal_p() = %d\n",
1245 gdbarch_process_record_signal_p (gdbarch));
1246 fprintf_unfiltered (file,
1247 "gdbarch_dump: process_record_signal = <%s>\n",
1248 host_address_to_string (gdbarch->process_record_signal));
1249 fprintf_unfiltered (file,
1250 "gdbarch_dump: program_breakpoint_here_p = <%s>\n",
1251 host_address_to_string (gdbarch->program_breakpoint_here_p));
1252 fprintf_unfiltered (file,
1253 "gdbarch_dump: ps_regnum = %s\n",
1254 plongest (gdbarch->ps_regnum));
1255 fprintf_unfiltered (file,
1256 "gdbarch_dump: gdbarch_pseudo_register_read_p() = %d\n",
1257 gdbarch_pseudo_register_read_p (gdbarch));
1258 fprintf_unfiltered (file,
1259 "gdbarch_dump: pseudo_register_read = <%s>\n",
1260 host_address_to_string (gdbarch->pseudo_register_read));
1261 fprintf_unfiltered (file,
1262 "gdbarch_dump: gdbarch_pseudo_register_read_value_p() = %d\n",
1263 gdbarch_pseudo_register_read_value_p (gdbarch));
1264 fprintf_unfiltered (file,
1265 "gdbarch_dump: pseudo_register_read_value = <%s>\n",
1266 host_address_to_string (gdbarch->pseudo_register_read_value));
1267 fprintf_unfiltered (file,
1268 "gdbarch_dump: gdbarch_pseudo_register_write_p() = %d\n",
1269 gdbarch_pseudo_register_write_p (gdbarch));
1270 fprintf_unfiltered (file,
1271 "gdbarch_dump: pseudo_register_write = <%s>\n",
1272 host_address_to_string (gdbarch->pseudo_register_write));
1273 fprintf_unfiltered (file,
1274 "gdbarch_dump: ptr_bit = %s\n",
1275 plongest (gdbarch->ptr_bit));
1276 fprintf_unfiltered (file,
1277 "gdbarch_dump: gdbarch_push_dummy_call_p() = %d\n",
1278 gdbarch_push_dummy_call_p (gdbarch));
1279 fprintf_unfiltered (file,
1280 "gdbarch_dump: push_dummy_call = <%s>\n",
1281 host_address_to_string (gdbarch->push_dummy_call));
1282 fprintf_unfiltered (file,
1283 "gdbarch_dump: gdbarch_push_dummy_code_p() = %d\n",
1284 gdbarch_push_dummy_code_p (gdbarch));
1285 fprintf_unfiltered (file,
1286 "gdbarch_dump: push_dummy_code = <%s>\n",
1287 host_address_to_string (gdbarch->push_dummy_code));
1288 fprintf_unfiltered (file,
1289 "gdbarch_dump: ravenscar_ops = %s\n",
1290 host_address_to_string (gdbarch->ravenscar_ops));
1291 fprintf_unfiltered (file,
1292 "gdbarch_dump: gdbarch_read_pc_p() = %d\n",
1293 gdbarch_read_pc_p (gdbarch));
1294 fprintf_unfiltered (file,
1295 "gdbarch_dump: read_pc = <%s>\n",
1296 host_address_to_string (gdbarch->read_pc));
1297 fprintf_unfiltered (file,
1298 "gdbarch_dump: gdbarch_record_special_symbol_p() = %d\n",
1299 gdbarch_record_special_symbol_p (gdbarch));
1300 fprintf_unfiltered (file,
1301 "gdbarch_dump: record_special_symbol = <%s>\n",
1302 host_address_to_string (gdbarch->record_special_symbol));
1303 fprintf_unfiltered (file,
1304 "gdbarch_dump: register_name = <%s>\n",
1305 host_address_to_string (gdbarch->register_name));
1306 fprintf_unfiltered (file,
1307 "gdbarch_dump: register_reggroup_p = <%s>\n",
1308 host_address_to_string (gdbarch->register_reggroup_p));
1309 fprintf_unfiltered (file,
1310 "gdbarch_dump: register_sim_regno = <%s>\n",
1311 host_address_to_string (gdbarch->register_sim_regno));
1312 fprintf_unfiltered (file,
1313 "gdbarch_dump: register_to_value = <%s>\n",
1314 host_address_to_string (gdbarch->register_to_value));
1315 fprintf_unfiltered (file,
1316 "gdbarch_dump: gdbarch_register_type_p() = %d\n",
1317 gdbarch_register_type_p (gdbarch));
1318 fprintf_unfiltered (file,
1319 "gdbarch_dump: register_type = <%s>\n",
1320 host_address_to_string (gdbarch->register_type));
1321 fprintf_unfiltered (file,
1322 "gdbarch_dump: gdbarch_relocate_instruction_p() = %d\n",
1323 gdbarch_relocate_instruction_p (gdbarch));
1324 fprintf_unfiltered (file,
1325 "gdbarch_dump: relocate_instruction = <%s>\n",
1326 host_address_to_string (gdbarch->relocate_instruction));
1327 fprintf_unfiltered (file,
1328 "gdbarch_dump: remote_register_number = <%s>\n",
1329 host_address_to_string (gdbarch->remote_register_number));
1330 fprintf_unfiltered (file,
1331 "gdbarch_dump: return_in_first_hidden_param_p = <%s>\n",
1332 host_address_to_string (gdbarch->return_in_first_hidden_param_p));
1333 fprintf_unfiltered (file,
1334 "gdbarch_dump: gdbarch_return_value_p() = %d\n",
1335 gdbarch_return_value_p (gdbarch));
1336 fprintf_unfiltered (file,
1337 "gdbarch_dump: return_value = <%s>\n",
1338 host_address_to_string (gdbarch->return_value));
1339 fprintf_unfiltered (file,
1340 "gdbarch_dump: sdb_reg_to_regnum = <%s>\n",
1341 host_address_to_string (gdbarch->sdb_reg_to_regnum));
1342 fprintf_unfiltered (file,
1343 "gdbarch_dump: short_bit = %s\n",
1344 plongest (gdbarch->short_bit));
1345 fprintf_unfiltered (file,
1346 "gdbarch_dump: significant_addr_bit = %s\n",
1347 plongest (gdbarch->significant_addr_bit));
1348 fprintf_unfiltered (file,
1349 "gdbarch_dump: gdbarch_single_step_through_delay_p() = %d\n",
1350 gdbarch_single_step_through_delay_p (gdbarch));
1351 fprintf_unfiltered (file,
1352 "gdbarch_dump: single_step_through_delay = <%s>\n",
1353 host_address_to_string (gdbarch->single_step_through_delay));
1354 fprintf_unfiltered (file,
1355 "gdbarch_dump: gdbarch_skip_entrypoint_p() = %d\n",
1356 gdbarch_skip_entrypoint_p (gdbarch));
1357 fprintf_unfiltered (file,
1358 "gdbarch_dump: skip_entrypoint = <%s>\n",
1359 host_address_to_string (gdbarch->skip_entrypoint));
1360 fprintf_unfiltered (file,
1361 "gdbarch_dump: gdbarch_skip_main_prologue_p() = %d\n",
1362 gdbarch_skip_main_prologue_p (gdbarch));
1363 fprintf_unfiltered (file,
1364 "gdbarch_dump: skip_main_prologue = <%s>\n",
1365 host_address_to_string (gdbarch->skip_main_prologue));
1366 fprintf_unfiltered (file,
1367 "gdbarch_dump: skip_permanent_breakpoint = <%s>\n",
1368 host_address_to_string (gdbarch->skip_permanent_breakpoint));
1369 fprintf_unfiltered (file,
1370 "gdbarch_dump: skip_prologue = <%s>\n",
1371 host_address_to_string (gdbarch->skip_prologue));
1372 fprintf_unfiltered (file,
1373 "gdbarch_dump: skip_solib_resolver = <%s>\n",
1374 host_address_to_string (gdbarch->skip_solib_resolver));
1375 fprintf_unfiltered (file,
1376 "gdbarch_dump: skip_trampoline_code = <%s>\n",
1377 host_address_to_string (gdbarch->skip_trampoline_code));
1378 fprintf_unfiltered (file,
1379 "gdbarch_dump: gdbarch_software_single_step_p() = %d\n",
1380 gdbarch_software_single_step_p (gdbarch));
1381 fprintf_unfiltered (file,
1382 "gdbarch_dump: software_single_step = <%s>\n",
1383 host_address_to_string (gdbarch->software_single_step));
1384 fprintf_unfiltered (file,
1385 "gdbarch_dump: sofun_address_maybe_missing = %s\n",
1386 plongest (gdbarch->sofun_address_maybe_missing));
1387 fprintf_unfiltered (file,
1388 "gdbarch_dump: solib_symbols_extension = %s\n",
1389 pstring (gdbarch->solib_symbols_extension));
1390 fprintf_unfiltered (file,
1391 "gdbarch_dump: sp_regnum = %s\n",
1392 plongest (gdbarch->sp_regnum));
1393 fprintf_unfiltered (file,
1394 "gdbarch_dump: stab_reg_to_regnum = <%s>\n",
1395 host_address_to_string (gdbarch->stab_reg_to_regnum));
1396 fprintf_unfiltered (file,
1397 "gdbarch_dump: stabs_argument_has_addr = <%s>\n",
1398 host_address_to_string (gdbarch->stabs_argument_has_addr));
1399 fprintf_unfiltered (file,
1400 "gdbarch_dump: stack_frame_destroyed_p = <%s>\n",
1401 host_address_to_string (gdbarch->stack_frame_destroyed_p));
1402 fprintf_unfiltered (file,
1403 "gdbarch_dump: gdbarch_stap_adjust_register_p() = %d\n",
1404 gdbarch_stap_adjust_register_p (gdbarch));
1405 fprintf_unfiltered (file,
1406 "gdbarch_dump: stap_adjust_register = <%s>\n",
1407 host_address_to_string (gdbarch->stap_adjust_register));
1408 fprintf_unfiltered (file,
1409 "gdbarch_dump: stap_gdb_register_prefix = %s\n",
1410 pstring (gdbarch->stap_gdb_register_prefix));
1411 fprintf_unfiltered (file,
1412 "gdbarch_dump: stap_gdb_register_suffix = %s\n",
1413 pstring (gdbarch->stap_gdb_register_suffix));
1414 fprintf_unfiltered (file,
1415 "gdbarch_dump: stap_integer_prefixes = %s\n",
1416 pstring_list (gdbarch->stap_integer_prefixes));
1417 fprintf_unfiltered (file,
1418 "gdbarch_dump: stap_integer_suffixes = %s\n",
1419 pstring_list (gdbarch->stap_integer_suffixes));
1420 fprintf_unfiltered (file,
1421 "gdbarch_dump: gdbarch_stap_is_single_operand_p() = %d\n",
1422 gdbarch_stap_is_single_operand_p (gdbarch));
1423 fprintf_unfiltered (file,
1424 "gdbarch_dump: stap_is_single_operand = <%s>\n",
1425 host_address_to_string (gdbarch->stap_is_single_operand));
1426 fprintf_unfiltered (file,
1427 "gdbarch_dump: gdbarch_stap_parse_special_token_p() = %d\n",
1428 gdbarch_stap_parse_special_token_p (gdbarch));
1429 fprintf_unfiltered (file,
1430 "gdbarch_dump: stap_parse_special_token = <%s>\n",
1431 host_address_to_string (gdbarch->stap_parse_special_token));
1432 fprintf_unfiltered (file,
1433 "gdbarch_dump: stap_register_indirection_prefixes = %s\n",
1434 pstring_list (gdbarch->stap_register_indirection_prefixes));
1435 fprintf_unfiltered (file,
1436 "gdbarch_dump: stap_register_indirection_suffixes = %s\n",
1437 pstring_list (gdbarch->stap_register_indirection_suffixes));
1438 fprintf_unfiltered (file,
1439 "gdbarch_dump: stap_register_prefixes = %s\n",
1440 pstring_list (gdbarch->stap_register_prefixes));
1441 fprintf_unfiltered (file,
1442 "gdbarch_dump: stap_register_suffixes = %s\n",
1443 pstring_list (gdbarch->stap_register_suffixes));
1444 fprintf_unfiltered (file,
1445 "gdbarch_dump: sw_breakpoint_from_kind = <%s>\n",
1446 host_address_to_string (gdbarch->sw_breakpoint_from_kind));
1447 fprintf_unfiltered (file,
1448 "gdbarch_dump: syscalls_info = %s\n",
1449 host_address_to_string (gdbarch->syscalls_info));
1450 fprintf_unfiltered (file,
1451 "gdbarch_dump: target_desc = %s\n",
1452 host_address_to_string (gdbarch->target_desc));
1453 fprintf_unfiltered (file,
1454 "gdbarch_dump: type_align = <%s>\n",
1455 host_address_to_string (gdbarch->type_align));
1456 fprintf_unfiltered (file,
1457 "gdbarch_dump: unwind_pc = <%s>\n",
1458 host_address_to_string (gdbarch->unwind_pc));
1459 fprintf_unfiltered (file,
1460 "gdbarch_dump: unwind_sp = <%s>\n",
1461 host_address_to_string (gdbarch->unwind_sp));
1462 fprintf_unfiltered (file,
1463 "gdbarch_dump: valid_disassembler_options = %s\n",
1464 host_address_to_string (gdbarch->valid_disassembler_options));
1465 fprintf_unfiltered (file,
1466 "gdbarch_dump: value_from_register = <%s>\n",
1467 host_address_to_string (gdbarch->value_from_register));
1468 fprintf_unfiltered (file,
1469 "gdbarch_dump: value_to_register = <%s>\n",
1470 host_address_to_string (gdbarch->value_to_register));
1471 fprintf_unfiltered (file,
1472 "gdbarch_dump: vbit_in_delta = %s\n",
1473 plongest (gdbarch->vbit_in_delta));
1474 fprintf_unfiltered (file,
1475 "gdbarch_dump: virtual_frame_pointer = <%s>\n",
1476 host_address_to_string (gdbarch->virtual_frame_pointer));
1477 fprintf_unfiltered (file,
1478 "gdbarch_dump: vsyscall_range = <%s>\n",
1479 host_address_to_string (gdbarch->vsyscall_range));
1480 fprintf_unfiltered (file,
1481 "gdbarch_dump: vtable_function_descriptors = %s\n",
1482 plongest (gdbarch->vtable_function_descriptors));
1483 fprintf_unfiltered (file,
1484 "gdbarch_dump: wchar_bit = %s\n",
1485 plongest (gdbarch->wchar_bit));
1486 fprintf_unfiltered (file,
1487 "gdbarch_dump: wchar_signed = %s\n",
1488 plongest (gdbarch->wchar_signed));
1489 fprintf_unfiltered (file,
1490 "gdbarch_dump: gdbarch_write_pc_p() = %d\n",
1491 gdbarch_write_pc_p (gdbarch));
1492 fprintf_unfiltered (file,
1493 "gdbarch_dump: write_pc = <%s>\n",
1494 host_address_to_string (gdbarch->write_pc));
1495 fprintf_unfiltered (file,
1496 "gdbarch_dump: xml_syscall_file = %s\n",
1497 pstring (gdbarch->xml_syscall_file));
1498 if (gdbarch->dump_tdep != NULL)
1499 gdbarch->dump_tdep (gdbarch, file);
1500 }
1501
1502 struct gdbarch_tdep *
1503 gdbarch_tdep (struct gdbarch *gdbarch)
1504 {
1505 if (gdbarch_debug >= 2)
1506 fprintf_unfiltered (gdb_stdlog, "gdbarch_tdep called\n");
1507 return gdbarch->tdep;
1508 }
1509
1510
1511 const struct bfd_arch_info *
1512 gdbarch_bfd_arch_info (struct gdbarch *gdbarch)
1513 {
1514 gdb_assert (gdbarch != NULL);
1515 if (gdbarch_debug >= 2)
1516 fprintf_unfiltered (gdb_stdlog, "gdbarch_bfd_arch_info called\n");
1517 return gdbarch->bfd_arch_info;
1518 }
1519
1520 enum bfd_endian
1521 gdbarch_byte_order (struct gdbarch *gdbarch)
1522 {
1523 gdb_assert (gdbarch != NULL);
1524 if (gdbarch_debug >= 2)
1525 fprintf_unfiltered (gdb_stdlog, "gdbarch_byte_order called\n");
1526 return gdbarch->byte_order;
1527 }
1528
1529 enum bfd_endian
1530 gdbarch_byte_order_for_code (struct gdbarch *gdbarch)
1531 {
1532 gdb_assert (gdbarch != NULL);
1533 if (gdbarch_debug >= 2)
1534 fprintf_unfiltered (gdb_stdlog, "gdbarch_byte_order_for_code called\n");
1535 return gdbarch->byte_order_for_code;
1536 }
1537
1538 enum gdb_osabi
1539 gdbarch_osabi (struct gdbarch *gdbarch)
1540 {
1541 gdb_assert (gdbarch != NULL);
1542 if (gdbarch_debug >= 2)
1543 fprintf_unfiltered (gdb_stdlog, "gdbarch_osabi called\n");
1544 return gdbarch->osabi;
1545 }
1546
1547 const struct target_desc *
1548 gdbarch_target_desc (struct gdbarch *gdbarch)
1549 {
1550 gdb_assert (gdbarch != NULL);
1551 if (gdbarch_debug >= 2)
1552 fprintf_unfiltered (gdb_stdlog, "gdbarch_target_desc called\n");
1553 return gdbarch->target_desc;
1554 }
1555
1556 int
1557 gdbarch_short_bit (struct gdbarch *gdbarch)
1558 {
1559 gdb_assert (gdbarch != NULL);
1560 /* Skip verify of short_bit, invalid_p == 0 */
1561 if (gdbarch_debug >= 2)
1562 fprintf_unfiltered (gdb_stdlog, "gdbarch_short_bit called\n");
1563 return gdbarch->short_bit;
1564 }
1565
1566 void
1567 set_gdbarch_short_bit (struct gdbarch *gdbarch,
1568 int short_bit)
1569 {
1570 gdbarch->short_bit = short_bit;
1571 }
1572
1573 int
1574 gdbarch_int_bit (struct gdbarch *gdbarch)
1575 {
1576 gdb_assert (gdbarch != NULL);
1577 /* Skip verify of int_bit, invalid_p == 0 */
1578 if (gdbarch_debug >= 2)
1579 fprintf_unfiltered (gdb_stdlog, "gdbarch_int_bit called\n");
1580 return gdbarch->int_bit;
1581 }
1582
1583 void
1584 set_gdbarch_int_bit (struct gdbarch *gdbarch,
1585 int int_bit)
1586 {
1587 gdbarch->int_bit = int_bit;
1588 }
1589
1590 int
1591 gdbarch_long_bit (struct gdbarch *gdbarch)
1592 {
1593 gdb_assert (gdbarch != NULL);
1594 /* Skip verify of long_bit, invalid_p == 0 */
1595 if (gdbarch_debug >= 2)
1596 fprintf_unfiltered (gdb_stdlog, "gdbarch_long_bit called\n");
1597 return gdbarch->long_bit;
1598 }
1599
1600 void
1601 set_gdbarch_long_bit (struct gdbarch *gdbarch,
1602 int long_bit)
1603 {
1604 gdbarch->long_bit = long_bit;
1605 }
1606
1607 int
1608 gdbarch_long_long_bit (struct gdbarch *gdbarch)
1609 {
1610 gdb_assert (gdbarch != NULL);
1611 /* Skip verify of long_long_bit, invalid_p == 0 */
1612 if (gdbarch_debug >= 2)
1613 fprintf_unfiltered (gdb_stdlog, "gdbarch_long_long_bit called\n");
1614 return gdbarch->long_long_bit;
1615 }
1616
1617 void
1618 set_gdbarch_long_long_bit (struct gdbarch *gdbarch,
1619 int long_long_bit)
1620 {
1621 gdbarch->long_long_bit = long_long_bit;
1622 }
1623
1624 int
1625 gdbarch_half_bit (struct gdbarch *gdbarch)
1626 {
1627 gdb_assert (gdbarch != NULL);
1628 /* Skip verify of half_bit, invalid_p == 0 */
1629 if (gdbarch_debug >= 2)
1630 fprintf_unfiltered (gdb_stdlog, "gdbarch_half_bit called\n");
1631 return gdbarch->half_bit;
1632 }
1633
1634 void
1635 set_gdbarch_half_bit (struct gdbarch *gdbarch,
1636 int half_bit)
1637 {
1638 gdbarch->half_bit = half_bit;
1639 }
1640
1641 const struct floatformat **
1642 gdbarch_half_format (struct gdbarch *gdbarch)
1643 {
1644 gdb_assert (gdbarch != NULL);
1645 if (gdbarch_debug >= 2)
1646 fprintf_unfiltered (gdb_stdlog, "gdbarch_half_format called\n");
1647 return gdbarch->half_format;
1648 }
1649
1650 void
1651 set_gdbarch_half_format (struct gdbarch *gdbarch,
1652 const struct floatformat ** half_format)
1653 {
1654 gdbarch->half_format = half_format;
1655 }
1656
1657 int
1658 gdbarch_float_bit (struct gdbarch *gdbarch)
1659 {
1660 gdb_assert (gdbarch != NULL);
1661 /* Skip verify of float_bit, invalid_p == 0 */
1662 if (gdbarch_debug >= 2)
1663 fprintf_unfiltered (gdb_stdlog, "gdbarch_float_bit called\n");
1664 return gdbarch->float_bit;
1665 }
1666
1667 void
1668 set_gdbarch_float_bit (struct gdbarch *gdbarch,
1669 int float_bit)
1670 {
1671 gdbarch->float_bit = float_bit;
1672 }
1673
1674 const struct floatformat **
1675 gdbarch_float_format (struct gdbarch *gdbarch)
1676 {
1677 gdb_assert (gdbarch != NULL);
1678 if (gdbarch_debug >= 2)
1679 fprintf_unfiltered (gdb_stdlog, "gdbarch_float_format called\n");
1680 return gdbarch->float_format;
1681 }
1682
1683 void
1684 set_gdbarch_float_format (struct gdbarch *gdbarch,
1685 const struct floatformat ** float_format)
1686 {
1687 gdbarch->float_format = float_format;
1688 }
1689
1690 int
1691 gdbarch_double_bit (struct gdbarch *gdbarch)
1692 {
1693 gdb_assert (gdbarch != NULL);
1694 /* Skip verify of double_bit, invalid_p == 0 */
1695 if (gdbarch_debug >= 2)
1696 fprintf_unfiltered (gdb_stdlog, "gdbarch_double_bit called\n");
1697 return gdbarch->double_bit;
1698 }
1699
1700 void
1701 set_gdbarch_double_bit (struct gdbarch *gdbarch,
1702 int double_bit)
1703 {
1704 gdbarch->double_bit = double_bit;
1705 }
1706
1707 const struct floatformat **
1708 gdbarch_double_format (struct gdbarch *gdbarch)
1709 {
1710 gdb_assert (gdbarch != NULL);
1711 if (gdbarch_debug >= 2)
1712 fprintf_unfiltered (gdb_stdlog, "gdbarch_double_format called\n");
1713 return gdbarch->double_format;
1714 }
1715
1716 void
1717 set_gdbarch_double_format (struct gdbarch *gdbarch,
1718 const struct floatformat ** double_format)
1719 {
1720 gdbarch->double_format = double_format;
1721 }
1722
1723 int
1724 gdbarch_long_double_bit (struct gdbarch *gdbarch)
1725 {
1726 gdb_assert (gdbarch != NULL);
1727 /* Skip verify of long_double_bit, invalid_p == 0 */
1728 if (gdbarch_debug >= 2)
1729 fprintf_unfiltered (gdb_stdlog, "gdbarch_long_double_bit called\n");
1730 return gdbarch->long_double_bit;
1731 }
1732
1733 void
1734 set_gdbarch_long_double_bit (struct gdbarch *gdbarch,
1735 int long_double_bit)
1736 {
1737 gdbarch->long_double_bit = long_double_bit;
1738 }
1739
1740 const struct floatformat **
1741 gdbarch_long_double_format (struct gdbarch *gdbarch)
1742 {
1743 gdb_assert (gdbarch != NULL);
1744 if (gdbarch_debug >= 2)
1745 fprintf_unfiltered (gdb_stdlog, "gdbarch_long_double_format called\n");
1746 return gdbarch->long_double_format;
1747 }
1748
1749 void
1750 set_gdbarch_long_double_format (struct gdbarch *gdbarch,
1751 const struct floatformat ** long_double_format)
1752 {
1753 gdbarch->long_double_format = long_double_format;
1754 }
1755
1756 int
1757 gdbarch_wchar_bit (struct gdbarch *gdbarch)
1758 {
1759 gdb_assert (gdbarch != NULL);
1760 /* Skip verify of wchar_bit, invalid_p == 0 */
1761 if (gdbarch_debug >= 2)
1762 fprintf_unfiltered (gdb_stdlog, "gdbarch_wchar_bit called\n");
1763 return gdbarch->wchar_bit;
1764 }
1765
1766 void
1767 set_gdbarch_wchar_bit (struct gdbarch *gdbarch,
1768 int wchar_bit)
1769 {
1770 gdbarch->wchar_bit = wchar_bit;
1771 }
1772
1773 int
1774 gdbarch_wchar_signed (struct gdbarch *gdbarch)
1775 {
1776 gdb_assert (gdbarch != NULL);
1777 /* Check variable changed from pre-default. */
1778 gdb_assert (gdbarch->wchar_signed != -1);
1779 if (gdbarch_debug >= 2)
1780 fprintf_unfiltered (gdb_stdlog, "gdbarch_wchar_signed called\n");
1781 return gdbarch->wchar_signed;
1782 }
1783
1784 void
1785 set_gdbarch_wchar_signed (struct gdbarch *gdbarch,
1786 int wchar_signed)
1787 {
1788 gdbarch->wchar_signed = wchar_signed;
1789 }
1790
1791 const struct floatformat **
1792 gdbarch_floatformat_for_type (struct gdbarch *gdbarch, const char *name, int length)
1793 {
1794 gdb_assert (gdbarch != NULL);
1795 gdb_assert (gdbarch->floatformat_for_type != NULL);
1796 if (gdbarch_debug >= 2)
1797 fprintf_unfiltered (gdb_stdlog, "gdbarch_floatformat_for_type called\n");
1798 return gdbarch->floatformat_for_type (gdbarch, name, length);
1799 }
1800
1801 void
1802 set_gdbarch_floatformat_for_type (struct gdbarch *gdbarch,
1803 gdbarch_floatformat_for_type_ftype floatformat_for_type)
1804 {
1805 gdbarch->floatformat_for_type = floatformat_for_type;
1806 }
1807
1808 int
1809 gdbarch_ptr_bit (struct gdbarch *gdbarch)
1810 {
1811 gdb_assert (gdbarch != NULL);
1812 /* Skip verify of ptr_bit, invalid_p == 0 */
1813 if (gdbarch_debug >= 2)
1814 fprintf_unfiltered (gdb_stdlog, "gdbarch_ptr_bit called\n");
1815 return gdbarch->ptr_bit;
1816 }
1817
1818 void
1819 set_gdbarch_ptr_bit (struct gdbarch *gdbarch,
1820 int ptr_bit)
1821 {
1822 gdbarch->ptr_bit = ptr_bit;
1823 }
1824
1825 int
1826 gdbarch_addr_bit (struct gdbarch *gdbarch)
1827 {
1828 gdb_assert (gdbarch != NULL);
1829 /* Check variable changed from pre-default. */
1830 gdb_assert (gdbarch->addr_bit != 0);
1831 if (gdbarch_debug >= 2)
1832 fprintf_unfiltered (gdb_stdlog, "gdbarch_addr_bit called\n");
1833 return gdbarch->addr_bit;
1834 }
1835
1836 void
1837 set_gdbarch_addr_bit (struct gdbarch *gdbarch,
1838 int addr_bit)
1839 {
1840 gdbarch->addr_bit = addr_bit;
1841 }
1842
1843 int
1844 gdbarch_dwarf2_addr_size (struct gdbarch *gdbarch)
1845 {
1846 gdb_assert (gdbarch != NULL);
1847 /* Check variable changed from pre-default. */
1848 gdb_assert (gdbarch->dwarf2_addr_size != 0);
1849 if (gdbarch_debug >= 2)
1850 fprintf_unfiltered (gdb_stdlog, "gdbarch_dwarf2_addr_size called\n");
1851 return gdbarch->dwarf2_addr_size;
1852 }
1853
1854 void
1855 set_gdbarch_dwarf2_addr_size (struct gdbarch *gdbarch,
1856 int dwarf2_addr_size)
1857 {
1858 gdbarch->dwarf2_addr_size = dwarf2_addr_size;
1859 }
1860
1861 int
1862 gdbarch_char_signed (struct gdbarch *gdbarch)
1863 {
1864 gdb_assert (gdbarch != NULL);
1865 /* Check variable changed from pre-default. */
1866 gdb_assert (gdbarch->char_signed != -1);
1867 if (gdbarch_debug >= 2)
1868 fprintf_unfiltered (gdb_stdlog, "gdbarch_char_signed called\n");
1869 return gdbarch->char_signed;
1870 }
1871
1872 void
1873 set_gdbarch_char_signed (struct gdbarch *gdbarch,
1874 int char_signed)
1875 {
1876 gdbarch->char_signed = char_signed;
1877 }
1878
1879 int
1880 gdbarch_read_pc_p (struct gdbarch *gdbarch)
1881 {
1882 gdb_assert (gdbarch != NULL);
1883 return gdbarch->read_pc != NULL;
1884 }
1885
1886 CORE_ADDR
1887 gdbarch_read_pc (struct gdbarch *gdbarch, readable_regcache *regcache)
1888 {
1889 gdb_assert (gdbarch != NULL);
1890 gdb_assert (gdbarch->read_pc != NULL);
1891 if (gdbarch_debug >= 2)
1892 fprintf_unfiltered (gdb_stdlog, "gdbarch_read_pc called\n");
1893 return gdbarch->read_pc (regcache);
1894 }
1895
1896 void
1897 set_gdbarch_read_pc (struct gdbarch *gdbarch,
1898 gdbarch_read_pc_ftype read_pc)
1899 {
1900 gdbarch->read_pc = read_pc;
1901 }
1902
1903 int
1904 gdbarch_write_pc_p (struct gdbarch *gdbarch)
1905 {
1906 gdb_assert (gdbarch != NULL);
1907 return gdbarch->write_pc != NULL;
1908 }
1909
1910 void
1911 gdbarch_write_pc (struct gdbarch *gdbarch, struct regcache *regcache, CORE_ADDR val)
1912 {
1913 gdb_assert (gdbarch != NULL);
1914 gdb_assert (gdbarch->write_pc != NULL);
1915 if (gdbarch_debug >= 2)
1916 fprintf_unfiltered (gdb_stdlog, "gdbarch_write_pc called\n");
1917 gdbarch->write_pc (regcache, val);
1918 }
1919
1920 void
1921 set_gdbarch_write_pc (struct gdbarch *gdbarch,
1922 gdbarch_write_pc_ftype write_pc)
1923 {
1924 gdbarch->write_pc = write_pc;
1925 }
1926
1927 void
1928 gdbarch_virtual_frame_pointer (struct gdbarch *gdbarch, CORE_ADDR pc, int *frame_regnum, LONGEST *frame_offset)
1929 {
1930 gdb_assert (gdbarch != NULL);
1931 gdb_assert (gdbarch->virtual_frame_pointer != NULL);
1932 if (gdbarch_debug >= 2)
1933 fprintf_unfiltered (gdb_stdlog, "gdbarch_virtual_frame_pointer called\n");
1934 gdbarch->virtual_frame_pointer (gdbarch, pc, frame_regnum, frame_offset);
1935 }
1936
1937 void
1938 set_gdbarch_virtual_frame_pointer (struct gdbarch *gdbarch,
1939 gdbarch_virtual_frame_pointer_ftype virtual_frame_pointer)
1940 {
1941 gdbarch->virtual_frame_pointer = virtual_frame_pointer;
1942 }
1943
1944 int
1945 gdbarch_pseudo_register_read_p (struct gdbarch *gdbarch)
1946 {
1947 gdb_assert (gdbarch != NULL);
1948 return gdbarch->pseudo_register_read != NULL;
1949 }
1950
1951 enum register_status
1952 gdbarch_pseudo_register_read (struct gdbarch *gdbarch, readable_regcache *regcache, int cookednum, gdb_byte *buf)
1953 {
1954 gdb_assert (gdbarch != NULL);
1955 gdb_assert (gdbarch->pseudo_register_read != NULL);
1956 if (gdbarch_debug >= 2)
1957 fprintf_unfiltered (gdb_stdlog, "gdbarch_pseudo_register_read called\n");
1958 return gdbarch->pseudo_register_read (gdbarch, regcache, cookednum, buf);
1959 }
1960
1961 void
1962 set_gdbarch_pseudo_register_read (struct gdbarch *gdbarch,
1963 gdbarch_pseudo_register_read_ftype pseudo_register_read)
1964 {
1965 gdbarch->pseudo_register_read = pseudo_register_read;
1966 }
1967
1968 int
1969 gdbarch_pseudo_register_read_value_p (struct gdbarch *gdbarch)
1970 {
1971 gdb_assert (gdbarch != NULL);
1972 return gdbarch->pseudo_register_read_value != NULL;
1973 }
1974
1975 struct value *
1976 gdbarch_pseudo_register_read_value (struct gdbarch *gdbarch, readable_regcache *regcache, int cookednum)
1977 {
1978 gdb_assert (gdbarch != NULL);
1979 gdb_assert (gdbarch->pseudo_register_read_value != NULL);
1980 if (gdbarch_debug >= 2)
1981 fprintf_unfiltered (gdb_stdlog, "gdbarch_pseudo_register_read_value called\n");
1982 return gdbarch->pseudo_register_read_value (gdbarch, regcache, cookednum);
1983 }
1984
1985 void
1986 set_gdbarch_pseudo_register_read_value (struct gdbarch *gdbarch,
1987 gdbarch_pseudo_register_read_value_ftype pseudo_register_read_value)
1988 {
1989 gdbarch->pseudo_register_read_value = pseudo_register_read_value;
1990 }
1991
1992 int
1993 gdbarch_pseudo_register_write_p (struct gdbarch *gdbarch)
1994 {
1995 gdb_assert (gdbarch != NULL);
1996 return gdbarch->pseudo_register_write != NULL;
1997 }
1998
1999 void
2000 gdbarch_pseudo_register_write (struct gdbarch *gdbarch, struct regcache *regcache, int cookednum, const gdb_byte *buf)
2001 {
2002 gdb_assert (gdbarch != NULL);
2003 gdb_assert (gdbarch->pseudo_register_write != NULL);
2004 if (gdbarch_debug >= 2)
2005 fprintf_unfiltered (gdb_stdlog, "gdbarch_pseudo_register_write called\n");
2006 gdbarch->pseudo_register_write (gdbarch, regcache, cookednum, buf);
2007 }
2008
2009 void
2010 set_gdbarch_pseudo_register_write (struct gdbarch *gdbarch,
2011 gdbarch_pseudo_register_write_ftype pseudo_register_write)
2012 {
2013 gdbarch->pseudo_register_write = pseudo_register_write;
2014 }
2015
2016 int
2017 gdbarch_num_regs (struct gdbarch *gdbarch)
2018 {
2019 gdb_assert (gdbarch != NULL);
2020 /* Check variable changed from pre-default. */
2021 gdb_assert (gdbarch->num_regs != -1);
2022 if (gdbarch_debug >= 2)
2023 fprintf_unfiltered (gdb_stdlog, "gdbarch_num_regs called\n");
2024 return gdbarch->num_regs;
2025 }
2026
2027 void
2028 set_gdbarch_num_regs (struct gdbarch *gdbarch,
2029 int num_regs)
2030 {
2031 gdbarch->num_regs = num_regs;
2032 }
2033
2034 int
2035 gdbarch_num_pseudo_regs (struct gdbarch *gdbarch)
2036 {
2037 gdb_assert (gdbarch != NULL);
2038 /* Skip verify of num_pseudo_regs, invalid_p == 0 */
2039 if (gdbarch_debug >= 2)
2040 fprintf_unfiltered (gdb_stdlog, "gdbarch_num_pseudo_regs called\n");
2041 return gdbarch->num_pseudo_regs;
2042 }
2043
2044 void
2045 set_gdbarch_num_pseudo_regs (struct gdbarch *gdbarch,
2046 int num_pseudo_regs)
2047 {
2048 gdbarch->num_pseudo_regs = num_pseudo_regs;
2049 }
2050
2051 int
2052 gdbarch_ax_pseudo_register_collect_p (struct gdbarch *gdbarch)
2053 {
2054 gdb_assert (gdbarch != NULL);
2055 return gdbarch->ax_pseudo_register_collect != NULL;
2056 }
2057
2058 int
2059 gdbarch_ax_pseudo_register_collect (struct gdbarch *gdbarch, struct agent_expr *ax, int reg)
2060 {
2061 gdb_assert (gdbarch != NULL);
2062 gdb_assert (gdbarch->ax_pseudo_register_collect != NULL);
2063 if (gdbarch_debug >= 2)
2064 fprintf_unfiltered (gdb_stdlog, "gdbarch_ax_pseudo_register_collect called\n");
2065 return gdbarch->ax_pseudo_register_collect (gdbarch, ax, reg);
2066 }
2067
2068 void
2069 set_gdbarch_ax_pseudo_register_collect (struct gdbarch *gdbarch,
2070 gdbarch_ax_pseudo_register_collect_ftype ax_pseudo_register_collect)
2071 {
2072 gdbarch->ax_pseudo_register_collect = ax_pseudo_register_collect;
2073 }
2074
2075 int
2076 gdbarch_ax_pseudo_register_push_stack_p (struct gdbarch *gdbarch)
2077 {
2078 gdb_assert (gdbarch != NULL);
2079 return gdbarch->ax_pseudo_register_push_stack != NULL;
2080 }
2081
2082 int
2083 gdbarch_ax_pseudo_register_push_stack (struct gdbarch *gdbarch, struct agent_expr *ax, int reg)
2084 {
2085 gdb_assert (gdbarch != NULL);
2086 gdb_assert (gdbarch->ax_pseudo_register_push_stack != NULL);
2087 if (gdbarch_debug >= 2)
2088 fprintf_unfiltered (gdb_stdlog, "gdbarch_ax_pseudo_register_push_stack called\n");
2089 return gdbarch->ax_pseudo_register_push_stack (gdbarch, ax, reg);
2090 }
2091
2092 void
2093 set_gdbarch_ax_pseudo_register_push_stack (struct gdbarch *gdbarch,
2094 gdbarch_ax_pseudo_register_push_stack_ftype ax_pseudo_register_push_stack)
2095 {
2096 gdbarch->ax_pseudo_register_push_stack = ax_pseudo_register_push_stack;
2097 }
2098
2099 int
2100 gdbarch_handle_segmentation_fault_p (struct gdbarch *gdbarch)
2101 {
2102 gdb_assert (gdbarch != NULL);
2103 return gdbarch->handle_segmentation_fault != NULL;
2104 }
2105
2106 void
2107 gdbarch_handle_segmentation_fault (struct gdbarch *gdbarch, struct ui_out *uiout)
2108 {
2109 gdb_assert (gdbarch != NULL);
2110 gdb_assert (gdbarch->handle_segmentation_fault != NULL);
2111 if (gdbarch_debug >= 2)
2112 fprintf_unfiltered (gdb_stdlog, "gdbarch_handle_segmentation_fault called\n");
2113 gdbarch->handle_segmentation_fault (gdbarch, uiout);
2114 }
2115
2116 void
2117 set_gdbarch_handle_segmentation_fault (struct gdbarch *gdbarch,
2118 gdbarch_handle_segmentation_fault_ftype handle_segmentation_fault)
2119 {
2120 gdbarch->handle_segmentation_fault = handle_segmentation_fault;
2121 }
2122
2123 int
2124 gdbarch_sp_regnum (struct gdbarch *gdbarch)
2125 {
2126 gdb_assert (gdbarch != NULL);
2127 /* Skip verify of sp_regnum, invalid_p == 0 */
2128 if (gdbarch_debug >= 2)
2129 fprintf_unfiltered (gdb_stdlog, "gdbarch_sp_regnum called\n");
2130 return gdbarch->sp_regnum;
2131 }
2132
2133 void
2134 set_gdbarch_sp_regnum (struct gdbarch *gdbarch,
2135 int sp_regnum)
2136 {
2137 gdbarch->sp_regnum = sp_regnum;
2138 }
2139
2140 int
2141 gdbarch_pc_regnum (struct gdbarch *gdbarch)
2142 {
2143 gdb_assert (gdbarch != NULL);
2144 /* Skip verify of pc_regnum, invalid_p == 0 */
2145 if (gdbarch_debug >= 2)
2146 fprintf_unfiltered (gdb_stdlog, "gdbarch_pc_regnum called\n");
2147 return gdbarch->pc_regnum;
2148 }
2149
2150 void
2151 set_gdbarch_pc_regnum (struct gdbarch *gdbarch,
2152 int pc_regnum)
2153 {
2154 gdbarch->pc_regnum = pc_regnum;
2155 }
2156
2157 int
2158 gdbarch_ps_regnum (struct gdbarch *gdbarch)
2159 {
2160 gdb_assert (gdbarch != NULL);
2161 /* Skip verify of ps_regnum, invalid_p == 0 */
2162 if (gdbarch_debug >= 2)
2163 fprintf_unfiltered (gdb_stdlog, "gdbarch_ps_regnum called\n");
2164 return gdbarch->ps_regnum;
2165 }
2166
2167 void
2168 set_gdbarch_ps_regnum (struct gdbarch *gdbarch,
2169 int ps_regnum)
2170 {
2171 gdbarch->ps_regnum = ps_regnum;
2172 }
2173
2174 int
2175 gdbarch_fp0_regnum (struct gdbarch *gdbarch)
2176 {
2177 gdb_assert (gdbarch != NULL);
2178 /* Skip verify of fp0_regnum, invalid_p == 0 */
2179 if (gdbarch_debug >= 2)
2180 fprintf_unfiltered (gdb_stdlog, "gdbarch_fp0_regnum called\n");
2181 return gdbarch->fp0_regnum;
2182 }
2183
2184 void
2185 set_gdbarch_fp0_regnum (struct gdbarch *gdbarch,
2186 int fp0_regnum)
2187 {
2188 gdbarch->fp0_regnum = fp0_regnum;
2189 }
2190
2191 int
2192 gdbarch_stab_reg_to_regnum (struct gdbarch *gdbarch, int stab_regnr)
2193 {
2194 gdb_assert (gdbarch != NULL);
2195 gdb_assert (gdbarch->stab_reg_to_regnum != NULL);
2196 if (gdbarch_debug >= 2)
2197 fprintf_unfiltered (gdb_stdlog, "gdbarch_stab_reg_to_regnum called\n");
2198 return gdbarch->stab_reg_to_regnum (gdbarch, stab_regnr);
2199 }
2200
2201 void
2202 set_gdbarch_stab_reg_to_regnum (struct gdbarch *gdbarch,
2203 gdbarch_stab_reg_to_regnum_ftype stab_reg_to_regnum)
2204 {
2205 gdbarch->stab_reg_to_regnum = stab_reg_to_regnum;
2206 }
2207
2208 int
2209 gdbarch_ecoff_reg_to_regnum (struct gdbarch *gdbarch, int ecoff_regnr)
2210 {
2211 gdb_assert (gdbarch != NULL);
2212 gdb_assert (gdbarch->ecoff_reg_to_regnum != NULL);
2213 if (gdbarch_debug >= 2)
2214 fprintf_unfiltered (gdb_stdlog, "gdbarch_ecoff_reg_to_regnum called\n");
2215 return gdbarch->ecoff_reg_to_regnum (gdbarch, ecoff_regnr);
2216 }
2217
2218 void
2219 set_gdbarch_ecoff_reg_to_regnum (struct gdbarch *gdbarch,
2220 gdbarch_ecoff_reg_to_regnum_ftype ecoff_reg_to_regnum)
2221 {
2222 gdbarch->ecoff_reg_to_regnum = ecoff_reg_to_regnum;
2223 }
2224
2225 int
2226 gdbarch_sdb_reg_to_regnum (struct gdbarch *gdbarch, int sdb_regnr)
2227 {
2228 gdb_assert (gdbarch != NULL);
2229 gdb_assert (gdbarch->sdb_reg_to_regnum != NULL);
2230 if (gdbarch_debug >= 2)
2231 fprintf_unfiltered (gdb_stdlog, "gdbarch_sdb_reg_to_regnum called\n");
2232 return gdbarch->sdb_reg_to_regnum (gdbarch, sdb_regnr);
2233 }
2234
2235 void
2236 set_gdbarch_sdb_reg_to_regnum (struct gdbarch *gdbarch,
2237 gdbarch_sdb_reg_to_regnum_ftype sdb_reg_to_regnum)
2238 {
2239 gdbarch->sdb_reg_to_regnum = sdb_reg_to_regnum;
2240 }
2241
2242 int
2243 gdbarch_dwarf2_reg_to_regnum (struct gdbarch *gdbarch, int dwarf2_regnr)
2244 {
2245 gdb_assert (gdbarch != NULL);
2246 gdb_assert (gdbarch->dwarf2_reg_to_regnum != NULL);
2247 if (gdbarch_debug >= 2)
2248 fprintf_unfiltered (gdb_stdlog, "gdbarch_dwarf2_reg_to_regnum called\n");
2249 return gdbarch->dwarf2_reg_to_regnum (gdbarch, dwarf2_regnr);
2250 }
2251
2252 void
2253 set_gdbarch_dwarf2_reg_to_regnum (struct gdbarch *gdbarch,
2254 gdbarch_dwarf2_reg_to_regnum_ftype dwarf2_reg_to_regnum)
2255 {
2256 gdbarch->dwarf2_reg_to_regnum = dwarf2_reg_to_regnum;
2257 }
2258
2259 const char *
2260 gdbarch_register_name (struct gdbarch *gdbarch, int regnr)
2261 {
2262 gdb_assert (gdbarch != NULL);
2263 gdb_assert (gdbarch->register_name != NULL);
2264 if (gdbarch_debug >= 2)
2265 fprintf_unfiltered (gdb_stdlog, "gdbarch_register_name called\n");
2266 return gdbarch->register_name (gdbarch, regnr);
2267 }
2268
2269 void
2270 set_gdbarch_register_name (struct gdbarch *gdbarch,
2271 gdbarch_register_name_ftype register_name)
2272 {
2273 gdbarch->register_name = register_name;
2274 }
2275
2276 int
2277 gdbarch_register_type_p (struct gdbarch *gdbarch)
2278 {
2279 gdb_assert (gdbarch != NULL);
2280 return gdbarch->register_type != NULL;
2281 }
2282
2283 struct type *
2284 gdbarch_register_type (struct gdbarch *gdbarch, int reg_nr)
2285 {
2286 gdb_assert (gdbarch != NULL);
2287 gdb_assert (gdbarch->register_type != NULL);
2288 if (gdbarch_debug >= 2)
2289 fprintf_unfiltered (gdb_stdlog, "gdbarch_register_type called\n");
2290 return gdbarch->register_type (gdbarch, reg_nr);
2291 }
2292
2293 void
2294 set_gdbarch_register_type (struct gdbarch *gdbarch,
2295 gdbarch_register_type_ftype register_type)
2296 {
2297 gdbarch->register_type = register_type;
2298 }
2299
2300 struct frame_id
2301 gdbarch_dummy_id (struct gdbarch *gdbarch, struct frame_info *this_frame)
2302 {
2303 gdb_assert (gdbarch != NULL);
2304 gdb_assert (gdbarch->dummy_id != NULL);
2305 if (gdbarch_debug >= 2)
2306 fprintf_unfiltered (gdb_stdlog, "gdbarch_dummy_id called\n");
2307 return gdbarch->dummy_id (gdbarch, this_frame);
2308 }
2309
2310 void
2311 set_gdbarch_dummy_id (struct gdbarch *gdbarch,
2312 gdbarch_dummy_id_ftype dummy_id)
2313 {
2314 gdbarch->dummy_id = dummy_id;
2315 }
2316
2317 int
2318 gdbarch_deprecated_fp_regnum (struct gdbarch *gdbarch)
2319 {
2320 gdb_assert (gdbarch != NULL);
2321 /* Skip verify of deprecated_fp_regnum, invalid_p == 0 */
2322 if (gdbarch_debug >= 2)
2323 fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_fp_regnum called\n");
2324 return gdbarch->deprecated_fp_regnum;
2325 }
2326
2327 void
2328 set_gdbarch_deprecated_fp_regnum (struct gdbarch *gdbarch,
2329 int deprecated_fp_regnum)
2330 {
2331 gdbarch->deprecated_fp_regnum = deprecated_fp_regnum;
2332 }
2333
2334 int
2335 gdbarch_push_dummy_call_p (struct gdbarch *gdbarch)
2336 {
2337 gdb_assert (gdbarch != NULL);
2338 return gdbarch->push_dummy_call != NULL;
2339 }
2340
2341 CORE_ADDR
2342 gdbarch_push_dummy_call (struct gdbarch *gdbarch, struct value *function, struct regcache *regcache, CORE_ADDR bp_addr, int nargs, struct value **args, CORE_ADDR sp, function_call_return_method return_method, CORE_ADDR struct_addr)
2343 {
2344 gdb_assert (gdbarch != NULL);
2345 gdb_assert (gdbarch->push_dummy_call != NULL);
2346 if (gdbarch_debug >= 2)
2347 fprintf_unfiltered (gdb_stdlog, "gdbarch_push_dummy_call called\n");
2348 return gdbarch->push_dummy_call (gdbarch, function, regcache, bp_addr, nargs, args, sp, return_method, struct_addr);
2349 }
2350
2351 void
2352 set_gdbarch_push_dummy_call (struct gdbarch *gdbarch,
2353 gdbarch_push_dummy_call_ftype push_dummy_call)
2354 {
2355 gdbarch->push_dummy_call = push_dummy_call;
2356 }
2357
2358 int
2359 gdbarch_call_dummy_location (struct gdbarch *gdbarch)
2360 {
2361 gdb_assert (gdbarch != NULL);
2362 /* Skip verify of call_dummy_location, invalid_p == 0 */
2363 if (gdbarch_debug >= 2)
2364 fprintf_unfiltered (gdb_stdlog, "gdbarch_call_dummy_location called\n");
2365 return gdbarch->call_dummy_location;
2366 }
2367
2368 void
2369 set_gdbarch_call_dummy_location (struct gdbarch *gdbarch,
2370 int call_dummy_location)
2371 {
2372 gdbarch->call_dummy_location = call_dummy_location;
2373 }
2374
2375 int
2376 gdbarch_push_dummy_code_p (struct gdbarch *gdbarch)
2377 {
2378 gdb_assert (gdbarch != NULL);
2379 return gdbarch->push_dummy_code != NULL;
2380 }
2381
2382 CORE_ADDR
2383 gdbarch_push_dummy_code (struct gdbarch *gdbarch, CORE_ADDR sp, CORE_ADDR funaddr, struct value **args, int nargs, struct type *value_type, CORE_ADDR *real_pc, CORE_ADDR *bp_addr, struct regcache *regcache)
2384 {
2385 gdb_assert (gdbarch != NULL);
2386 gdb_assert (gdbarch->push_dummy_code != NULL);
2387 if (gdbarch_debug >= 2)
2388 fprintf_unfiltered (gdb_stdlog, "gdbarch_push_dummy_code called\n");
2389 return gdbarch->push_dummy_code (gdbarch, sp, funaddr, args, nargs, value_type, real_pc, bp_addr, regcache);
2390 }
2391
2392 void
2393 set_gdbarch_push_dummy_code (struct gdbarch *gdbarch,
2394 gdbarch_push_dummy_code_ftype push_dummy_code)
2395 {
2396 gdbarch->push_dummy_code = push_dummy_code;
2397 }
2398
2399 int
2400 gdbarch_code_of_frame_writable (struct gdbarch *gdbarch, struct frame_info *frame)
2401 {
2402 gdb_assert (gdbarch != NULL);
2403 gdb_assert (gdbarch->code_of_frame_writable != NULL);
2404 if (gdbarch_debug >= 2)
2405 fprintf_unfiltered (gdb_stdlog, "gdbarch_code_of_frame_writable called\n");
2406 return gdbarch->code_of_frame_writable (gdbarch, frame);
2407 }
2408
2409 void
2410 set_gdbarch_code_of_frame_writable (struct gdbarch *gdbarch,
2411 gdbarch_code_of_frame_writable_ftype code_of_frame_writable)
2412 {
2413 gdbarch->code_of_frame_writable = code_of_frame_writable;
2414 }
2415
2416 void
2417 gdbarch_print_registers_info (struct gdbarch *gdbarch, struct ui_file *file, struct frame_info *frame, int regnum, int all)
2418 {
2419 gdb_assert (gdbarch != NULL);
2420 gdb_assert (gdbarch->print_registers_info != NULL);
2421 if (gdbarch_debug >= 2)
2422 fprintf_unfiltered (gdb_stdlog, "gdbarch_print_registers_info called\n");
2423 gdbarch->print_registers_info (gdbarch, file, frame, regnum, all);
2424 }
2425
2426 void
2427 set_gdbarch_print_registers_info (struct gdbarch *gdbarch,
2428 gdbarch_print_registers_info_ftype print_registers_info)
2429 {
2430 gdbarch->print_registers_info = print_registers_info;
2431 }
2432
2433 void
2434 gdbarch_print_float_info (struct gdbarch *gdbarch, struct ui_file *file, struct frame_info *frame, const char *args)
2435 {
2436 gdb_assert (gdbarch != NULL);
2437 gdb_assert (gdbarch->print_float_info != NULL);
2438 if (gdbarch_debug >= 2)
2439 fprintf_unfiltered (gdb_stdlog, "gdbarch_print_float_info called\n");
2440 gdbarch->print_float_info (gdbarch, file, frame, args);
2441 }
2442
2443 void
2444 set_gdbarch_print_float_info (struct gdbarch *gdbarch,
2445 gdbarch_print_float_info_ftype print_float_info)
2446 {
2447 gdbarch->print_float_info = print_float_info;
2448 }
2449
2450 int
2451 gdbarch_print_vector_info_p (struct gdbarch *gdbarch)
2452 {
2453 gdb_assert (gdbarch != NULL);
2454 return gdbarch->print_vector_info != NULL;
2455 }
2456
2457 void
2458 gdbarch_print_vector_info (struct gdbarch *gdbarch, struct ui_file *file, struct frame_info *frame, const char *args)
2459 {
2460 gdb_assert (gdbarch != NULL);
2461 gdb_assert (gdbarch->print_vector_info != NULL);
2462 if (gdbarch_debug >= 2)
2463 fprintf_unfiltered (gdb_stdlog, "gdbarch_print_vector_info called\n");
2464 gdbarch->print_vector_info (gdbarch, file, frame, args);
2465 }
2466
2467 void
2468 set_gdbarch_print_vector_info (struct gdbarch *gdbarch,
2469 gdbarch_print_vector_info_ftype print_vector_info)
2470 {
2471 gdbarch->print_vector_info = print_vector_info;
2472 }
2473
2474 int
2475 gdbarch_register_sim_regno (struct gdbarch *gdbarch, int reg_nr)
2476 {
2477 gdb_assert (gdbarch != NULL);
2478 gdb_assert (gdbarch->register_sim_regno != NULL);
2479 if (gdbarch_debug >= 2)
2480 fprintf_unfiltered (gdb_stdlog, "gdbarch_register_sim_regno called\n");
2481 return gdbarch->register_sim_regno (gdbarch, reg_nr);
2482 }
2483
2484 void
2485 set_gdbarch_register_sim_regno (struct gdbarch *gdbarch,
2486 gdbarch_register_sim_regno_ftype register_sim_regno)
2487 {
2488 gdbarch->register_sim_regno = register_sim_regno;
2489 }
2490
2491 int
2492 gdbarch_cannot_fetch_register (struct gdbarch *gdbarch, int regnum)
2493 {
2494 gdb_assert (gdbarch != NULL);
2495 gdb_assert (gdbarch->cannot_fetch_register != NULL);
2496 if (gdbarch_debug >= 2)
2497 fprintf_unfiltered (gdb_stdlog, "gdbarch_cannot_fetch_register called\n");
2498 return gdbarch->cannot_fetch_register (gdbarch, regnum);
2499 }
2500
2501 void
2502 set_gdbarch_cannot_fetch_register (struct gdbarch *gdbarch,
2503 gdbarch_cannot_fetch_register_ftype cannot_fetch_register)
2504 {
2505 gdbarch->cannot_fetch_register = cannot_fetch_register;
2506 }
2507
2508 int
2509 gdbarch_cannot_store_register (struct gdbarch *gdbarch, int regnum)
2510 {
2511 gdb_assert (gdbarch != NULL);
2512 gdb_assert (gdbarch->cannot_store_register != NULL);
2513 if (gdbarch_debug >= 2)
2514 fprintf_unfiltered (gdb_stdlog, "gdbarch_cannot_store_register called\n");
2515 return gdbarch->cannot_store_register (gdbarch, regnum);
2516 }
2517
2518 void
2519 set_gdbarch_cannot_store_register (struct gdbarch *gdbarch,
2520 gdbarch_cannot_store_register_ftype cannot_store_register)
2521 {
2522 gdbarch->cannot_store_register = cannot_store_register;
2523 }
2524
2525 int
2526 gdbarch_get_longjmp_target_p (struct gdbarch *gdbarch)
2527 {
2528 gdb_assert (gdbarch != NULL);
2529 return gdbarch->get_longjmp_target != NULL;
2530 }
2531
2532 int
2533 gdbarch_get_longjmp_target (struct gdbarch *gdbarch, struct frame_info *frame, CORE_ADDR *pc)
2534 {
2535 gdb_assert (gdbarch != NULL);
2536 gdb_assert (gdbarch->get_longjmp_target != NULL);
2537 if (gdbarch_debug >= 2)
2538 fprintf_unfiltered (gdb_stdlog, "gdbarch_get_longjmp_target called\n");
2539 return gdbarch->get_longjmp_target (frame, pc);
2540 }
2541
2542 void
2543 set_gdbarch_get_longjmp_target (struct gdbarch *gdbarch,
2544 gdbarch_get_longjmp_target_ftype get_longjmp_target)
2545 {
2546 gdbarch->get_longjmp_target = get_longjmp_target;
2547 }
2548
2549 int
2550 gdbarch_believe_pcc_promotion (struct gdbarch *gdbarch)
2551 {
2552 gdb_assert (gdbarch != NULL);
2553 if (gdbarch_debug >= 2)
2554 fprintf_unfiltered (gdb_stdlog, "gdbarch_believe_pcc_promotion called\n");
2555 return gdbarch->believe_pcc_promotion;
2556 }
2557
2558 void
2559 set_gdbarch_believe_pcc_promotion (struct gdbarch *gdbarch,
2560 int believe_pcc_promotion)
2561 {
2562 gdbarch->believe_pcc_promotion = believe_pcc_promotion;
2563 }
2564
2565 int
2566 gdbarch_convert_register_p (struct gdbarch *gdbarch, int regnum, struct type *type)
2567 {
2568 gdb_assert (gdbarch != NULL);
2569 gdb_assert (gdbarch->convert_register_p != NULL);
2570 if (gdbarch_debug >= 2)
2571 fprintf_unfiltered (gdb_stdlog, "gdbarch_convert_register_p called\n");
2572 return gdbarch->convert_register_p (gdbarch, regnum, type);
2573 }
2574
2575 void
2576 set_gdbarch_convert_register_p (struct gdbarch *gdbarch,
2577 gdbarch_convert_register_p_ftype convert_register_p)
2578 {
2579 gdbarch->convert_register_p = convert_register_p;
2580 }
2581
2582 int
2583 gdbarch_register_to_value (struct gdbarch *gdbarch, struct frame_info *frame, int regnum, struct type *type, gdb_byte *buf, int *optimizedp, int *unavailablep)
2584 {
2585 gdb_assert (gdbarch != NULL);
2586 gdb_assert (gdbarch->register_to_value != NULL);
2587 if (gdbarch_debug >= 2)
2588 fprintf_unfiltered (gdb_stdlog, "gdbarch_register_to_value called\n");
2589 return gdbarch->register_to_value (frame, regnum, type, buf, optimizedp, unavailablep);
2590 }
2591
2592 void
2593 set_gdbarch_register_to_value (struct gdbarch *gdbarch,
2594 gdbarch_register_to_value_ftype register_to_value)
2595 {
2596 gdbarch->register_to_value = register_to_value;
2597 }
2598
2599 void
2600 gdbarch_value_to_register (struct gdbarch *gdbarch, struct frame_info *frame, int regnum, struct type *type, const gdb_byte *buf)
2601 {
2602 gdb_assert (gdbarch != NULL);
2603 gdb_assert (gdbarch->value_to_register != NULL);
2604 if (gdbarch_debug >= 2)
2605 fprintf_unfiltered (gdb_stdlog, "gdbarch_value_to_register called\n");
2606 gdbarch->value_to_register (frame, regnum, type, buf);
2607 }
2608
2609 void
2610 set_gdbarch_value_to_register (struct gdbarch *gdbarch,
2611 gdbarch_value_to_register_ftype value_to_register)
2612 {
2613 gdbarch->value_to_register = value_to_register;
2614 }
2615
2616 struct value *
2617 gdbarch_value_from_register (struct gdbarch *gdbarch, struct type *type, int regnum, struct frame_id frame_id)
2618 {
2619 gdb_assert (gdbarch != NULL);
2620 gdb_assert (gdbarch->value_from_register != NULL);
2621 if (gdbarch_debug >= 2)
2622 fprintf_unfiltered (gdb_stdlog, "gdbarch_value_from_register called\n");
2623 return gdbarch->value_from_register (gdbarch, type, regnum, frame_id);
2624 }
2625
2626 void
2627 set_gdbarch_value_from_register (struct gdbarch *gdbarch,
2628 gdbarch_value_from_register_ftype value_from_register)
2629 {
2630 gdbarch->value_from_register = value_from_register;
2631 }
2632
2633 CORE_ADDR
2634 gdbarch_pointer_to_address (struct gdbarch *gdbarch, struct type *type, const gdb_byte *buf)
2635 {
2636 gdb_assert (gdbarch != NULL);
2637 gdb_assert (gdbarch->pointer_to_address != NULL);
2638 if (gdbarch_debug >= 2)
2639 fprintf_unfiltered (gdb_stdlog, "gdbarch_pointer_to_address called\n");
2640 return gdbarch->pointer_to_address (gdbarch, type, buf);
2641 }
2642
2643 void
2644 set_gdbarch_pointer_to_address (struct gdbarch *gdbarch,
2645 gdbarch_pointer_to_address_ftype pointer_to_address)
2646 {
2647 gdbarch->pointer_to_address = pointer_to_address;
2648 }
2649
2650 void
2651 gdbarch_address_to_pointer (struct gdbarch *gdbarch, struct type *type, gdb_byte *buf, CORE_ADDR addr)
2652 {
2653 gdb_assert (gdbarch != NULL);
2654 gdb_assert (gdbarch->address_to_pointer != NULL);
2655 if (gdbarch_debug >= 2)
2656 fprintf_unfiltered (gdb_stdlog, "gdbarch_address_to_pointer called\n");
2657 gdbarch->address_to_pointer (gdbarch, type, buf, addr);
2658 }
2659
2660 void
2661 set_gdbarch_address_to_pointer (struct gdbarch *gdbarch,
2662 gdbarch_address_to_pointer_ftype address_to_pointer)
2663 {
2664 gdbarch->address_to_pointer = address_to_pointer;
2665 }
2666
2667 int
2668 gdbarch_integer_to_address_p (struct gdbarch *gdbarch)
2669 {
2670 gdb_assert (gdbarch != NULL);
2671 return gdbarch->integer_to_address != NULL;
2672 }
2673
2674 CORE_ADDR
2675 gdbarch_integer_to_address (struct gdbarch *gdbarch, struct type *type, const gdb_byte *buf)
2676 {
2677 gdb_assert (gdbarch != NULL);
2678 gdb_assert (gdbarch->integer_to_address != NULL);
2679 if (gdbarch_debug >= 2)
2680 fprintf_unfiltered (gdb_stdlog, "gdbarch_integer_to_address called\n");
2681 return gdbarch->integer_to_address (gdbarch, type, buf);
2682 }
2683
2684 void
2685 set_gdbarch_integer_to_address (struct gdbarch *gdbarch,
2686 gdbarch_integer_to_address_ftype integer_to_address)
2687 {
2688 gdbarch->integer_to_address = integer_to_address;
2689 }
2690
2691 int
2692 gdbarch_return_value_p (struct gdbarch *gdbarch)
2693 {
2694 gdb_assert (gdbarch != NULL);
2695 return gdbarch->return_value != NULL;
2696 }
2697
2698 enum return_value_convention
2699 gdbarch_return_value (struct gdbarch *gdbarch, struct value *function, struct type *valtype, struct regcache *regcache, gdb_byte *readbuf, const gdb_byte *writebuf)
2700 {
2701 gdb_assert (gdbarch != NULL);
2702 gdb_assert (gdbarch->return_value != NULL);
2703 if (gdbarch_debug >= 2)
2704 fprintf_unfiltered (gdb_stdlog, "gdbarch_return_value called\n");
2705 return gdbarch->return_value (gdbarch, function, valtype, regcache, readbuf, writebuf);
2706 }
2707
2708 void
2709 set_gdbarch_return_value (struct gdbarch *gdbarch,
2710 gdbarch_return_value_ftype return_value)
2711 {
2712 gdbarch->return_value = return_value;
2713 }
2714
2715 int
2716 gdbarch_return_in_first_hidden_param_p (struct gdbarch *gdbarch, struct type *type)
2717 {
2718 gdb_assert (gdbarch != NULL);
2719 gdb_assert (gdbarch->return_in_first_hidden_param_p != NULL);
2720 if (gdbarch_debug >= 2)
2721 fprintf_unfiltered (gdb_stdlog, "gdbarch_return_in_first_hidden_param_p called\n");
2722 return gdbarch->return_in_first_hidden_param_p (gdbarch, type);
2723 }
2724
2725 void
2726 set_gdbarch_return_in_first_hidden_param_p (struct gdbarch *gdbarch,
2727 gdbarch_return_in_first_hidden_param_p_ftype return_in_first_hidden_param_p)
2728 {
2729 gdbarch->return_in_first_hidden_param_p = return_in_first_hidden_param_p;
2730 }
2731
2732 CORE_ADDR
2733 gdbarch_skip_prologue (struct gdbarch *gdbarch, CORE_ADDR ip)
2734 {
2735 gdb_assert (gdbarch != NULL);
2736 gdb_assert (gdbarch->skip_prologue != NULL);
2737 if (gdbarch_debug >= 2)
2738 fprintf_unfiltered (gdb_stdlog, "gdbarch_skip_prologue called\n");
2739 return gdbarch->skip_prologue (gdbarch, ip);
2740 }
2741
2742 void
2743 set_gdbarch_skip_prologue (struct gdbarch *gdbarch,
2744 gdbarch_skip_prologue_ftype skip_prologue)
2745 {
2746 gdbarch->skip_prologue = skip_prologue;
2747 }
2748
2749 int
2750 gdbarch_skip_main_prologue_p (struct gdbarch *gdbarch)
2751 {
2752 gdb_assert (gdbarch != NULL);
2753 return gdbarch->skip_main_prologue != NULL;
2754 }
2755
2756 CORE_ADDR
2757 gdbarch_skip_main_prologue (struct gdbarch *gdbarch, CORE_ADDR ip)
2758 {
2759 gdb_assert (gdbarch != NULL);
2760 gdb_assert (gdbarch->skip_main_prologue != NULL);
2761 if (gdbarch_debug >= 2)
2762 fprintf_unfiltered (gdb_stdlog, "gdbarch_skip_main_prologue called\n");
2763 return gdbarch->skip_main_prologue (gdbarch, ip);
2764 }
2765
2766 void
2767 set_gdbarch_skip_main_prologue (struct gdbarch *gdbarch,
2768 gdbarch_skip_main_prologue_ftype skip_main_prologue)
2769 {
2770 gdbarch->skip_main_prologue = skip_main_prologue;
2771 }
2772
2773 int
2774 gdbarch_skip_entrypoint_p (struct gdbarch *gdbarch)
2775 {
2776 gdb_assert (gdbarch != NULL);
2777 return gdbarch->skip_entrypoint != NULL;
2778 }
2779
2780 CORE_ADDR
2781 gdbarch_skip_entrypoint (struct gdbarch *gdbarch, CORE_ADDR ip)
2782 {
2783 gdb_assert (gdbarch != NULL);
2784 gdb_assert (gdbarch->skip_entrypoint != NULL);
2785 if (gdbarch_debug >= 2)
2786 fprintf_unfiltered (gdb_stdlog, "gdbarch_skip_entrypoint called\n");
2787 return gdbarch->skip_entrypoint (gdbarch, ip);
2788 }
2789
2790 void
2791 set_gdbarch_skip_entrypoint (struct gdbarch *gdbarch,
2792 gdbarch_skip_entrypoint_ftype skip_entrypoint)
2793 {
2794 gdbarch->skip_entrypoint = skip_entrypoint;
2795 }
2796
2797 int
2798 gdbarch_inner_than (struct gdbarch *gdbarch, CORE_ADDR lhs, CORE_ADDR rhs)
2799 {
2800 gdb_assert (gdbarch != NULL);
2801 gdb_assert (gdbarch->inner_than != NULL);
2802 if (gdbarch_debug >= 2)
2803 fprintf_unfiltered (gdb_stdlog, "gdbarch_inner_than called\n");
2804 return gdbarch->inner_than (lhs, rhs);
2805 }
2806
2807 void
2808 set_gdbarch_inner_than (struct gdbarch *gdbarch,
2809 gdbarch_inner_than_ftype inner_than)
2810 {
2811 gdbarch->inner_than = inner_than;
2812 }
2813
2814 const gdb_byte *
2815 gdbarch_breakpoint_from_pc (struct gdbarch *gdbarch, CORE_ADDR *pcptr, int *lenptr)
2816 {
2817 gdb_assert (gdbarch != NULL);
2818 gdb_assert (gdbarch->breakpoint_from_pc != NULL);
2819 if (gdbarch_debug >= 2)
2820 fprintf_unfiltered (gdb_stdlog, "gdbarch_breakpoint_from_pc called\n");
2821 return gdbarch->breakpoint_from_pc (gdbarch, pcptr, lenptr);
2822 }
2823
2824 void
2825 set_gdbarch_breakpoint_from_pc (struct gdbarch *gdbarch,
2826 gdbarch_breakpoint_from_pc_ftype breakpoint_from_pc)
2827 {
2828 gdbarch->breakpoint_from_pc = breakpoint_from_pc;
2829 }
2830
2831 int
2832 gdbarch_breakpoint_kind_from_pc (struct gdbarch *gdbarch, CORE_ADDR *pcptr)
2833 {
2834 gdb_assert (gdbarch != NULL);
2835 gdb_assert (gdbarch->breakpoint_kind_from_pc != NULL);
2836 if (gdbarch_debug >= 2)
2837 fprintf_unfiltered (gdb_stdlog, "gdbarch_breakpoint_kind_from_pc called\n");
2838 return gdbarch->breakpoint_kind_from_pc (gdbarch, pcptr);
2839 }
2840
2841 void
2842 set_gdbarch_breakpoint_kind_from_pc (struct gdbarch *gdbarch,
2843 gdbarch_breakpoint_kind_from_pc_ftype breakpoint_kind_from_pc)
2844 {
2845 gdbarch->breakpoint_kind_from_pc = breakpoint_kind_from_pc;
2846 }
2847
2848 const gdb_byte *
2849 gdbarch_sw_breakpoint_from_kind (struct gdbarch *gdbarch, int kind, int *size)
2850 {
2851 gdb_assert (gdbarch != NULL);
2852 gdb_assert (gdbarch->sw_breakpoint_from_kind != NULL);
2853 if (gdbarch_debug >= 2)
2854 fprintf_unfiltered (gdb_stdlog, "gdbarch_sw_breakpoint_from_kind called\n");
2855 return gdbarch->sw_breakpoint_from_kind (gdbarch, kind, size);
2856 }
2857
2858 void
2859 set_gdbarch_sw_breakpoint_from_kind (struct gdbarch *gdbarch,
2860 gdbarch_sw_breakpoint_from_kind_ftype sw_breakpoint_from_kind)
2861 {
2862 gdbarch->sw_breakpoint_from_kind = sw_breakpoint_from_kind;
2863 }
2864
2865 int
2866 gdbarch_breakpoint_kind_from_current_state (struct gdbarch *gdbarch, struct regcache *regcache, CORE_ADDR *pcptr)
2867 {
2868 gdb_assert (gdbarch != NULL);
2869 gdb_assert (gdbarch->breakpoint_kind_from_current_state != NULL);
2870 if (gdbarch_debug >= 2)
2871 fprintf_unfiltered (gdb_stdlog, "gdbarch_breakpoint_kind_from_current_state called\n");
2872 return gdbarch->breakpoint_kind_from_current_state (gdbarch, regcache, pcptr);
2873 }
2874
2875 void
2876 set_gdbarch_breakpoint_kind_from_current_state (struct gdbarch *gdbarch,
2877 gdbarch_breakpoint_kind_from_current_state_ftype breakpoint_kind_from_current_state)
2878 {
2879 gdbarch->breakpoint_kind_from_current_state = breakpoint_kind_from_current_state;
2880 }
2881
2882 int
2883 gdbarch_adjust_breakpoint_address_p (struct gdbarch *gdbarch)
2884 {
2885 gdb_assert (gdbarch != NULL);
2886 return gdbarch->adjust_breakpoint_address != NULL;
2887 }
2888
2889 CORE_ADDR
2890 gdbarch_adjust_breakpoint_address (struct gdbarch *gdbarch, CORE_ADDR bpaddr)
2891 {
2892 gdb_assert (gdbarch != NULL);
2893 gdb_assert (gdbarch->adjust_breakpoint_address != NULL);
2894 if (gdbarch_debug >= 2)
2895 fprintf_unfiltered (gdb_stdlog, "gdbarch_adjust_breakpoint_address called\n");
2896 return gdbarch->adjust_breakpoint_address (gdbarch, bpaddr);
2897 }
2898
2899 void
2900 set_gdbarch_adjust_breakpoint_address (struct gdbarch *gdbarch,
2901 gdbarch_adjust_breakpoint_address_ftype adjust_breakpoint_address)
2902 {
2903 gdbarch->adjust_breakpoint_address = adjust_breakpoint_address;
2904 }
2905
2906 int
2907 gdbarch_memory_insert_breakpoint (struct gdbarch *gdbarch, struct bp_target_info *bp_tgt)
2908 {
2909 gdb_assert (gdbarch != NULL);
2910 gdb_assert (gdbarch->memory_insert_breakpoint != NULL);
2911 if (gdbarch_debug >= 2)
2912 fprintf_unfiltered (gdb_stdlog, "gdbarch_memory_insert_breakpoint called\n");
2913 return gdbarch->memory_insert_breakpoint (gdbarch, bp_tgt);
2914 }
2915
2916 void
2917 set_gdbarch_memory_insert_breakpoint (struct gdbarch *gdbarch,
2918 gdbarch_memory_insert_breakpoint_ftype memory_insert_breakpoint)
2919 {
2920 gdbarch->memory_insert_breakpoint = memory_insert_breakpoint;
2921 }
2922
2923 int
2924 gdbarch_memory_remove_breakpoint (struct gdbarch *gdbarch, struct bp_target_info *bp_tgt)
2925 {
2926 gdb_assert (gdbarch != NULL);
2927 gdb_assert (gdbarch->memory_remove_breakpoint != NULL);
2928 if (gdbarch_debug >= 2)
2929 fprintf_unfiltered (gdb_stdlog, "gdbarch_memory_remove_breakpoint called\n");
2930 return gdbarch->memory_remove_breakpoint (gdbarch, bp_tgt);
2931 }
2932
2933 void
2934 set_gdbarch_memory_remove_breakpoint (struct gdbarch *gdbarch,
2935 gdbarch_memory_remove_breakpoint_ftype memory_remove_breakpoint)
2936 {
2937 gdbarch->memory_remove_breakpoint = memory_remove_breakpoint;
2938 }
2939
2940 CORE_ADDR
2941 gdbarch_decr_pc_after_break (struct gdbarch *gdbarch)
2942 {
2943 gdb_assert (gdbarch != NULL);
2944 /* Skip verify of decr_pc_after_break, invalid_p == 0 */
2945 if (gdbarch_debug >= 2)
2946 fprintf_unfiltered (gdb_stdlog, "gdbarch_decr_pc_after_break called\n");
2947 return gdbarch->decr_pc_after_break;
2948 }
2949
2950 void
2951 set_gdbarch_decr_pc_after_break (struct gdbarch *gdbarch,
2952 CORE_ADDR decr_pc_after_break)
2953 {
2954 gdbarch->decr_pc_after_break = decr_pc_after_break;
2955 }
2956
2957 CORE_ADDR
2958 gdbarch_deprecated_function_start_offset (struct gdbarch *gdbarch)
2959 {
2960 gdb_assert (gdbarch != NULL);
2961 /* Skip verify of deprecated_function_start_offset, invalid_p == 0 */
2962 if (gdbarch_debug >= 2)
2963 fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_function_start_offset called\n");
2964 return gdbarch->deprecated_function_start_offset;
2965 }
2966
2967 void
2968 set_gdbarch_deprecated_function_start_offset (struct gdbarch *gdbarch,
2969 CORE_ADDR deprecated_function_start_offset)
2970 {
2971 gdbarch->deprecated_function_start_offset = deprecated_function_start_offset;
2972 }
2973
2974 int
2975 gdbarch_remote_register_number (struct gdbarch *gdbarch, int regno)
2976 {
2977 gdb_assert (gdbarch != NULL);
2978 gdb_assert (gdbarch->remote_register_number != NULL);
2979 if (gdbarch_debug >= 2)
2980 fprintf_unfiltered (gdb_stdlog, "gdbarch_remote_register_number called\n");
2981 return gdbarch->remote_register_number (gdbarch, regno);
2982 }
2983
2984 void
2985 set_gdbarch_remote_register_number (struct gdbarch *gdbarch,
2986 gdbarch_remote_register_number_ftype remote_register_number)
2987 {
2988 gdbarch->remote_register_number = remote_register_number;
2989 }
2990
2991 int
2992 gdbarch_fetch_tls_load_module_address_p (struct gdbarch *gdbarch)
2993 {
2994 gdb_assert (gdbarch != NULL);
2995 return gdbarch->fetch_tls_load_module_address != NULL;
2996 }
2997
2998 CORE_ADDR
2999 gdbarch_fetch_tls_load_module_address (struct gdbarch *gdbarch, struct objfile *objfile)
3000 {
3001 gdb_assert (gdbarch != NULL);
3002 gdb_assert (gdbarch->fetch_tls_load_module_address != NULL);
3003 if (gdbarch_debug >= 2)
3004 fprintf_unfiltered (gdb_stdlog, "gdbarch_fetch_tls_load_module_address called\n");
3005 return gdbarch->fetch_tls_load_module_address (objfile);
3006 }
3007
3008 void
3009 set_gdbarch_fetch_tls_load_module_address (struct gdbarch *gdbarch,
3010 gdbarch_fetch_tls_load_module_address_ftype fetch_tls_load_module_address)
3011 {
3012 gdbarch->fetch_tls_load_module_address = fetch_tls_load_module_address;
3013 }
3014
3015 int
3016 gdbarch_get_thread_local_address_p (struct gdbarch *gdbarch)
3017 {
3018 gdb_assert (gdbarch != NULL);
3019 return gdbarch->get_thread_local_address != NULL;
3020 }
3021
3022 CORE_ADDR
3023 gdbarch_get_thread_local_address (struct gdbarch *gdbarch, ptid_t ptid, CORE_ADDR lm_addr, CORE_ADDR offset)
3024 {
3025 gdb_assert (gdbarch != NULL);
3026 gdb_assert (gdbarch->get_thread_local_address != NULL);
3027 if (gdbarch_debug >= 2)
3028 fprintf_unfiltered (gdb_stdlog, "gdbarch_get_thread_local_address called\n");
3029 return gdbarch->get_thread_local_address (gdbarch, ptid, lm_addr, offset);
3030 }
3031
3032 void
3033 set_gdbarch_get_thread_local_address (struct gdbarch *gdbarch,
3034 gdbarch_get_thread_local_address_ftype get_thread_local_address)
3035 {
3036 gdbarch->get_thread_local_address = get_thread_local_address;
3037 }
3038
3039 CORE_ADDR
3040 gdbarch_frame_args_skip (struct gdbarch *gdbarch)
3041 {
3042 gdb_assert (gdbarch != NULL);
3043 /* Skip verify of frame_args_skip, invalid_p == 0 */
3044 if (gdbarch_debug >= 2)
3045 fprintf_unfiltered (gdb_stdlog, "gdbarch_frame_args_skip called\n");
3046 return gdbarch->frame_args_skip;
3047 }
3048
3049 void
3050 set_gdbarch_frame_args_skip (struct gdbarch *gdbarch,
3051 CORE_ADDR frame_args_skip)
3052 {
3053 gdbarch->frame_args_skip = frame_args_skip;
3054 }
3055
3056 CORE_ADDR
3057 gdbarch_unwind_pc (struct gdbarch *gdbarch, struct frame_info *next_frame)
3058 {
3059 gdb_assert (gdbarch != NULL);
3060 gdb_assert (gdbarch->unwind_pc != NULL);
3061 if (gdbarch_debug >= 2)
3062 fprintf_unfiltered (gdb_stdlog, "gdbarch_unwind_pc called\n");
3063 return gdbarch->unwind_pc (gdbarch, next_frame);
3064 }
3065
3066 void
3067 set_gdbarch_unwind_pc (struct gdbarch *gdbarch,
3068 gdbarch_unwind_pc_ftype unwind_pc)
3069 {
3070 gdbarch->unwind_pc = unwind_pc;
3071 }
3072
3073 CORE_ADDR
3074 gdbarch_unwind_sp (struct gdbarch *gdbarch, struct frame_info *next_frame)
3075 {
3076 gdb_assert (gdbarch != NULL);
3077 gdb_assert (gdbarch->unwind_sp != NULL);
3078 if (gdbarch_debug >= 2)
3079 fprintf_unfiltered (gdb_stdlog, "gdbarch_unwind_sp called\n");
3080 return gdbarch->unwind_sp (gdbarch, next_frame);
3081 }
3082
3083 void
3084 set_gdbarch_unwind_sp (struct gdbarch *gdbarch,
3085 gdbarch_unwind_sp_ftype unwind_sp)
3086 {
3087 gdbarch->unwind_sp = unwind_sp;
3088 }
3089
3090 int
3091 gdbarch_frame_num_args_p (struct gdbarch *gdbarch)
3092 {
3093 gdb_assert (gdbarch != NULL);
3094 return gdbarch->frame_num_args != NULL;
3095 }
3096
3097 int
3098 gdbarch_frame_num_args (struct gdbarch *gdbarch, struct frame_info *frame)
3099 {
3100 gdb_assert (gdbarch != NULL);
3101 gdb_assert (gdbarch->frame_num_args != NULL);
3102 if (gdbarch_debug >= 2)
3103 fprintf_unfiltered (gdb_stdlog, "gdbarch_frame_num_args called\n");
3104 return gdbarch->frame_num_args (frame);
3105 }
3106
3107 void
3108 set_gdbarch_frame_num_args (struct gdbarch *gdbarch,
3109 gdbarch_frame_num_args_ftype frame_num_args)
3110 {
3111 gdbarch->frame_num_args = frame_num_args;
3112 }
3113
3114 int
3115 gdbarch_frame_align_p (struct gdbarch *gdbarch)
3116 {
3117 gdb_assert (gdbarch != NULL);
3118 return gdbarch->frame_align != NULL;
3119 }
3120
3121 CORE_ADDR
3122 gdbarch_frame_align (struct gdbarch *gdbarch, CORE_ADDR address)
3123 {
3124 gdb_assert (gdbarch != NULL);
3125 gdb_assert (gdbarch->frame_align != NULL);
3126 if (gdbarch_debug >= 2)
3127 fprintf_unfiltered (gdb_stdlog, "gdbarch_frame_align called\n");
3128 return gdbarch->frame_align (gdbarch, address);
3129 }
3130
3131 void
3132 set_gdbarch_frame_align (struct gdbarch *gdbarch,
3133 gdbarch_frame_align_ftype frame_align)
3134 {
3135 gdbarch->frame_align = frame_align;
3136 }
3137
3138 int
3139 gdbarch_stabs_argument_has_addr (struct gdbarch *gdbarch, struct type *type)
3140 {
3141 gdb_assert (gdbarch != NULL);
3142 gdb_assert (gdbarch->stabs_argument_has_addr != NULL);
3143 if (gdbarch_debug >= 2)
3144 fprintf_unfiltered (gdb_stdlog, "gdbarch_stabs_argument_has_addr called\n");
3145 return gdbarch->stabs_argument_has_addr (gdbarch, type);
3146 }
3147
3148 void
3149 set_gdbarch_stabs_argument_has_addr (struct gdbarch *gdbarch,
3150 gdbarch_stabs_argument_has_addr_ftype stabs_argument_has_addr)
3151 {
3152 gdbarch->stabs_argument_has_addr = stabs_argument_has_addr;
3153 }
3154
3155 int
3156 gdbarch_frame_red_zone_size (struct gdbarch *gdbarch)
3157 {
3158 gdb_assert (gdbarch != NULL);
3159 if (gdbarch_debug >= 2)
3160 fprintf_unfiltered (gdb_stdlog, "gdbarch_frame_red_zone_size called\n");
3161 return gdbarch->frame_red_zone_size;
3162 }
3163
3164 void
3165 set_gdbarch_frame_red_zone_size (struct gdbarch *gdbarch,
3166 int frame_red_zone_size)
3167 {
3168 gdbarch->frame_red_zone_size = frame_red_zone_size;
3169 }
3170
3171 CORE_ADDR
3172 gdbarch_convert_from_func_ptr_addr (struct gdbarch *gdbarch, CORE_ADDR addr, struct target_ops *targ)
3173 {
3174 gdb_assert (gdbarch != NULL);
3175 gdb_assert (gdbarch->convert_from_func_ptr_addr != NULL);
3176 if (gdbarch_debug >= 2)
3177 fprintf_unfiltered (gdb_stdlog, "gdbarch_convert_from_func_ptr_addr called\n");
3178 return gdbarch->convert_from_func_ptr_addr (gdbarch, addr, targ);
3179 }
3180
3181 void
3182 set_gdbarch_convert_from_func_ptr_addr (struct gdbarch *gdbarch,
3183 gdbarch_convert_from_func_ptr_addr_ftype convert_from_func_ptr_addr)
3184 {
3185 gdbarch->convert_from_func_ptr_addr = convert_from_func_ptr_addr;
3186 }
3187
3188 CORE_ADDR
3189 gdbarch_addr_bits_remove (struct gdbarch *gdbarch, CORE_ADDR addr)
3190 {
3191 gdb_assert (gdbarch != NULL);
3192 gdb_assert (gdbarch->addr_bits_remove != NULL);
3193 if (gdbarch_debug >= 2)
3194 fprintf_unfiltered (gdb_stdlog, "gdbarch_addr_bits_remove called\n");
3195 return gdbarch->addr_bits_remove (gdbarch, addr);
3196 }
3197
3198 void
3199 set_gdbarch_addr_bits_remove (struct gdbarch *gdbarch,
3200 gdbarch_addr_bits_remove_ftype addr_bits_remove)
3201 {
3202 gdbarch->addr_bits_remove = addr_bits_remove;
3203 }
3204
3205 int
3206 gdbarch_significant_addr_bit (struct gdbarch *gdbarch)
3207 {
3208 gdb_assert (gdbarch != NULL);
3209 /* Skip verify of significant_addr_bit, invalid_p == 0 */
3210 if (gdbarch_debug >= 2)
3211 fprintf_unfiltered (gdb_stdlog, "gdbarch_significant_addr_bit called\n");
3212 return gdbarch->significant_addr_bit;
3213 }
3214
3215 void
3216 set_gdbarch_significant_addr_bit (struct gdbarch *gdbarch,
3217 int significant_addr_bit)
3218 {
3219 gdbarch->significant_addr_bit = significant_addr_bit;
3220 }
3221
3222 int
3223 gdbarch_software_single_step_p (struct gdbarch *gdbarch)
3224 {
3225 gdb_assert (gdbarch != NULL);
3226 return gdbarch->software_single_step != NULL;
3227 }
3228
3229 std::vector<CORE_ADDR>
3230 gdbarch_software_single_step (struct gdbarch *gdbarch, struct regcache *regcache)
3231 {
3232 gdb_assert (gdbarch != NULL);
3233 gdb_assert (gdbarch->software_single_step != NULL);
3234 if (gdbarch_debug >= 2)
3235 fprintf_unfiltered (gdb_stdlog, "gdbarch_software_single_step called\n");
3236 return gdbarch->software_single_step (regcache);
3237 }
3238
3239 void
3240 set_gdbarch_software_single_step (struct gdbarch *gdbarch,
3241 gdbarch_software_single_step_ftype software_single_step)
3242 {
3243 gdbarch->software_single_step = software_single_step;
3244 }
3245
3246 int
3247 gdbarch_single_step_through_delay_p (struct gdbarch *gdbarch)
3248 {
3249 gdb_assert (gdbarch != NULL);
3250 return gdbarch->single_step_through_delay != NULL;
3251 }
3252
3253 int
3254 gdbarch_single_step_through_delay (struct gdbarch *gdbarch, struct frame_info *frame)
3255 {
3256 gdb_assert (gdbarch != NULL);
3257 gdb_assert (gdbarch->single_step_through_delay != NULL);
3258 if (gdbarch_debug >= 2)
3259 fprintf_unfiltered (gdb_stdlog, "gdbarch_single_step_through_delay called\n");
3260 return gdbarch->single_step_through_delay (gdbarch, frame);
3261 }
3262
3263 void
3264 set_gdbarch_single_step_through_delay (struct gdbarch *gdbarch,
3265 gdbarch_single_step_through_delay_ftype single_step_through_delay)
3266 {
3267 gdbarch->single_step_through_delay = single_step_through_delay;
3268 }
3269
3270 int
3271 gdbarch_print_insn (struct gdbarch *gdbarch, bfd_vma vma, struct disassemble_info *info)
3272 {
3273 gdb_assert (gdbarch != NULL);
3274 gdb_assert (gdbarch->print_insn != NULL);
3275 if (gdbarch_debug >= 2)
3276 fprintf_unfiltered (gdb_stdlog, "gdbarch_print_insn called\n");
3277 return gdbarch->print_insn (vma, info);
3278 }
3279
3280 void
3281 set_gdbarch_print_insn (struct gdbarch *gdbarch,
3282 gdbarch_print_insn_ftype print_insn)
3283 {
3284 gdbarch->print_insn = print_insn;
3285 }
3286
3287 CORE_ADDR
3288 gdbarch_skip_trampoline_code (struct gdbarch *gdbarch, struct frame_info *frame, CORE_ADDR pc)
3289 {
3290 gdb_assert (gdbarch != NULL);
3291 gdb_assert (gdbarch->skip_trampoline_code != NULL);
3292 if (gdbarch_debug >= 2)
3293 fprintf_unfiltered (gdb_stdlog, "gdbarch_skip_trampoline_code called\n");
3294 return gdbarch->skip_trampoline_code (frame, pc);
3295 }
3296
3297 void
3298 set_gdbarch_skip_trampoline_code (struct gdbarch *gdbarch,
3299 gdbarch_skip_trampoline_code_ftype skip_trampoline_code)
3300 {
3301 gdbarch->skip_trampoline_code = skip_trampoline_code;
3302 }
3303
3304 CORE_ADDR
3305 gdbarch_skip_solib_resolver (struct gdbarch *gdbarch, CORE_ADDR pc)
3306 {
3307 gdb_assert (gdbarch != NULL);
3308 gdb_assert (gdbarch->skip_solib_resolver != NULL);
3309 if (gdbarch_debug >= 2)
3310 fprintf_unfiltered (gdb_stdlog, "gdbarch_skip_solib_resolver called\n");
3311 return gdbarch->skip_solib_resolver (gdbarch, pc);
3312 }
3313
3314 void
3315 set_gdbarch_skip_solib_resolver (struct gdbarch *gdbarch,
3316 gdbarch_skip_solib_resolver_ftype skip_solib_resolver)
3317 {
3318 gdbarch->skip_solib_resolver = skip_solib_resolver;
3319 }
3320
3321 int
3322 gdbarch_in_solib_return_trampoline (struct gdbarch *gdbarch, CORE_ADDR pc, const char *name)
3323 {
3324 gdb_assert (gdbarch != NULL);
3325 gdb_assert (gdbarch->in_solib_return_trampoline != NULL);
3326 if (gdbarch_debug >= 2)
3327 fprintf_unfiltered (gdb_stdlog, "gdbarch_in_solib_return_trampoline called\n");
3328 return gdbarch->in_solib_return_trampoline (gdbarch, pc, name);
3329 }
3330
3331 void
3332 set_gdbarch_in_solib_return_trampoline (struct gdbarch *gdbarch,
3333 gdbarch_in_solib_return_trampoline_ftype in_solib_return_trampoline)
3334 {
3335 gdbarch->in_solib_return_trampoline = in_solib_return_trampoline;
3336 }
3337
3338 bool
3339 gdbarch_in_indirect_branch_thunk (struct gdbarch *gdbarch, CORE_ADDR pc)
3340 {
3341 gdb_assert (gdbarch != NULL);
3342 gdb_assert (gdbarch->in_indirect_branch_thunk != NULL);
3343 if (gdbarch_debug >= 2)
3344 fprintf_unfiltered (gdb_stdlog, "gdbarch_in_indirect_branch_thunk called\n");
3345 return gdbarch->in_indirect_branch_thunk (gdbarch, pc);
3346 }
3347
3348 void
3349 set_gdbarch_in_indirect_branch_thunk (struct gdbarch *gdbarch,
3350 gdbarch_in_indirect_branch_thunk_ftype in_indirect_branch_thunk)
3351 {
3352 gdbarch->in_indirect_branch_thunk = in_indirect_branch_thunk;
3353 }
3354
3355 int
3356 gdbarch_stack_frame_destroyed_p (struct gdbarch *gdbarch, CORE_ADDR addr)
3357 {
3358 gdb_assert (gdbarch != NULL);
3359 gdb_assert (gdbarch->stack_frame_destroyed_p != NULL);
3360 if (gdbarch_debug >= 2)
3361 fprintf_unfiltered (gdb_stdlog, "gdbarch_stack_frame_destroyed_p called\n");
3362 return gdbarch->stack_frame_destroyed_p (gdbarch, addr);
3363 }
3364
3365 void
3366 set_gdbarch_stack_frame_destroyed_p (struct gdbarch *gdbarch,
3367 gdbarch_stack_frame_destroyed_p_ftype stack_frame_destroyed_p)
3368 {
3369 gdbarch->stack_frame_destroyed_p = stack_frame_destroyed_p;
3370 }
3371
3372 int
3373 gdbarch_elf_make_msymbol_special_p (struct gdbarch *gdbarch)
3374 {
3375 gdb_assert (gdbarch != NULL);
3376 return gdbarch->elf_make_msymbol_special != NULL;
3377 }
3378
3379 void
3380 gdbarch_elf_make_msymbol_special (struct gdbarch *gdbarch, asymbol *sym, struct minimal_symbol *msym)
3381 {
3382 gdb_assert (gdbarch != NULL);
3383 gdb_assert (gdbarch->elf_make_msymbol_special != NULL);
3384 if (gdbarch_debug >= 2)
3385 fprintf_unfiltered (gdb_stdlog, "gdbarch_elf_make_msymbol_special called\n");
3386 gdbarch->elf_make_msymbol_special (sym, msym);
3387 }
3388
3389 void
3390 set_gdbarch_elf_make_msymbol_special (struct gdbarch *gdbarch,
3391 gdbarch_elf_make_msymbol_special_ftype elf_make_msymbol_special)
3392 {
3393 gdbarch->elf_make_msymbol_special = elf_make_msymbol_special;
3394 }
3395
3396 void
3397 gdbarch_coff_make_msymbol_special (struct gdbarch *gdbarch, int val, struct minimal_symbol *msym)
3398 {
3399 gdb_assert (gdbarch != NULL);
3400 gdb_assert (gdbarch->coff_make_msymbol_special != NULL);
3401 if (gdbarch_debug >= 2)
3402 fprintf_unfiltered (gdb_stdlog, "gdbarch_coff_make_msymbol_special called\n");
3403 gdbarch->coff_make_msymbol_special (val, msym);
3404 }
3405
3406 void
3407 set_gdbarch_coff_make_msymbol_special (struct gdbarch *gdbarch,
3408 gdbarch_coff_make_msymbol_special_ftype coff_make_msymbol_special)
3409 {
3410 gdbarch->coff_make_msymbol_special = coff_make_msymbol_special;
3411 }
3412
3413 void
3414 gdbarch_make_symbol_special (struct gdbarch *gdbarch, struct symbol *sym, struct objfile *objfile)
3415 {
3416 gdb_assert (gdbarch != NULL);
3417 gdb_assert (gdbarch->make_symbol_special != NULL);
3418 if (gdbarch_debug >= 2)
3419 fprintf_unfiltered (gdb_stdlog, "gdbarch_make_symbol_special called\n");
3420 gdbarch->make_symbol_special (sym, objfile);
3421 }
3422
3423 void
3424 set_gdbarch_make_symbol_special (struct gdbarch *gdbarch,
3425 gdbarch_make_symbol_special_ftype make_symbol_special)
3426 {
3427 gdbarch->make_symbol_special = make_symbol_special;
3428 }
3429
3430 CORE_ADDR
3431 gdbarch_adjust_dwarf2_addr (struct gdbarch *gdbarch, CORE_ADDR pc)
3432 {
3433 gdb_assert (gdbarch != NULL);
3434 gdb_assert (gdbarch->adjust_dwarf2_addr != NULL);
3435 if (gdbarch_debug >= 2)
3436 fprintf_unfiltered (gdb_stdlog, "gdbarch_adjust_dwarf2_addr called\n");
3437 return gdbarch->adjust_dwarf2_addr (pc);
3438 }
3439
3440 void
3441 set_gdbarch_adjust_dwarf2_addr (struct gdbarch *gdbarch,
3442 gdbarch_adjust_dwarf2_addr_ftype adjust_dwarf2_addr)
3443 {
3444 gdbarch->adjust_dwarf2_addr = adjust_dwarf2_addr;
3445 }
3446
3447 CORE_ADDR
3448 gdbarch_adjust_dwarf2_line (struct gdbarch *gdbarch, CORE_ADDR addr, int rel)
3449 {
3450 gdb_assert (gdbarch != NULL);
3451 gdb_assert (gdbarch->adjust_dwarf2_line != NULL);
3452 if (gdbarch_debug >= 2)
3453 fprintf_unfiltered (gdb_stdlog, "gdbarch_adjust_dwarf2_line called\n");
3454 return gdbarch->adjust_dwarf2_line (addr, rel);
3455 }
3456
3457 void
3458 set_gdbarch_adjust_dwarf2_line (struct gdbarch *gdbarch,
3459 gdbarch_adjust_dwarf2_line_ftype adjust_dwarf2_line)
3460 {
3461 gdbarch->adjust_dwarf2_line = adjust_dwarf2_line;
3462 }
3463
3464 int
3465 gdbarch_cannot_step_breakpoint (struct gdbarch *gdbarch)
3466 {
3467 gdb_assert (gdbarch != NULL);
3468 /* Skip verify of cannot_step_breakpoint, invalid_p == 0 */
3469 if (gdbarch_debug >= 2)
3470 fprintf_unfiltered (gdb_stdlog, "gdbarch_cannot_step_breakpoint called\n");
3471 return gdbarch->cannot_step_breakpoint;
3472 }
3473
3474 void
3475 set_gdbarch_cannot_step_breakpoint (struct gdbarch *gdbarch,
3476 int cannot_step_breakpoint)
3477 {
3478 gdbarch->cannot_step_breakpoint = cannot_step_breakpoint;
3479 }
3480
3481 int
3482 gdbarch_have_nonsteppable_watchpoint (struct gdbarch *gdbarch)
3483 {
3484 gdb_assert (gdbarch != NULL);
3485 /* Skip verify of have_nonsteppable_watchpoint, invalid_p == 0 */
3486 if (gdbarch_debug >= 2)
3487 fprintf_unfiltered (gdb_stdlog, "gdbarch_have_nonsteppable_watchpoint called\n");
3488 return gdbarch->have_nonsteppable_watchpoint;
3489 }
3490
3491 void
3492 set_gdbarch_have_nonsteppable_watchpoint (struct gdbarch *gdbarch,
3493 int have_nonsteppable_watchpoint)
3494 {
3495 gdbarch->have_nonsteppable_watchpoint = have_nonsteppable_watchpoint;
3496 }
3497
3498 int
3499 gdbarch_address_class_type_flags_p (struct gdbarch *gdbarch)
3500 {
3501 gdb_assert (gdbarch != NULL);
3502 return gdbarch->address_class_type_flags != NULL;
3503 }
3504
3505 int
3506 gdbarch_address_class_type_flags (struct gdbarch *gdbarch, int byte_size, int dwarf2_addr_class)
3507 {
3508 gdb_assert (gdbarch != NULL);
3509 gdb_assert (gdbarch->address_class_type_flags != NULL);
3510 if (gdbarch_debug >= 2)
3511 fprintf_unfiltered (gdb_stdlog, "gdbarch_address_class_type_flags called\n");
3512 return gdbarch->address_class_type_flags (byte_size, dwarf2_addr_class);
3513 }
3514
3515 void
3516 set_gdbarch_address_class_type_flags (struct gdbarch *gdbarch,
3517 gdbarch_address_class_type_flags_ftype address_class_type_flags)
3518 {
3519 gdbarch->address_class_type_flags = address_class_type_flags;
3520 }
3521
3522 int
3523 gdbarch_address_class_type_flags_to_name_p (struct gdbarch *gdbarch)
3524 {
3525 gdb_assert (gdbarch != NULL);
3526 return gdbarch->address_class_type_flags_to_name != NULL;
3527 }
3528
3529 const char *
3530 gdbarch_address_class_type_flags_to_name (struct gdbarch *gdbarch, int type_flags)
3531 {
3532 gdb_assert (gdbarch != NULL);
3533 gdb_assert (gdbarch->address_class_type_flags_to_name != NULL);
3534 if (gdbarch_debug >= 2)
3535 fprintf_unfiltered (gdb_stdlog, "gdbarch_address_class_type_flags_to_name called\n");
3536 return gdbarch->address_class_type_flags_to_name (gdbarch, type_flags);
3537 }
3538
3539 void
3540 set_gdbarch_address_class_type_flags_to_name (struct gdbarch *gdbarch,
3541 gdbarch_address_class_type_flags_to_name_ftype address_class_type_flags_to_name)
3542 {
3543 gdbarch->address_class_type_flags_to_name = address_class_type_flags_to_name;
3544 }
3545
3546 bool
3547 gdbarch_execute_dwarf_cfa_vendor_op (struct gdbarch *gdbarch, gdb_byte op, struct dwarf2_frame_state *fs)
3548 {
3549 gdb_assert (gdbarch != NULL);
3550 gdb_assert (gdbarch->execute_dwarf_cfa_vendor_op != NULL);
3551 if (gdbarch_debug >= 2)
3552 fprintf_unfiltered (gdb_stdlog, "gdbarch_execute_dwarf_cfa_vendor_op called\n");
3553 return gdbarch->execute_dwarf_cfa_vendor_op (gdbarch, op, fs);
3554 }
3555
3556 void
3557 set_gdbarch_execute_dwarf_cfa_vendor_op (struct gdbarch *gdbarch,
3558 gdbarch_execute_dwarf_cfa_vendor_op_ftype execute_dwarf_cfa_vendor_op)
3559 {
3560 gdbarch->execute_dwarf_cfa_vendor_op = execute_dwarf_cfa_vendor_op;
3561 }
3562
3563 int
3564 gdbarch_address_class_name_to_type_flags_p (struct gdbarch *gdbarch)
3565 {
3566 gdb_assert (gdbarch != NULL);
3567 return gdbarch->address_class_name_to_type_flags != NULL;
3568 }
3569
3570 int
3571 gdbarch_address_class_name_to_type_flags (struct gdbarch *gdbarch, const char *name, int *type_flags_ptr)
3572 {
3573 gdb_assert (gdbarch != NULL);
3574 gdb_assert (gdbarch->address_class_name_to_type_flags != NULL);
3575 if (gdbarch_debug >= 2)
3576 fprintf_unfiltered (gdb_stdlog, "gdbarch_address_class_name_to_type_flags called\n");
3577 return gdbarch->address_class_name_to_type_flags (gdbarch, name, type_flags_ptr);
3578 }
3579
3580 void
3581 set_gdbarch_address_class_name_to_type_flags (struct gdbarch *gdbarch,
3582 gdbarch_address_class_name_to_type_flags_ftype address_class_name_to_type_flags)
3583 {
3584 gdbarch->address_class_name_to_type_flags = address_class_name_to_type_flags;
3585 }
3586
3587 int
3588 gdbarch_register_reggroup_p (struct gdbarch *gdbarch, int regnum, struct reggroup *reggroup)
3589 {
3590 gdb_assert (gdbarch != NULL);
3591 gdb_assert (gdbarch->register_reggroup_p != NULL);
3592 if (gdbarch_debug >= 2)
3593 fprintf_unfiltered (gdb_stdlog, "gdbarch_register_reggroup_p called\n");
3594 return gdbarch->register_reggroup_p (gdbarch, regnum, reggroup);
3595 }
3596
3597 void
3598 set_gdbarch_register_reggroup_p (struct gdbarch *gdbarch,
3599 gdbarch_register_reggroup_p_ftype register_reggroup_p)
3600 {
3601 gdbarch->register_reggroup_p = register_reggroup_p;
3602 }
3603
3604 int
3605 gdbarch_fetch_pointer_argument_p (struct gdbarch *gdbarch)
3606 {
3607 gdb_assert (gdbarch != NULL);
3608 return gdbarch->fetch_pointer_argument != NULL;
3609 }
3610
3611 CORE_ADDR
3612 gdbarch_fetch_pointer_argument (struct gdbarch *gdbarch, struct frame_info *frame, int argi, struct type *type)
3613 {
3614 gdb_assert (gdbarch != NULL);
3615 gdb_assert (gdbarch->fetch_pointer_argument != NULL);
3616 if (gdbarch_debug >= 2)
3617 fprintf_unfiltered (gdb_stdlog, "gdbarch_fetch_pointer_argument called\n");
3618 return gdbarch->fetch_pointer_argument (frame, argi, type);
3619 }
3620
3621 void
3622 set_gdbarch_fetch_pointer_argument (struct gdbarch *gdbarch,
3623 gdbarch_fetch_pointer_argument_ftype fetch_pointer_argument)
3624 {
3625 gdbarch->fetch_pointer_argument = fetch_pointer_argument;
3626 }
3627
3628 int
3629 gdbarch_iterate_over_regset_sections_p (struct gdbarch *gdbarch)
3630 {
3631 gdb_assert (gdbarch != NULL);
3632 return gdbarch->iterate_over_regset_sections != NULL;
3633 }
3634
3635 void
3636 gdbarch_iterate_over_regset_sections (struct gdbarch *gdbarch, iterate_over_regset_sections_cb *cb, void *cb_data, const struct regcache *regcache)
3637 {
3638 gdb_assert (gdbarch != NULL);
3639 gdb_assert (gdbarch->iterate_over_regset_sections != NULL);
3640 if (gdbarch_debug >= 2)
3641 fprintf_unfiltered (gdb_stdlog, "gdbarch_iterate_over_regset_sections called\n");
3642 gdbarch->iterate_over_regset_sections (gdbarch, cb, cb_data, regcache);
3643 }
3644
3645 void
3646 set_gdbarch_iterate_over_regset_sections (struct gdbarch *gdbarch,
3647 gdbarch_iterate_over_regset_sections_ftype iterate_over_regset_sections)
3648 {
3649 gdbarch->iterate_over_regset_sections = iterate_over_regset_sections;
3650 }
3651
3652 int
3653 gdbarch_make_corefile_notes_p (struct gdbarch *gdbarch)
3654 {
3655 gdb_assert (gdbarch != NULL);
3656 return gdbarch->make_corefile_notes != NULL;
3657 }
3658
3659 char *
3660 gdbarch_make_corefile_notes (struct gdbarch *gdbarch, bfd *obfd, int *note_size)
3661 {
3662 gdb_assert (gdbarch != NULL);
3663 gdb_assert (gdbarch->make_corefile_notes != NULL);
3664 if (gdbarch_debug >= 2)
3665 fprintf_unfiltered (gdb_stdlog, "gdbarch_make_corefile_notes called\n");
3666 return gdbarch->make_corefile_notes (gdbarch, obfd, note_size);
3667 }
3668
3669 void
3670 set_gdbarch_make_corefile_notes (struct gdbarch *gdbarch,
3671 gdbarch_make_corefile_notes_ftype make_corefile_notes)
3672 {
3673 gdbarch->make_corefile_notes = make_corefile_notes;
3674 }
3675
3676 int
3677 gdbarch_find_memory_regions_p (struct gdbarch *gdbarch)
3678 {
3679 gdb_assert (gdbarch != NULL);
3680 return gdbarch->find_memory_regions != NULL;
3681 }
3682
3683 int
3684 gdbarch_find_memory_regions (struct gdbarch *gdbarch, find_memory_region_ftype func, void *data)
3685 {
3686 gdb_assert (gdbarch != NULL);
3687 gdb_assert (gdbarch->find_memory_regions != NULL);
3688 if (gdbarch_debug >= 2)
3689 fprintf_unfiltered (gdb_stdlog, "gdbarch_find_memory_regions called\n");
3690 return gdbarch->find_memory_regions (gdbarch, func, data);
3691 }
3692
3693 void
3694 set_gdbarch_find_memory_regions (struct gdbarch *gdbarch,
3695 gdbarch_find_memory_regions_ftype find_memory_regions)
3696 {
3697 gdbarch->find_memory_regions = find_memory_regions;
3698 }
3699
3700 int
3701 gdbarch_core_xfer_shared_libraries_p (struct gdbarch *gdbarch)
3702 {
3703 gdb_assert (gdbarch != NULL);
3704 return gdbarch->core_xfer_shared_libraries != NULL;
3705 }
3706
3707 ULONGEST
3708 gdbarch_core_xfer_shared_libraries (struct gdbarch *gdbarch, gdb_byte *readbuf, ULONGEST offset, ULONGEST len)
3709 {
3710 gdb_assert (gdbarch != NULL);
3711 gdb_assert (gdbarch->core_xfer_shared_libraries != NULL);
3712 if (gdbarch_debug >= 2)
3713 fprintf_unfiltered (gdb_stdlog, "gdbarch_core_xfer_shared_libraries called\n");
3714 return gdbarch->core_xfer_shared_libraries (gdbarch, readbuf, offset, len);
3715 }
3716
3717 void
3718 set_gdbarch_core_xfer_shared_libraries (struct gdbarch *gdbarch,
3719 gdbarch_core_xfer_shared_libraries_ftype core_xfer_shared_libraries)
3720 {
3721 gdbarch->core_xfer_shared_libraries = core_xfer_shared_libraries;
3722 }
3723
3724 int
3725 gdbarch_core_xfer_shared_libraries_aix_p (struct gdbarch *gdbarch)
3726 {
3727 gdb_assert (gdbarch != NULL);
3728 return gdbarch->core_xfer_shared_libraries_aix != NULL;
3729 }
3730
3731 ULONGEST
3732 gdbarch_core_xfer_shared_libraries_aix (struct gdbarch *gdbarch, gdb_byte *readbuf, ULONGEST offset, ULONGEST len)
3733 {
3734 gdb_assert (gdbarch != NULL);
3735 gdb_assert (gdbarch->core_xfer_shared_libraries_aix != NULL);
3736 if (gdbarch_debug >= 2)
3737 fprintf_unfiltered (gdb_stdlog, "gdbarch_core_xfer_shared_libraries_aix called\n");
3738 return gdbarch->core_xfer_shared_libraries_aix (gdbarch, readbuf, offset, len);
3739 }
3740
3741 void
3742 set_gdbarch_core_xfer_shared_libraries_aix (struct gdbarch *gdbarch,
3743 gdbarch_core_xfer_shared_libraries_aix_ftype core_xfer_shared_libraries_aix)
3744 {
3745 gdbarch->core_xfer_shared_libraries_aix = core_xfer_shared_libraries_aix;
3746 }
3747
3748 int
3749 gdbarch_core_pid_to_str_p (struct gdbarch *gdbarch)
3750 {
3751 gdb_assert (gdbarch != NULL);
3752 return gdbarch->core_pid_to_str != NULL;
3753 }
3754
3755 std::string
3756 gdbarch_core_pid_to_str (struct gdbarch *gdbarch, ptid_t ptid)
3757 {
3758 gdb_assert (gdbarch != NULL);
3759 gdb_assert (gdbarch->core_pid_to_str != NULL);
3760 if (gdbarch_debug >= 2)
3761 fprintf_unfiltered (gdb_stdlog, "gdbarch_core_pid_to_str called\n");
3762 return gdbarch->core_pid_to_str (gdbarch, ptid);
3763 }
3764
3765 void
3766 set_gdbarch_core_pid_to_str (struct gdbarch *gdbarch,
3767 gdbarch_core_pid_to_str_ftype core_pid_to_str)
3768 {
3769 gdbarch->core_pid_to_str = core_pid_to_str;
3770 }
3771
3772 int
3773 gdbarch_core_thread_name_p (struct gdbarch *gdbarch)
3774 {
3775 gdb_assert (gdbarch != NULL);
3776 return gdbarch->core_thread_name != NULL;
3777 }
3778
3779 const char *
3780 gdbarch_core_thread_name (struct gdbarch *gdbarch, struct thread_info *thr)
3781 {
3782 gdb_assert (gdbarch != NULL);
3783 gdb_assert (gdbarch->core_thread_name != NULL);
3784 if (gdbarch_debug >= 2)
3785 fprintf_unfiltered (gdb_stdlog, "gdbarch_core_thread_name called\n");
3786 return gdbarch->core_thread_name (gdbarch, thr);
3787 }
3788
3789 void
3790 set_gdbarch_core_thread_name (struct gdbarch *gdbarch,
3791 gdbarch_core_thread_name_ftype core_thread_name)
3792 {
3793 gdbarch->core_thread_name = core_thread_name;
3794 }
3795
3796 int
3797 gdbarch_core_xfer_siginfo_p (struct gdbarch *gdbarch)
3798 {
3799 gdb_assert (gdbarch != NULL);
3800 return gdbarch->core_xfer_siginfo != NULL;
3801 }
3802
3803 LONGEST
3804 gdbarch_core_xfer_siginfo (struct gdbarch *gdbarch, gdb_byte *readbuf, ULONGEST offset, ULONGEST len)
3805 {
3806 gdb_assert (gdbarch != NULL);
3807 gdb_assert (gdbarch->core_xfer_siginfo != NULL);
3808 if (gdbarch_debug >= 2)
3809 fprintf_unfiltered (gdb_stdlog, "gdbarch_core_xfer_siginfo called\n");
3810 return gdbarch->core_xfer_siginfo (gdbarch, readbuf, offset, len);
3811 }
3812
3813 void
3814 set_gdbarch_core_xfer_siginfo (struct gdbarch *gdbarch,
3815 gdbarch_core_xfer_siginfo_ftype core_xfer_siginfo)
3816 {
3817 gdbarch->core_xfer_siginfo = core_xfer_siginfo;
3818 }
3819
3820 int
3821 gdbarch_gcore_bfd_target_p (struct gdbarch *gdbarch)
3822 {
3823 gdb_assert (gdbarch != NULL);
3824 return gdbarch->gcore_bfd_target != 0;
3825 }
3826
3827 const char *
3828 gdbarch_gcore_bfd_target (struct gdbarch *gdbarch)
3829 {
3830 gdb_assert (gdbarch != NULL);
3831 /* Check variable changed from pre-default. */
3832 gdb_assert (gdbarch->gcore_bfd_target != 0);
3833 if (gdbarch_debug >= 2)
3834 fprintf_unfiltered (gdb_stdlog, "gdbarch_gcore_bfd_target called\n");
3835 return gdbarch->gcore_bfd_target;
3836 }
3837
3838 void
3839 set_gdbarch_gcore_bfd_target (struct gdbarch *gdbarch,
3840 const char * gcore_bfd_target)
3841 {
3842 gdbarch->gcore_bfd_target = gcore_bfd_target;
3843 }
3844
3845 int
3846 gdbarch_vtable_function_descriptors (struct gdbarch *gdbarch)
3847 {
3848 gdb_assert (gdbarch != NULL);
3849 /* Skip verify of vtable_function_descriptors, invalid_p == 0 */
3850 if (gdbarch_debug >= 2)
3851 fprintf_unfiltered (gdb_stdlog, "gdbarch_vtable_function_descriptors called\n");
3852 return gdbarch->vtable_function_descriptors;
3853 }
3854
3855 void
3856 set_gdbarch_vtable_function_descriptors (struct gdbarch *gdbarch,
3857 int vtable_function_descriptors)
3858 {
3859 gdbarch->vtable_function_descriptors = vtable_function_descriptors;
3860 }
3861
3862 int
3863 gdbarch_vbit_in_delta (struct gdbarch *gdbarch)
3864 {
3865 gdb_assert (gdbarch != NULL);
3866 /* Skip verify of vbit_in_delta, invalid_p == 0 */
3867 if (gdbarch_debug >= 2)
3868 fprintf_unfiltered (gdb_stdlog, "gdbarch_vbit_in_delta called\n");
3869 return gdbarch->vbit_in_delta;
3870 }
3871
3872 void
3873 set_gdbarch_vbit_in_delta (struct gdbarch *gdbarch,
3874 int vbit_in_delta)
3875 {
3876 gdbarch->vbit_in_delta = vbit_in_delta;
3877 }
3878
3879 void
3880 gdbarch_skip_permanent_breakpoint (struct gdbarch *gdbarch, struct regcache *regcache)
3881 {
3882 gdb_assert (gdbarch != NULL);
3883 gdb_assert (gdbarch->skip_permanent_breakpoint != NULL);
3884 if (gdbarch_debug >= 2)
3885 fprintf_unfiltered (gdb_stdlog, "gdbarch_skip_permanent_breakpoint called\n");
3886 gdbarch->skip_permanent_breakpoint (regcache);
3887 }
3888
3889 void
3890 set_gdbarch_skip_permanent_breakpoint (struct gdbarch *gdbarch,
3891 gdbarch_skip_permanent_breakpoint_ftype skip_permanent_breakpoint)
3892 {
3893 gdbarch->skip_permanent_breakpoint = skip_permanent_breakpoint;
3894 }
3895
3896 int
3897 gdbarch_max_insn_length_p (struct gdbarch *gdbarch)
3898 {
3899 gdb_assert (gdbarch != NULL);
3900 return gdbarch->max_insn_length != 0;
3901 }
3902
3903 ULONGEST
3904 gdbarch_max_insn_length (struct gdbarch *gdbarch)
3905 {
3906 gdb_assert (gdbarch != NULL);
3907 /* Check variable changed from pre-default. */
3908 gdb_assert (gdbarch->max_insn_length != 0);
3909 if (gdbarch_debug >= 2)
3910 fprintf_unfiltered (gdb_stdlog, "gdbarch_max_insn_length called\n");
3911 return gdbarch->max_insn_length;
3912 }
3913
3914 void
3915 set_gdbarch_max_insn_length (struct gdbarch *gdbarch,
3916 ULONGEST max_insn_length)
3917 {
3918 gdbarch->max_insn_length = max_insn_length;
3919 }
3920
3921 int
3922 gdbarch_displaced_step_copy_insn_p (struct gdbarch *gdbarch)
3923 {
3924 gdb_assert (gdbarch != NULL);
3925 return gdbarch->displaced_step_copy_insn != NULL;
3926 }
3927
3928 displaced_step_copy_insn_closure_up
3929 gdbarch_displaced_step_copy_insn (struct gdbarch *gdbarch, CORE_ADDR from, CORE_ADDR to, struct regcache *regs)
3930 {
3931 gdb_assert (gdbarch != NULL);
3932 gdb_assert (gdbarch->displaced_step_copy_insn != NULL);
3933 if (gdbarch_debug >= 2)
3934 fprintf_unfiltered (gdb_stdlog, "gdbarch_displaced_step_copy_insn called\n");
3935 return gdbarch->displaced_step_copy_insn (gdbarch, from, to, regs);
3936 }
3937
3938 void
3939 set_gdbarch_displaced_step_copy_insn (struct gdbarch *gdbarch,
3940 gdbarch_displaced_step_copy_insn_ftype displaced_step_copy_insn)
3941 {
3942 gdbarch->displaced_step_copy_insn = displaced_step_copy_insn;
3943 }
3944
3945 int
3946 gdbarch_displaced_step_hw_singlestep (struct gdbarch *gdbarch, struct displaced_step_copy_insn_closure *closure)
3947 {
3948 gdb_assert (gdbarch != NULL);
3949 gdb_assert (gdbarch->displaced_step_hw_singlestep != NULL);
3950 if (gdbarch_debug >= 2)
3951 fprintf_unfiltered (gdb_stdlog, "gdbarch_displaced_step_hw_singlestep called\n");
3952 return gdbarch->displaced_step_hw_singlestep (gdbarch, closure);
3953 }
3954
3955 void
3956 set_gdbarch_displaced_step_hw_singlestep (struct gdbarch *gdbarch,
3957 gdbarch_displaced_step_hw_singlestep_ftype displaced_step_hw_singlestep)
3958 {
3959 gdbarch->displaced_step_hw_singlestep = displaced_step_hw_singlestep;
3960 }
3961
3962 int
3963 gdbarch_displaced_step_fixup_p (struct gdbarch *gdbarch)
3964 {
3965 gdb_assert (gdbarch != NULL);
3966 return gdbarch->displaced_step_fixup != NULL;
3967 }
3968
3969 void
3970 gdbarch_displaced_step_fixup (struct gdbarch *gdbarch, struct displaced_step_copy_insn_closure *closure, CORE_ADDR from, CORE_ADDR to, struct regcache *regs)
3971 {
3972 gdb_assert (gdbarch != NULL);
3973 gdb_assert (gdbarch->displaced_step_fixup != NULL);
3974 /* Do not check predicate: gdbarch->displaced_step_fixup != NULL, allow call. */
3975 if (gdbarch_debug >= 2)
3976 fprintf_unfiltered (gdb_stdlog, "gdbarch_displaced_step_fixup called\n");
3977 gdbarch->displaced_step_fixup (gdbarch, closure, from, to, regs);
3978 }
3979
3980 void
3981 set_gdbarch_displaced_step_fixup (struct gdbarch *gdbarch,
3982 gdbarch_displaced_step_fixup_ftype displaced_step_fixup)
3983 {
3984 gdbarch->displaced_step_fixup = displaced_step_fixup;
3985 }
3986
3987 displaced_step_prepare_status
3988 gdbarch_displaced_step_prepare (struct gdbarch *gdbarch, thread_info *thread)
3989 {
3990 gdb_assert (gdbarch != NULL);
3991 gdb_assert (gdbarch->displaced_step_prepare != NULL);
3992 if (gdbarch_debug >= 2)
3993 fprintf_unfiltered (gdb_stdlog, "gdbarch_displaced_step_prepare called\n");
3994 return gdbarch->displaced_step_prepare (gdbarch, thread);
3995 }
3996
3997 void
3998 set_gdbarch_displaced_step_prepare (struct gdbarch *gdbarch,
3999 gdbarch_displaced_step_prepare_ftype displaced_step_prepare)
4000 {
4001 gdbarch->displaced_step_prepare = displaced_step_prepare;
4002 }
4003
4004 displaced_step_finish_status
4005 gdbarch_displaced_step_finish (struct gdbarch *gdbarch, thread_info *thread, gdb_signal sig)
4006 {
4007 gdb_assert (gdbarch != NULL);
4008 gdb_assert (gdbarch->displaced_step_finish != NULL);
4009 if (gdbarch_debug >= 2)
4010 fprintf_unfiltered (gdb_stdlog, "gdbarch_displaced_step_finish called\n");
4011 return gdbarch->displaced_step_finish (gdbarch, thread, sig);
4012 }
4013
4014 void
4015 set_gdbarch_displaced_step_finish (struct gdbarch *gdbarch,
4016 gdbarch_displaced_step_finish_ftype displaced_step_finish)
4017 {
4018 gdbarch->displaced_step_finish = displaced_step_finish;
4019 }
4020
4021 int
4022 gdbarch_relocate_instruction_p (struct gdbarch *gdbarch)
4023 {
4024 gdb_assert (gdbarch != NULL);
4025 return gdbarch->relocate_instruction != NULL;
4026 }
4027
4028 void
4029 gdbarch_relocate_instruction (struct gdbarch *gdbarch, CORE_ADDR *to, CORE_ADDR from)
4030 {
4031 gdb_assert (gdbarch != NULL);
4032 gdb_assert (gdbarch->relocate_instruction != NULL);
4033 /* Do not check predicate: gdbarch->relocate_instruction != NULL, allow call. */
4034 if (gdbarch_debug >= 2)
4035 fprintf_unfiltered (gdb_stdlog, "gdbarch_relocate_instruction called\n");
4036 gdbarch->relocate_instruction (gdbarch, to, from);
4037 }
4038
4039 void
4040 set_gdbarch_relocate_instruction (struct gdbarch *gdbarch,
4041 gdbarch_relocate_instruction_ftype relocate_instruction)
4042 {
4043 gdbarch->relocate_instruction = relocate_instruction;
4044 }
4045
4046 int
4047 gdbarch_overlay_update_p (struct gdbarch *gdbarch)
4048 {
4049 gdb_assert (gdbarch != NULL);
4050 return gdbarch->overlay_update != NULL;
4051 }
4052
4053 void
4054 gdbarch_overlay_update (struct gdbarch *gdbarch, struct obj_section *osect)
4055 {
4056 gdb_assert (gdbarch != NULL);
4057 gdb_assert (gdbarch->overlay_update != NULL);
4058 if (gdbarch_debug >= 2)
4059 fprintf_unfiltered (gdb_stdlog, "gdbarch_overlay_update called\n");
4060 gdbarch->overlay_update (osect);
4061 }
4062
4063 void
4064 set_gdbarch_overlay_update (struct gdbarch *gdbarch,
4065 gdbarch_overlay_update_ftype overlay_update)
4066 {
4067 gdbarch->overlay_update = overlay_update;
4068 }
4069
4070 int
4071 gdbarch_core_read_description_p (struct gdbarch *gdbarch)
4072 {
4073 gdb_assert (gdbarch != NULL);
4074 return gdbarch->core_read_description != NULL;
4075 }
4076
4077 const struct target_desc *
4078 gdbarch_core_read_description (struct gdbarch *gdbarch, struct target_ops *target, bfd *abfd)
4079 {
4080 gdb_assert (gdbarch != NULL);
4081 gdb_assert (gdbarch->core_read_description != NULL);
4082 if (gdbarch_debug >= 2)
4083 fprintf_unfiltered (gdb_stdlog, "gdbarch_core_read_description called\n");
4084 return gdbarch->core_read_description (gdbarch, target, abfd);
4085 }
4086
4087 void
4088 set_gdbarch_core_read_description (struct gdbarch *gdbarch,
4089 gdbarch_core_read_description_ftype core_read_description)
4090 {
4091 gdbarch->core_read_description = core_read_description;
4092 }
4093
4094 int
4095 gdbarch_sofun_address_maybe_missing (struct gdbarch *gdbarch)
4096 {
4097 gdb_assert (gdbarch != NULL);
4098 /* Skip verify of sofun_address_maybe_missing, invalid_p == 0 */
4099 if (gdbarch_debug >= 2)
4100 fprintf_unfiltered (gdb_stdlog, "gdbarch_sofun_address_maybe_missing called\n");
4101 return gdbarch->sofun_address_maybe_missing;
4102 }
4103
4104 void
4105 set_gdbarch_sofun_address_maybe_missing (struct gdbarch *gdbarch,
4106 int sofun_address_maybe_missing)
4107 {
4108 gdbarch->sofun_address_maybe_missing = sofun_address_maybe_missing;
4109 }
4110
4111 int
4112 gdbarch_process_record_p (struct gdbarch *gdbarch)
4113 {
4114 gdb_assert (gdbarch != NULL);
4115 return gdbarch->process_record != NULL;
4116 }
4117
4118 int
4119 gdbarch_process_record (struct gdbarch *gdbarch, struct regcache *regcache, CORE_ADDR addr)
4120 {
4121 gdb_assert (gdbarch != NULL);
4122 gdb_assert (gdbarch->process_record != NULL);
4123 if (gdbarch_debug >= 2)
4124 fprintf_unfiltered (gdb_stdlog, "gdbarch_process_record called\n");
4125 return gdbarch->process_record (gdbarch, regcache, addr);
4126 }
4127
4128 void
4129 set_gdbarch_process_record (struct gdbarch *gdbarch,
4130 gdbarch_process_record_ftype process_record)
4131 {
4132 gdbarch->process_record = process_record;
4133 }
4134
4135 int
4136 gdbarch_process_record_signal_p (struct gdbarch *gdbarch)
4137 {
4138 gdb_assert (gdbarch != NULL);
4139 return gdbarch->process_record_signal != NULL;
4140 }
4141
4142 int
4143 gdbarch_process_record_signal (struct gdbarch *gdbarch, struct regcache *regcache, enum gdb_signal signal)
4144 {
4145 gdb_assert (gdbarch != NULL);
4146 gdb_assert (gdbarch->process_record_signal != NULL);
4147 if (gdbarch_debug >= 2)
4148 fprintf_unfiltered (gdb_stdlog, "gdbarch_process_record_signal called\n");
4149 return gdbarch->process_record_signal (gdbarch, regcache, signal);
4150 }
4151
4152 void
4153 set_gdbarch_process_record_signal (struct gdbarch *gdbarch,
4154 gdbarch_process_record_signal_ftype process_record_signal)
4155 {
4156 gdbarch->process_record_signal = process_record_signal;
4157 }
4158
4159 int
4160 gdbarch_gdb_signal_from_target_p (struct gdbarch *gdbarch)
4161 {
4162 gdb_assert (gdbarch != NULL);
4163 return gdbarch->gdb_signal_from_target != NULL;
4164 }
4165
4166 enum gdb_signal
4167 gdbarch_gdb_signal_from_target (struct gdbarch *gdbarch, int signo)
4168 {
4169 gdb_assert (gdbarch != NULL);
4170 gdb_assert (gdbarch->gdb_signal_from_target != NULL);
4171 if (gdbarch_debug >= 2)
4172 fprintf_unfiltered (gdb_stdlog, "gdbarch_gdb_signal_from_target called\n");
4173 return gdbarch->gdb_signal_from_target (gdbarch, signo);
4174 }
4175
4176 void
4177 set_gdbarch_gdb_signal_from_target (struct gdbarch *gdbarch,
4178 gdbarch_gdb_signal_from_target_ftype gdb_signal_from_target)
4179 {
4180 gdbarch->gdb_signal_from_target = gdb_signal_from_target;
4181 }
4182
4183 int
4184 gdbarch_gdb_signal_to_target_p (struct gdbarch *gdbarch)
4185 {
4186 gdb_assert (gdbarch != NULL);
4187 return gdbarch->gdb_signal_to_target != NULL;
4188 }
4189
4190 int
4191 gdbarch_gdb_signal_to_target (struct gdbarch *gdbarch, enum gdb_signal signal)
4192 {
4193 gdb_assert (gdbarch != NULL);
4194 gdb_assert (gdbarch->gdb_signal_to_target != NULL);
4195 if (gdbarch_debug >= 2)
4196 fprintf_unfiltered (gdb_stdlog, "gdbarch_gdb_signal_to_target called\n");
4197 return gdbarch->gdb_signal_to_target (gdbarch, signal);
4198 }
4199
4200 void
4201 set_gdbarch_gdb_signal_to_target (struct gdbarch *gdbarch,
4202 gdbarch_gdb_signal_to_target_ftype gdb_signal_to_target)
4203 {
4204 gdbarch->gdb_signal_to_target = gdb_signal_to_target;
4205 }
4206
4207 int
4208 gdbarch_get_siginfo_type_p (struct gdbarch *gdbarch)
4209 {
4210 gdb_assert (gdbarch != NULL);
4211 return gdbarch->get_siginfo_type != NULL;
4212 }
4213
4214 struct type *
4215 gdbarch_get_siginfo_type (struct gdbarch *gdbarch)
4216 {
4217 gdb_assert (gdbarch != NULL);
4218 gdb_assert (gdbarch->get_siginfo_type != NULL);
4219 if (gdbarch_debug >= 2)
4220 fprintf_unfiltered (gdb_stdlog, "gdbarch_get_siginfo_type called\n");
4221 return gdbarch->get_siginfo_type (gdbarch);
4222 }
4223
4224 void
4225 set_gdbarch_get_siginfo_type (struct gdbarch *gdbarch,
4226 gdbarch_get_siginfo_type_ftype get_siginfo_type)
4227 {
4228 gdbarch->get_siginfo_type = get_siginfo_type;
4229 }
4230
4231 int
4232 gdbarch_record_special_symbol_p (struct gdbarch *gdbarch)
4233 {
4234 gdb_assert (gdbarch != NULL);
4235 return gdbarch->record_special_symbol != NULL;
4236 }
4237
4238 void
4239 gdbarch_record_special_symbol (struct gdbarch *gdbarch, struct objfile *objfile, asymbol *sym)
4240 {
4241 gdb_assert (gdbarch != NULL);
4242 gdb_assert (gdbarch->record_special_symbol != NULL);
4243 if (gdbarch_debug >= 2)
4244 fprintf_unfiltered (gdb_stdlog, "gdbarch_record_special_symbol called\n");
4245 gdbarch->record_special_symbol (gdbarch, objfile, sym);
4246 }
4247
4248 void
4249 set_gdbarch_record_special_symbol (struct gdbarch *gdbarch,
4250 gdbarch_record_special_symbol_ftype record_special_symbol)
4251 {
4252 gdbarch->record_special_symbol = record_special_symbol;
4253 }
4254
4255 int
4256 gdbarch_get_syscall_number_p (struct gdbarch *gdbarch)
4257 {
4258 gdb_assert (gdbarch != NULL);
4259 return gdbarch->get_syscall_number != NULL;
4260 }
4261
4262 LONGEST
4263 gdbarch_get_syscall_number (struct gdbarch *gdbarch, thread_info *thread)
4264 {
4265 gdb_assert (gdbarch != NULL);
4266 gdb_assert (gdbarch->get_syscall_number != NULL);
4267 if (gdbarch_debug >= 2)
4268 fprintf_unfiltered (gdb_stdlog, "gdbarch_get_syscall_number called\n");
4269 return gdbarch->get_syscall_number (gdbarch, thread);
4270 }
4271
4272 void
4273 set_gdbarch_get_syscall_number (struct gdbarch *gdbarch,
4274 gdbarch_get_syscall_number_ftype get_syscall_number)
4275 {
4276 gdbarch->get_syscall_number = get_syscall_number;
4277 }
4278
4279 const char *
4280 gdbarch_xml_syscall_file (struct gdbarch *gdbarch)
4281 {
4282 gdb_assert (gdbarch != NULL);
4283 /* Skip verify of xml_syscall_file, invalid_p == 0 */
4284 if (gdbarch_debug >= 2)
4285 fprintf_unfiltered (gdb_stdlog, "gdbarch_xml_syscall_file called\n");
4286 return gdbarch->xml_syscall_file;
4287 }
4288
4289 void
4290 set_gdbarch_xml_syscall_file (struct gdbarch *gdbarch,
4291 const char * xml_syscall_file)
4292 {
4293 gdbarch->xml_syscall_file = xml_syscall_file;
4294 }
4295
4296 struct syscalls_info *
4297 gdbarch_syscalls_info (struct gdbarch *gdbarch)
4298 {
4299 gdb_assert (gdbarch != NULL);
4300 /* Skip verify of syscalls_info, invalid_p == 0 */
4301 if (gdbarch_debug >= 2)
4302 fprintf_unfiltered (gdb_stdlog, "gdbarch_syscalls_info called\n");
4303 return gdbarch->syscalls_info;
4304 }
4305
4306 void
4307 set_gdbarch_syscalls_info (struct gdbarch *gdbarch,
4308 struct syscalls_info * syscalls_info)
4309 {
4310 gdbarch->syscalls_info = syscalls_info;
4311 }
4312
4313 const char *const *
4314 gdbarch_stap_integer_prefixes (struct gdbarch *gdbarch)
4315 {
4316 gdb_assert (gdbarch != NULL);
4317 /* Skip verify of stap_integer_prefixes, invalid_p == 0 */
4318 if (gdbarch_debug >= 2)
4319 fprintf_unfiltered (gdb_stdlog, "gdbarch_stap_integer_prefixes called\n");
4320 return gdbarch->stap_integer_prefixes;
4321 }
4322
4323 void
4324 set_gdbarch_stap_integer_prefixes (struct gdbarch *gdbarch,
4325 const char *const * stap_integer_prefixes)
4326 {
4327 gdbarch->stap_integer_prefixes = stap_integer_prefixes;
4328 }
4329
4330 const char *const *
4331 gdbarch_stap_integer_suffixes (struct gdbarch *gdbarch)
4332 {
4333 gdb_assert (gdbarch != NULL);
4334 /* Skip verify of stap_integer_suffixes, invalid_p == 0 */
4335 if (gdbarch_debug >= 2)
4336 fprintf_unfiltered (gdb_stdlog, "gdbarch_stap_integer_suffixes called\n");
4337 return gdbarch->stap_integer_suffixes;
4338 }
4339
4340 void
4341 set_gdbarch_stap_integer_suffixes (struct gdbarch *gdbarch,
4342 const char *const * stap_integer_suffixes)
4343 {
4344 gdbarch->stap_integer_suffixes = stap_integer_suffixes;
4345 }
4346
4347 const char *const *
4348 gdbarch_stap_register_prefixes (struct gdbarch *gdbarch)
4349 {
4350 gdb_assert (gdbarch != NULL);
4351 /* Skip verify of stap_register_prefixes, invalid_p == 0 */
4352 if (gdbarch_debug >= 2)
4353 fprintf_unfiltered (gdb_stdlog, "gdbarch_stap_register_prefixes called\n");
4354 return gdbarch->stap_register_prefixes;
4355 }
4356
4357 void
4358 set_gdbarch_stap_register_prefixes (struct gdbarch *gdbarch,
4359 const char *const * stap_register_prefixes)
4360 {
4361 gdbarch->stap_register_prefixes = stap_register_prefixes;
4362 }
4363
4364 const char *const *
4365 gdbarch_stap_register_suffixes (struct gdbarch *gdbarch)
4366 {
4367 gdb_assert (gdbarch != NULL);
4368 /* Skip verify of stap_register_suffixes, invalid_p == 0 */
4369 if (gdbarch_debug >= 2)
4370 fprintf_unfiltered (gdb_stdlog, "gdbarch_stap_register_suffixes called\n");
4371 return gdbarch->stap_register_suffixes;
4372 }
4373
4374 void
4375 set_gdbarch_stap_register_suffixes (struct gdbarch *gdbarch,
4376 const char *const * stap_register_suffixes)
4377 {
4378 gdbarch->stap_register_suffixes = stap_register_suffixes;
4379 }
4380
4381 const char *const *
4382 gdbarch_stap_register_indirection_prefixes (struct gdbarch *gdbarch)
4383 {
4384 gdb_assert (gdbarch != NULL);
4385 /* Skip verify of stap_register_indirection_prefixes, invalid_p == 0 */
4386 if (gdbarch_debug >= 2)
4387 fprintf_unfiltered (gdb_stdlog, "gdbarch_stap_register_indirection_prefixes called\n");
4388 return gdbarch->stap_register_indirection_prefixes;
4389 }
4390
4391 void
4392 set_gdbarch_stap_register_indirection_prefixes (struct gdbarch *gdbarch,
4393 const char *const * stap_register_indirection_prefixes)
4394 {
4395 gdbarch->stap_register_indirection_prefixes = stap_register_indirection_prefixes;
4396 }
4397
4398 const char *const *
4399 gdbarch_stap_register_indirection_suffixes (struct gdbarch *gdbarch)
4400 {
4401 gdb_assert (gdbarch != NULL);
4402 /* Skip verify of stap_register_indirection_suffixes, invalid_p == 0 */
4403 if (gdbarch_debug >= 2)
4404 fprintf_unfiltered (gdb_stdlog, "gdbarch_stap_register_indirection_suffixes called\n");
4405 return gdbarch->stap_register_indirection_suffixes;
4406 }
4407
4408 void
4409 set_gdbarch_stap_register_indirection_suffixes (struct gdbarch *gdbarch,
4410 const char *const * stap_register_indirection_suffixes)
4411 {
4412 gdbarch->stap_register_indirection_suffixes = stap_register_indirection_suffixes;
4413 }
4414
4415 const char *
4416 gdbarch_stap_gdb_register_prefix (struct gdbarch *gdbarch)
4417 {
4418 gdb_assert (gdbarch != NULL);
4419 /* Skip verify of stap_gdb_register_prefix, invalid_p == 0 */
4420 if (gdbarch_debug >= 2)
4421 fprintf_unfiltered (gdb_stdlog, "gdbarch_stap_gdb_register_prefix called\n");
4422 return gdbarch->stap_gdb_register_prefix;
4423 }
4424
4425 void
4426 set_gdbarch_stap_gdb_register_prefix (struct gdbarch *gdbarch,
4427 const char * stap_gdb_register_prefix)
4428 {
4429 gdbarch->stap_gdb_register_prefix = stap_gdb_register_prefix;
4430 }
4431
4432 const char *
4433 gdbarch_stap_gdb_register_suffix (struct gdbarch *gdbarch)
4434 {
4435 gdb_assert (gdbarch != NULL);
4436 /* Skip verify of stap_gdb_register_suffix, invalid_p == 0 */
4437 if (gdbarch_debug >= 2)
4438 fprintf_unfiltered (gdb_stdlog, "gdbarch_stap_gdb_register_suffix called\n");
4439 return gdbarch->stap_gdb_register_suffix;
4440 }
4441
4442 void
4443 set_gdbarch_stap_gdb_register_suffix (struct gdbarch *gdbarch,
4444 const char * stap_gdb_register_suffix)
4445 {
4446 gdbarch->stap_gdb_register_suffix = stap_gdb_register_suffix;
4447 }
4448
4449 int
4450 gdbarch_stap_is_single_operand_p (struct gdbarch *gdbarch)
4451 {
4452 gdb_assert (gdbarch != NULL);
4453 return gdbarch->stap_is_single_operand != NULL;
4454 }
4455
4456 int
4457 gdbarch_stap_is_single_operand (struct gdbarch *gdbarch, const char *s)
4458 {
4459 gdb_assert (gdbarch != NULL);
4460 gdb_assert (gdbarch->stap_is_single_operand != NULL);
4461 if (gdbarch_debug >= 2)
4462 fprintf_unfiltered (gdb_stdlog, "gdbarch_stap_is_single_operand called\n");
4463 return gdbarch->stap_is_single_operand (gdbarch, s);
4464 }
4465
4466 void
4467 set_gdbarch_stap_is_single_operand (struct gdbarch *gdbarch,
4468 gdbarch_stap_is_single_operand_ftype stap_is_single_operand)
4469 {
4470 gdbarch->stap_is_single_operand = stap_is_single_operand;
4471 }
4472
4473 int
4474 gdbarch_stap_parse_special_token_p (struct gdbarch *gdbarch)
4475 {
4476 gdb_assert (gdbarch != NULL);
4477 return gdbarch->stap_parse_special_token != NULL;
4478 }
4479
4480 int
4481 gdbarch_stap_parse_special_token (struct gdbarch *gdbarch, struct stap_parse_info *p)
4482 {
4483 gdb_assert (gdbarch != NULL);
4484 gdb_assert (gdbarch->stap_parse_special_token != NULL);
4485 if (gdbarch_debug >= 2)
4486 fprintf_unfiltered (gdb_stdlog, "gdbarch_stap_parse_special_token called\n");
4487 return gdbarch->stap_parse_special_token (gdbarch, p);
4488 }
4489
4490 void
4491 set_gdbarch_stap_parse_special_token (struct gdbarch *gdbarch,
4492 gdbarch_stap_parse_special_token_ftype stap_parse_special_token)
4493 {
4494 gdbarch->stap_parse_special_token = stap_parse_special_token;
4495 }
4496
4497 int
4498 gdbarch_stap_adjust_register_p (struct gdbarch *gdbarch)
4499 {
4500 gdb_assert (gdbarch != NULL);
4501 return gdbarch->stap_adjust_register != NULL;
4502 }
4503
4504 std::string
4505 gdbarch_stap_adjust_register (struct gdbarch *gdbarch, struct stap_parse_info *p, const std::string &regname, int regnum)
4506 {
4507 gdb_assert (gdbarch != NULL);
4508 gdb_assert (gdbarch->stap_adjust_register != NULL);
4509 if (gdbarch_debug >= 2)
4510 fprintf_unfiltered (gdb_stdlog, "gdbarch_stap_adjust_register called\n");
4511 return gdbarch->stap_adjust_register (gdbarch, p, regname, regnum);
4512 }
4513
4514 void
4515 set_gdbarch_stap_adjust_register (struct gdbarch *gdbarch,
4516 gdbarch_stap_adjust_register_ftype stap_adjust_register)
4517 {
4518 gdbarch->stap_adjust_register = stap_adjust_register;
4519 }
4520
4521 int
4522 gdbarch_dtrace_parse_probe_argument_p (struct gdbarch *gdbarch)
4523 {
4524 gdb_assert (gdbarch != NULL);
4525 return gdbarch->dtrace_parse_probe_argument != NULL;
4526 }
4527
4528 void
4529 gdbarch_dtrace_parse_probe_argument (struct gdbarch *gdbarch, struct expr_builder *builder, int narg)
4530 {
4531 gdb_assert (gdbarch != NULL);
4532 gdb_assert (gdbarch->dtrace_parse_probe_argument != NULL);
4533 if (gdbarch_debug >= 2)
4534 fprintf_unfiltered (gdb_stdlog, "gdbarch_dtrace_parse_probe_argument called\n");
4535 gdbarch->dtrace_parse_probe_argument (gdbarch, builder, narg);
4536 }
4537
4538 void
4539 set_gdbarch_dtrace_parse_probe_argument (struct gdbarch *gdbarch,
4540 gdbarch_dtrace_parse_probe_argument_ftype dtrace_parse_probe_argument)
4541 {
4542 gdbarch->dtrace_parse_probe_argument = dtrace_parse_probe_argument;
4543 }
4544
4545 int
4546 gdbarch_dtrace_probe_is_enabled_p (struct gdbarch *gdbarch)
4547 {
4548 gdb_assert (gdbarch != NULL);
4549 return gdbarch->dtrace_probe_is_enabled != NULL;
4550 }
4551
4552 int
4553 gdbarch_dtrace_probe_is_enabled (struct gdbarch *gdbarch, CORE_ADDR addr)
4554 {
4555 gdb_assert (gdbarch != NULL);
4556 gdb_assert (gdbarch->dtrace_probe_is_enabled != NULL);
4557 if (gdbarch_debug >= 2)
4558 fprintf_unfiltered (gdb_stdlog, "gdbarch_dtrace_probe_is_enabled called\n");
4559 return gdbarch->dtrace_probe_is_enabled (gdbarch, addr);
4560 }
4561
4562 void
4563 set_gdbarch_dtrace_probe_is_enabled (struct gdbarch *gdbarch,
4564 gdbarch_dtrace_probe_is_enabled_ftype dtrace_probe_is_enabled)
4565 {
4566 gdbarch->dtrace_probe_is_enabled = dtrace_probe_is_enabled;
4567 }
4568
4569 int
4570 gdbarch_dtrace_enable_probe_p (struct gdbarch *gdbarch)
4571 {
4572 gdb_assert (gdbarch != NULL);
4573 return gdbarch->dtrace_enable_probe != NULL;
4574 }
4575
4576 void
4577 gdbarch_dtrace_enable_probe (struct gdbarch *gdbarch, CORE_ADDR addr)
4578 {
4579 gdb_assert (gdbarch != NULL);
4580 gdb_assert (gdbarch->dtrace_enable_probe != NULL);
4581 if (gdbarch_debug >= 2)
4582 fprintf_unfiltered (gdb_stdlog, "gdbarch_dtrace_enable_probe called\n");
4583 gdbarch->dtrace_enable_probe (gdbarch, addr);
4584 }
4585
4586 void
4587 set_gdbarch_dtrace_enable_probe (struct gdbarch *gdbarch,
4588 gdbarch_dtrace_enable_probe_ftype dtrace_enable_probe)
4589 {
4590 gdbarch->dtrace_enable_probe = dtrace_enable_probe;
4591 }
4592
4593 int
4594 gdbarch_dtrace_disable_probe_p (struct gdbarch *gdbarch)
4595 {
4596 gdb_assert (gdbarch != NULL);
4597 return gdbarch->dtrace_disable_probe != NULL;
4598 }
4599
4600 void
4601 gdbarch_dtrace_disable_probe (struct gdbarch *gdbarch, CORE_ADDR addr)
4602 {
4603 gdb_assert (gdbarch != NULL);
4604 gdb_assert (gdbarch->dtrace_disable_probe != NULL);
4605 if (gdbarch_debug >= 2)
4606 fprintf_unfiltered (gdb_stdlog, "gdbarch_dtrace_disable_probe called\n");
4607 gdbarch->dtrace_disable_probe (gdbarch, addr);
4608 }
4609
4610 void
4611 set_gdbarch_dtrace_disable_probe (struct gdbarch *gdbarch,
4612 gdbarch_dtrace_disable_probe_ftype dtrace_disable_probe)
4613 {
4614 gdbarch->dtrace_disable_probe = dtrace_disable_probe;
4615 }
4616
4617 int
4618 gdbarch_has_global_solist (struct gdbarch *gdbarch)
4619 {
4620 gdb_assert (gdbarch != NULL);
4621 /* Skip verify of has_global_solist, invalid_p == 0 */
4622 if (gdbarch_debug >= 2)
4623 fprintf_unfiltered (gdb_stdlog, "gdbarch_has_global_solist called\n");
4624 return gdbarch->has_global_solist;
4625 }
4626
4627 void
4628 set_gdbarch_has_global_solist (struct gdbarch *gdbarch,
4629 int has_global_solist)
4630 {
4631 gdbarch->has_global_solist = has_global_solist;
4632 }
4633
4634 int
4635 gdbarch_has_global_breakpoints (struct gdbarch *gdbarch)
4636 {
4637 gdb_assert (gdbarch != NULL);
4638 /* Skip verify of has_global_breakpoints, invalid_p == 0 */
4639 if (gdbarch_debug >= 2)
4640 fprintf_unfiltered (gdb_stdlog, "gdbarch_has_global_breakpoints called\n");
4641 return gdbarch->has_global_breakpoints;
4642 }
4643
4644 void
4645 set_gdbarch_has_global_breakpoints (struct gdbarch *gdbarch,
4646 int has_global_breakpoints)
4647 {
4648 gdbarch->has_global_breakpoints = has_global_breakpoints;
4649 }
4650
4651 int
4652 gdbarch_has_shared_address_space (struct gdbarch *gdbarch)
4653 {
4654 gdb_assert (gdbarch != NULL);
4655 gdb_assert (gdbarch->has_shared_address_space != NULL);
4656 if (gdbarch_debug >= 2)
4657 fprintf_unfiltered (gdb_stdlog, "gdbarch_has_shared_address_space called\n");
4658 return gdbarch->has_shared_address_space (gdbarch);
4659 }
4660
4661 void
4662 set_gdbarch_has_shared_address_space (struct gdbarch *gdbarch,
4663 gdbarch_has_shared_address_space_ftype has_shared_address_space)
4664 {
4665 gdbarch->has_shared_address_space = has_shared_address_space;
4666 }
4667
4668 int
4669 gdbarch_fast_tracepoint_valid_at (struct gdbarch *gdbarch, CORE_ADDR addr, std::string *msg)
4670 {
4671 gdb_assert (gdbarch != NULL);
4672 gdb_assert (gdbarch->fast_tracepoint_valid_at != NULL);
4673 if (gdbarch_debug >= 2)
4674 fprintf_unfiltered (gdb_stdlog, "gdbarch_fast_tracepoint_valid_at called\n");
4675 return gdbarch->fast_tracepoint_valid_at (gdbarch, addr, msg);
4676 }
4677
4678 void
4679 set_gdbarch_fast_tracepoint_valid_at (struct gdbarch *gdbarch,
4680 gdbarch_fast_tracepoint_valid_at_ftype fast_tracepoint_valid_at)
4681 {
4682 gdbarch->fast_tracepoint_valid_at = fast_tracepoint_valid_at;
4683 }
4684
4685 void
4686 gdbarch_guess_tracepoint_registers (struct gdbarch *gdbarch, struct regcache *regcache, CORE_ADDR addr)
4687 {
4688 gdb_assert (gdbarch != NULL);
4689 gdb_assert (gdbarch->guess_tracepoint_registers != NULL);
4690 if (gdbarch_debug >= 2)
4691 fprintf_unfiltered (gdb_stdlog, "gdbarch_guess_tracepoint_registers called\n");
4692 gdbarch->guess_tracepoint_registers (gdbarch, regcache, addr);
4693 }
4694
4695 void
4696 set_gdbarch_guess_tracepoint_registers (struct gdbarch *gdbarch,
4697 gdbarch_guess_tracepoint_registers_ftype guess_tracepoint_registers)
4698 {
4699 gdbarch->guess_tracepoint_registers = guess_tracepoint_registers;
4700 }
4701
4702 const char *
4703 gdbarch_auto_charset (struct gdbarch *gdbarch)
4704 {
4705 gdb_assert (gdbarch != NULL);
4706 gdb_assert (gdbarch->auto_charset != NULL);
4707 if (gdbarch_debug >= 2)
4708 fprintf_unfiltered (gdb_stdlog, "gdbarch_auto_charset called\n");
4709 return gdbarch->auto_charset ();
4710 }
4711
4712 void
4713 set_gdbarch_auto_charset (struct gdbarch *gdbarch,
4714 gdbarch_auto_charset_ftype auto_charset)
4715 {
4716 gdbarch->auto_charset = auto_charset;
4717 }
4718
4719 const char *
4720 gdbarch_auto_wide_charset (struct gdbarch *gdbarch)
4721 {
4722 gdb_assert (gdbarch != NULL);
4723 gdb_assert (gdbarch->auto_wide_charset != NULL);
4724 if (gdbarch_debug >= 2)
4725 fprintf_unfiltered (gdb_stdlog, "gdbarch_auto_wide_charset called\n");
4726 return gdbarch->auto_wide_charset ();
4727 }
4728
4729 void
4730 set_gdbarch_auto_wide_charset (struct gdbarch *gdbarch,
4731 gdbarch_auto_wide_charset_ftype auto_wide_charset)
4732 {
4733 gdbarch->auto_wide_charset = auto_wide_charset;
4734 }
4735
4736 const char *
4737 gdbarch_solib_symbols_extension (struct gdbarch *gdbarch)
4738 {
4739 gdb_assert (gdbarch != NULL);
4740 if (gdbarch_debug >= 2)
4741 fprintf_unfiltered (gdb_stdlog, "gdbarch_solib_symbols_extension called\n");
4742 return gdbarch->solib_symbols_extension;
4743 }
4744
4745 void
4746 set_gdbarch_solib_symbols_extension (struct gdbarch *gdbarch,
4747 const char * solib_symbols_extension)
4748 {
4749 gdbarch->solib_symbols_extension = solib_symbols_extension;
4750 }
4751
4752 int
4753 gdbarch_has_dos_based_file_system (struct gdbarch *gdbarch)
4754 {
4755 gdb_assert (gdbarch != NULL);
4756 /* Skip verify of has_dos_based_file_system, invalid_p == 0 */
4757 if (gdbarch_debug >= 2)
4758 fprintf_unfiltered (gdb_stdlog, "gdbarch_has_dos_based_file_system called\n");
4759 return gdbarch->has_dos_based_file_system;
4760 }
4761
4762 void
4763 set_gdbarch_has_dos_based_file_system (struct gdbarch *gdbarch,
4764 int has_dos_based_file_system)
4765 {
4766 gdbarch->has_dos_based_file_system = has_dos_based_file_system;
4767 }
4768
4769 void
4770 gdbarch_gen_return_address (struct gdbarch *gdbarch, struct agent_expr *ax, struct axs_value *value, CORE_ADDR scope)
4771 {
4772 gdb_assert (gdbarch != NULL);
4773 gdb_assert (gdbarch->gen_return_address != NULL);
4774 if (gdbarch_debug >= 2)
4775 fprintf_unfiltered (gdb_stdlog, "gdbarch_gen_return_address called\n");
4776 gdbarch->gen_return_address (gdbarch, ax, value, scope);
4777 }
4778
4779 void
4780 set_gdbarch_gen_return_address (struct gdbarch *gdbarch,
4781 gdbarch_gen_return_address_ftype gen_return_address)
4782 {
4783 gdbarch->gen_return_address = gen_return_address;
4784 }
4785
4786 int
4787 gdbarch_info_proc_p (struct gdbarch *gdbarch)
4788 {
4789 gdb_assert (gdbarch != NULL);
4790 return gdbarch->info_proc != NULL;
4791 }
4792
4793 void
4794 gdbarch_info_proc (struct gdbarch *gdbarch, const char *args, enum info_proc_what what)
4795 {
4796 gdb_assert (gdbarch != NULL);
4797 gdb_assert (gdbarch->info_proc != NULL);
4798 if (gdbarch_debug >= 2)
4799 fprintf_unfiltered (gdb_stdlog, "gdbarch_info_proc called\n");
4800 gdbarch->info_proc (gdbarch, args, what);
4801 }
4802
4803 void
4804 set_gdbarch_info_proc (struct gdbarch *gdbarch,
4805 gdbarch_info_proc_ftype info_proc)
4806 {
4807 gdbarch->info_proc = info_proc;
4808 }
4809
4810 int
4811 gdbarch_core_info_proc_p (struct gdbarch *gdbarch)
4812 {
4813 gdb_assert (gdbarch != NULL);
4814 return gdbarch->core_info_proc != NULL;
4815 }
4816
4817 void
4818 gdbarch_core_info_proc (struct gdbarch *gdbarch, const char *args, enum info_proc_what what)
4819 {
4820 gdb_assert (gdbarch != NULL);
4821 gdb_assert (gdbarch->core_info_proc != NULL);
4822 if (gdbarch_debug >= 2)
4823 fprintf_unfiltered (gdb_stdlog, "gdbarch_core_info_proc called\n");
4824 gdbarch->core_info_proc (gdbarch, args, what);
4825 }
4826
4827 void
4828 set_gdbarch_core_info_proc (struct gdbarch *gdbarch,
4829 gdbarch_core_info_proc_ftype core_info_proc)
4830 {
4831 gdbarch->core_info_proc = core_info_proc;
4832 }
4833
4834 void
4835 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)
4836 {
4837 gdb_assert (gdbarch != NULL);
4838 gdb_assert (gdbarch->iterate_over_objfiles_in_search_order != NULL);
4839 if (gdbarch_debug >= 2)
4840 fprintf_unfiltered (gdb_stdlog, "gdbarch_iterate_over_objfiles_in_search_order called\n");
4841 gdbarch->iterate_over_objfiles_in_search_order (gdbarch, cb, cb_data, current_objfile);
4842 }
4843
4844 void
4845 set_gdbarch_iterate_over_objfiles_in_search_order (struct gdbarch *gdbarch,
4846 gdbarch_iterate_over_objfiles_in_search_order_ftype iterate_over_objfiles_in_search_order)
4847 {
4848 gdbarch->iterate_over_objfiles_in_search_order = iterate_over_objfiles_in_search_order;
4849 }
4850
4851 struct ravenscar_arch_ops *
4852 gdbarch_ravenscar_ops (struct gdbarch *gdbarch)
4853 {
4854 gdb_assert (gdbarch != NULL);
4855 /* Skip verify of ravenscar_ops, invalid_p == 0 */
4856 if (gdbarch_debug >= 2)
4857 fprintf_unfiltered (gdb_stdlog, "gdbarch_ravenscar_ops called\n");
4858 return gdbarch->ravenscar_ops;
4859 }
4860
4861 void
4862 set_gdbarch_ravenscar_ops (struct gdbarch *gdbarch,
4863 struct ravenscar_arch_ops * ravenscar_ops)
4864 {
4865 gdbarch->ravenscar_ops = ravenscar_ops;
4866 }
4867
4868 int
4869 gdbarch_insn_is_call (struct gdbarch *gdbarch, CORE_ADDR addr)
4870 {
4871 gdb_assert (gdbarch != NULL);
4872 gdb_assert (gdbarch->insn_is_call != NULL);
4873 if (gdbarch_debug >= 2)
4874 fprintf_unfiltered (gdb_stdlog, "gdbarch_insn_is_call called\n");
4875 return gdbarch->insn_is_call (gdbarch, addr);
4876 }
4877
4878 void
4879 set_gdbarch_insn_is_call (struct gdbarch *gdbarch,
4880 gdbarch_insn_is_call_ftype insn_is_call)
4881 {
4882 gdbarch->insn_is_call = insn_is_call;
4883 }
4884
4885 int
4886 gdbarch_insn_is_ret (struct gdbarch *gdbarch, CORE_ADDR addr)
4887 {
4888 gdb_assert (gdbarch != NULL);
4889 gdb_assert (gdbarch->insn_is_ret != NULL);
4890 if (gdbarch_debug >= 2)
4891 fprintf_unfiltered (gdb_stdlog, "gdbarch_insn_is_ret called\n");
4892 return gdbarch->insn_is_ret (gdbarch, addr);
4893 }
4894
4895 void
4896 set_gdbarch_insn_is_ret (struct gdbarch *gdbarch,
4897 gdbarch_insn_is_ret_ftype insn_is_ret)
4898 {
4899 gdbarch->insn_is_ret = insn_is_ret;
4900 }
4901
4902 int
4903 gdbarch_insn_is_jump (struct gdbarch *gdbarch, CORE_ADDR addr)
4904 {
4905 gdb_assert (gdbarch != NULL);
4906 gdb_assert (gdbarch->insn_is_jump != NULL);
4907 if (gdbarch_debug >= 2)
4908 fprintf_unfiltered (gdb_stdlog, "gdbarch_insn_is_jump called\n");
4909 return gdbarch->insn_is_jump (gdbarch, addr);
4910 }
4911
4912 void
4913 set_gdbarch_insn_is_jump (struct gdbarch *gdbarch,
4914 gdbarch_insn_is_jump_ftype insn_is_jump)
4915 {
4916 gdbarch->insn_is_jump = insn_is_jump;
4917 }
4918
4919 bool
4920 gdbarch_program_breakpoint_here_p (struct gdbarch *gdbarch, CORE_ADDR address)
4921 {
4922 gdb_assert (gdbarch != NULL);
4923 gdb_assert (gdbarch->program_breakpoint_here_p != NULL);
4924 if (gdbarch_debug >= 2)
4925 fprintf_unfiltered (gdb_stdlog, "gdbarch_program_breakpoint_here_p called\n");
4926 return gdbarch->program_breakpoint_here_p (gdbarch, address);
4927 }
4928
4929 void
4930 set_gdbarch_program_breakpoint_here_p (struct gdbarch *gdbarch,
4931 gdbarch_program_breakpoint_here_p_ftype program_breakpoint_here_p)
4932 {
4933 gdbarch->program_breakpoint_here_p = program_breakpoint_here_p;
4934 }
4935
4936 int
4937 gdbarch_auxv_parse_p (struct gdbarch *gdbarch)
4938 {
4939 gdb_assert (gdbarch != NULL);
4940 return gdbarch->auxv_parse != NULL;
4941 }
4942
4943 int
4944 gdbarch_auxv_parse (struct gdbarch *gdbarch, gdb_byte **readptr, gdb_byte *endptr, CORE_ADDR *typep, CORE_ADDR *valp)
4945 {
4946 gdb_assert (gdbarch != NULL);
4947 gdb_assert (gdbarch->auxv_parse != NULL);
4948 if (gdbarch_debug >= 2)
4949 fprintf_unfiltered (gdb_stdlog, "gdbarch_auxv_parse called\n");
4950 return gdbarch->auxv_parse (gdbarch, readptr, endptr, typep, valp);
4951 }
4952
4953 void
4954 set_gdbarch_auxv_parse (struct gdbarch *gdbarch,
4955 gdbarch_auxv_parse_ftype auxv_parse)
4956 {
4957 gdbarch->auxv_parse = auxv_parse;
4958 }
4959
4960 void
4961 gdbarch_print_auxv_entry (struct gdbarch *gdbarch, struct ui_file *file, CORE_ADDR type, CORE_ADDR val)
4962 {
4963 gdb_assert (gdbarch != NULL);
4964 gdb_assert (gdbarch->print_auxv_entry != NULL);
4965 if (gdbarch_debug >= 2)
4966 fprintf_unfiltered (gdb_stdlog, "gdbarch_print_auxv_entry called\n");
4967 gdbarch->print_auxv_entry (gdbarch, file, type, val);
4968 }
4969
4970 void
4971 set_gdbarch_print_auxv_entry (struct gdbarch *gdbarch,
4972 gdbarch_print_auxv_entry_ftype print_auxv_entry)
4973 {
4974 gdbarch->print_auxv_entry = print_auxv_entry;
4975 }
4976
4977 int
4978 gdbarch_vsyscall_range (struct gdbarch *gdbarch, struct mem_range *range)
4979 {
4980 gdb_assert (gdbarch != NULL);
4981 gdb_assert (gdbarch->vsyscall_range != NULL);
4982 if (gdbarch_debug >= 2)
4983 fprintf_unfiltered (gdb_stdlog, "gdbarch_vsyscall_range called\n");
4984 return gdbarch->vsyscall_range (gdbarch, range);
4985 }
4986
4987 void
4988 set_gdbarch_vsyscall_range (struct gdbarch *gdbarch,
4989 gdbarch_vsyscall_range_ftype vsyscall_range)
4990 {
4991 gdbarch->vsyscall_range = vsyscall_range;
4992 }
4993
4994 CORE_ADDR
4995 gdbarch_infcall_mmap (struct gdbarch *gdbarch, CORE_ADDR size, unsigned prot)
4996 {
4997 gdb_assert (gdbarch != NULL);
4998 gdb_assert (gdbarch->infcall_mmap != NULL);
4999 if (gdbarch_debug >= 2)
5000 fprintf_unfiltered (gdb_stdlog, "gdbarch_infcall_mmap called\n");
5001 return gdbarch->infcall_mmap (size, prot);
5002 }
5003
5004 void
5005 set_gdbarch_infcall_mmap (struct gdbarch *gdbarch,
5006 gdbarch_infcall_mmap_ftype infcall_mmap)
5007 {
5008 gdbarch->infcall_mmap = infcall_mmap;
5009 }
5010
5011 void
5012 gdbarch_infcall_munmap (struct gdbarch *gdbarch, CORE_ADDR addr, CORE_ADDR size)
5013 {
5014 gdb_assert (gdbarch != NULL);
5015 gdb_assert (gdbarch->infcall_munmap != NULL);
5016 if (gdbarch_debug >= 2)
5017 fprintf_unfiltered (gdb_stdlog, "gdbarch_infcall_munmap called\n");
5018 gdbarch->infcall_munmap (addr, size);
5019 }
5020
5021 void
5022 set_gdbarch_infcall_munmap (struct gdbarch *gdbarch,
5023 gdbarch_infcall_munmap_ftype infcall_munmap)
5024 {
5025 gdbarch->infcall_munmap = infcall_munmap;
5026 }
5027
5028 std::string
5029 gdbarch_gcc_target_options (struct gdbarch *gdbarch)
5030 {
5031 gdb_assert (gdbarch != NULL);
5032 gdb_assert (gdbarch->gcc_target_options != NULL);
5033 if (gdbarch_debug >= 2)
5034 fprintf_unfiltered (gdb_stdlog, "gdbarch_gcc_target_options called\n");
5035 return gdbarch->gcc_target_options (gdbarch);
5036 }
5037
5038 void
5039 set_gdbarch_gcc_target_options (struct gdbarch *gdbarch,
5040 gdbarch_gcc_target_options_ftype gcc_target_options)
5041 {
5042 gdbarch->gcc_target_options = gcc_target_options;
5043 }
5044
5045 const char *
5046 gdbarch_gnu_triplet_regexp (struct gdbarch *gdbarch)
5047 {
5048 gdb_assert (gdbarch != NULL);
5049 gdb_assert (gdbarch->gnu_triplet_regexp != NULL);
5050 if (gdbarch_debug >= 2)
5051 fprintf_unfiltered (gdb_stdlog, "gdbarch_gnu_triplet_regexp called\n");
5052 return gdbarch->gnu_triplet_regexp (gdbarch);
5053 }
5054
5055 void
5056 set_gdbarch_gnu_triplet_regexp (struct gdbarch *gdbarch,
5057 gdbarch_gnu_triplet_regexp_ftype gnu_triplet_regexp)
5058 {
5059 gdbarch->gnu_triplet_regexp = gnu_triplet_regexp;
5060 }
5061
5062 int
5063 gdbarch_addressable_memory_unit_size (struct gdbarch *gdbarch)
5064 {
5065 gdb_assert (gdbarch != NULL);
5066 gdb_assert (gdbarch->addressable_memory_unit_size != NULL);
5067 if (gdbarch_debug >= 2)
5068 fprintf_unfiltered (gdb_stdlog, "gdbarch_addressable_memory_unit_size called\n");
5069 return gdbarch->addressable_memory_unit_size (gdbarch);
5070 }
5071
5072 void
5073 set_gdbarch_addressable_memory_unit_size (struct gdbarch *gdbarch,
5074 gdbarch_addressable_memory_unit_size_ftype addressable_memory_unit_size)
5075 {
5076 gdbarch->addressable_memory_unit_size = addressable_memory_unit_size;
5077 }
5078
5079 const char *
5080 gdbarch_disassembler_options_implicit (struct gdbarch *gdbarch)
5081 {
5082 gdb_assert (gdbarch != NULL);
5083 /* Skip verify of disassembler_options_implicit, invalid_p == 0 */
5084 if (gdbarch_debug >= 2)
5085 fprintf_unfiltered (gdb_stdlog, "gdbarch_disassembler_options_implicit called\n");
5086 return gdbarch->disassembler_options_implicit;
5087 }
5088
5089 void
5090 set_gdbarch_disassembler_options_implicit (struct gdbarch *gdbarch,
5091 const char * disassembler_options_implicit)
5092 {
5093 gdbarch->disassembler_options_implicit = disassembler_options_implicit;
5094 }
5095
5096 char **
5097 gdbarch_disassembler_options (struct gdbarch *gdbarch)
5098 {
5099 gdb_assert (gdbarch != NULL);
5100 /* Skip verify of disassembler_options, invalid_p == 0 */
5101 if (gdbarch_debug >= 2)
5102 fprintf_unfiltered (gdb_stdlog, "gdbarch_disassembler_options called\n");
5103 return gdbarch->disassembler_options;
5104 }
5105
5106 void
5107 set_gdbarch_disassembler_options (struct gdbarch *gdbarch,
5108 char ** disassembler_options)
5109 {
5110 gdbarch->disassembler_options = disassembler_options;
5111 }
5112
5113 const disasm_options_and_args_t *
5114 gdbarch_valid_disassembler_options (struct gdbarch *gdbarch)
5115 {
5116 gdb_assert (gdbarch != NULL);
5117 /* Skip verify of valid_disassembler_options, invalid_p == 0 */
5118 if (gdbarch_debug >= 2)
5119 fprintf_unfiltered (gdb_stdlog, "gdbarch_valid_disassembler_options called\n");
5120 return gdbarch->valid_disassembler_options;
5121 }
5122
5123 void
5124 set_gdbarch_valid_disassembler_options (struct gdbarch *gdbarch,
5125 const disasm_options_and_args_t * valid_disassembler_options)
5126 {
5127 gdbarch->valid_disassembler_options = valid_disassembler_options;
5128 }
5129
5130 ULONGEST
5131 gdbarch_type_align (struct gdbarch *gdbarch, struct type *type)
5132 {
5133 gdb_assert (gdbarch != NULL);
5134 gdb_assert (gdbarch->type_align != NULL);
5135 if (gdbarch_debug >= 2)
5136 fprintf_unfiltered (gdb_stdlog, "gdbarch_type_align called\n");
5137 return gdbarch->type_align (gdbarch, type);
5138 }
5139
5140 void
5141 set_gdbarch_type_align (struct gdbarch *gdbarch,
5142 gdbarch_type_align_ftype type_align)
5143 {
5144 gdbarch->type_align = type_align;
5145 }
5146
5147 std::string
5148 gdbarch_get_pc_address_flags (struct gdbarch *gdbarch, frame_info *frame, CORE_ADDR pc)
5149 {
5150 gdb_assert (gdbarch != NULL);
5151 gdb_assert (gdbarch->get_pc_address_flags != NULL);
5152 if (gdbarch_debug >= 2)
5153 fprintf_unfiltered (gdb_stdlog, "gdbarch_get_pc_address_flags called\n");
5154 return gdbarch->get_pc_address_flags (frame, pc);
5155 }
5156
5157 void
5158 set_gdbarch_get_pc_address_flags (struct gdbarch *gdbarch,
5159 gdbarch_get_pc_address_flags_ftype get_pc_address_flags)
5160 {
5161 gdbarch->get_pc_address_flags = get_pc_address_flags;
5162 }
5163
5164
5165 /* Keep a registry of per-architecture data-pointers required by GDB
5166 modules. */
5167
5168 struct gdbarch_data
5169 {
5170 unsigned index;
5171 int init_p;
5172 gdbarch_data_pre_init_ftype *pre_init;
5173 gdbarch_data_post_init_ftype *post_init;
5174 };
5175
5176 struct gdbarch_data_registration
5177 {
5178 struct gdbarch_data *data;
5179 struct gdbarch_data_registration *next;
5180 };
5181
5182 struct gdbarch_data_registry
5183 {
5184 unsigned nr;
5185 struct gdbarch_data_registration *registrations;
5186 };
5187
5188 struct gdbarch_data_registry gdbarch_data_registry =
5189 {
5190 0, NULL,
5191 };
5192
5193 static struct gdbarch_data *
5194 gdbarch_data_register (gdbarch_data_pre_init_ftype *pre_init,
5195 gdbarch_data_post_init_ftype *post_init)
5196 {
5197 struct gdbarch_data_registration **curr;
5198
5199 /* Append the new registration. */
5200 for (curr = &gdbarch_data_registry.registrations;
5201 (*curr) != NULL;
5202 curr = &(*curr)->next);
5203 (*curr) = XNEW (struct gdbarch_data_registration);
5204 (*curr)->next = NULL;
5205 (*curr)->data = XNEW (struct gdbarch_data);
5206 (*curr)->data->index = gdbarch_data_registry.nr++;
5207 (*curr)->data->pre_init = pre_init;
5208 (*curr)->data->post_init = post_init;
5209 (*curr)->data->init_p = 1;
5210 return (*curr)->data;
5211 }
5212
5213 struct gdbarch_data *
5214 gdbarch_data_register_pre_init (gdbarch_data_pre_init_ftype *pre_init)
5215 {
5216 return gdbarch_data_register (pre_init, NULL);
5217 }
5218
5219 struct gdbarch_data *
5220 gdbarch_data_register_post_init (gdbarch_data_post_init_ftype *post_init)
5221 {
5222 return gdbarch_data_register (NULL, post_init);
5223 }
5224
5225 /* Create/delete the gdbarch data vector. */
5226
5227 static void
5228 alloc_gdbarch_data (struct gdbarch *gdbarch)
5229 {
5230 gdb_assert (gdbarch->data == NULL);
5231 gdbarch->nr_data = gdbarch_data_registry.nr;
5232 gdbarch->data = GDBARCH_OBSTACK_CALLOC (gdbarch, gdbarch->nr_data, void *);
5233 }
5234
5235 /* Return the current value of the specified per-architecture
5236 data-pointer. */
5237
5238 void *
5239 gdbarch_data (struct gdbarch *gdbarch, struct gdbarch_data *data)
5240 {
5241 gdb_assert (data->index < gdbarch->nr_data);
5242 if (gdbarch->data[data->index] == NULL)
5243 {
5244 /* The data-pointer isn't initialized, call init() to get a
5245 value. */
5246 if (data->pre_init != NULL)
5247 /* Mid architecture creation: pass just the obstack, and not
5248 the entire architecture, as that way it isn't possible for
5249 pre-init code to refer to undefined architecture
5250 fields. */
5251 gdbarch->data[data->index] = data->pre_init (gdbarch->obstack);
5252 else if (gdbarch->initialized_p
5253 && data->post_init != NULL)
5254 /* Post architecture creation: pass the entire architecture
5255 (as all fields are valid), but be careful to also detect
5256 recursive references. */
5257 {
5258 gdb_assert (data->init_p);
5259 data->init_p = 0;
5260 gdbarch->data[data->index] = data->post_init (gdbarch);
5261 data->init_p = 1;
5262 }
5263 else
5264 internal_error (__FILE__, __LINE__,
5265 _("gdbarch post-init data field can only be used "
5266 "after gdbarch is fully initialised"));
5267 gdb_assert (gdbarch->data[data->index] != NULL);
5268 }
5269 return gdbarch->data[data->index];
5270 }
5271
5272
5273 /* Keep a registry of the architectures known by GDB. */
5274
5275 struct gdbarch_registration
5276 {
5277 enum bfd_architecture bfd_architecture;
5278 gdbarch_init_ftype *init;
5279 gdbarch_dump_tdep_ftype *dump_tdep;
5280 struct gdbarch_list *arches;
5281 struct gdbarch_registration *next;
5282 };
5283
5284 static struct gdbarch_registration *gdbarch_registry = NULL;
5285
5286 static void
5287 append_name (const char ***buf, int *nr, const char *name)
5288 {
5289 *buf = XRESIZEVEC (const char *, *buf, *nr + 1);
5290 (*buf)[*nr] = name;
5291 *nr += 1;
5292 }
5293
5294 const char **
5295 gdbarch_printable_names (void)
5296 {
5297 /* Accumulate a list of names based on the registed list of
5298 architectures. */
5299 int nr_arches = 0;
5300 const char **arches = NULL;
5301 struct gdbarch_registration *rego;
5302
5303 for (rego = gdbarch_registry;
5304 rego != NULL;
5305 rego = rego->next)
5306 {
5307 const struct bfd_arch_info *ap;
5308 ap = bfd_lookup_arch (rego->bfd_architecture, 0);
5309 if (ap == NULL)
5310 internal_error (__FILE__, __LINE__,
5311 _("gdbarch_architecture_names: multi-arch unknown"));
5312 do
5313 {
5314 append_name (&arches, &nr_arches, ap->printable_name);
5315 ap = ap->next;
5316 }
5317 while (ap != NULL);
5318 }
5319 append_name (&arches, &nr_arches, NULL);
5320 return arches;
5321 }
5322
5323
5324 void
5325 gdbarch_register (enum bfd_architecture bfd_architecture,
5326 gdbarch_init_ftype *init,
5327 gdbarch_dump_tdep_ftype *dump_tdep)
5328 {
5329 struct gdbarch_registration **curr;
5330 const struct bfd_arch_info *bfd_arch_info;
5331
5332 /* Check that BFD recognizes this architecture */
5333 bfd_arch_info = bfd_lookup_arch (bfd_architecture, 0);
5334 if (bfd_arch_info == NULL)
5335 {
5336 internal_error (__FILE__, __LINE__,
5337 _("gdbarch: Attempt to register "
5338 "unknown architecture (%d)"),
5339 bfd_architecture);
5340 }
5341 /* Check that we haven't seen this architecture before. */
5342 for (curr = &gdbarch_registry;
5343 (*curr) != NULL;
5344 curr = &(*curr)->next)
5345 {
5346 if (bfd_architecture == (*curr)->bfd_architecture)
5347 internal_error (__FILE__, __LINE__,
5348 _("gdbarch: Duplicate registration "
5349 "of architecture (%s)"),
5350 bfd_arch_info->printable_name);
5351 }
5352 /* log it */
5353 if (gdbarch_debug)
5354 fprintf_unfiltered (gdb_stdlog, "register_gdbarch_init (%s, %s)\n",
5355 bfd_arch_info->printable_name,
5356 host_address_to_string (init));
5357 /* Append it */
5358 (*curr) = XNEW (struct gdbarch_registration);
5359 (*curr)->bfd_architecture = bfd_architecture;
5360 (*curr)->init = init;
5361 (*curr)->dump_tdep = dump_tdep;
5362 (*curr)->arches = NULL;
5363 (*curr)->next = NULL;
5364 }
5365
5366 void
5367 register_gdbarch_init (enum bfd_architecture bfd_architecture,
5368 gdbarch_init_ftype *init)
5369 {
5370 gdbarch_register (bfd_architecture, init, NULL);
5371 }
5372
5373
5374 /* Look for an architecture using gdbarch_info. */
5375
5376 struct gdbarch_list *
5377 gdbarch_list_lookup_by_info (struct gdbarch_list *arches,
5378 const struct gdbarch_info *info)
5379 {
5380 for (; arches != NULL; arches = arches->next)
5381 {
5382 if (info->bfd_arch_info != arches->gdbarch->bfd_arch_info)
5383 continue;
5384 if (info->byte_order != arches->gdbarch->byte_order)
5385 continue;
5386 if (info->osabi != arches->gdbarch->osabi)
5387 continue;
5388 if (info->target_desc != arches->gdbarch->target_desc)
5389 continue;
5390 return arches;
5391 }
5392 return NULL;
5393 }
5394
5395
5396 /* Find an architecture that matches the specified INFO. Create a new
5397 architecture if needed. Return that new architecture. */
5398
5399 struct gdbarch *
5400 gdbarch_find_by_info (struct gdbarch_info info)
5401 {
5402 struct gdbarch *new_gdbarch;
5403 struct gdbarch_registration *rego;
5404
5405 /* Fill in missing parts of the INFO struct using a number of
5406 sources: "set ..."; INFOabfd supplied; and the global
5407 defaults. */
5408 gdbarch_info_fill (&info);
5409
5410 /* Must have found some sort of architecture. */
5411 gdb_assert (info.bfd_arch_info != NULL);
5412
5413 if (gdbarch_debug)
5414 {
5415 fprintf_unfiltered (gdb_stdlog,
5416 "gdbarch_find_by_info: info.bfd_arch_info %s\n",
5417 (info.bfd_arch_info != NULL
5418 ? info.bfd_arch_info->printable_name
5419 : "(null)"));
5420 fprintf_unfiltered (gdb_stdlog,
5421 "gdbarch_find_by_info: info.byte_order %d (%s)\n",
5422 info.byte_order,
5423 (info.byte_order == BFD_ENDIAN_BIG ? "big"
5424 : info.byte_order == BFD_ENDIAN_LITTLE ? "little"
5425 : "default"));
5426 fprintf_unfiltered (gdb_stdlog,
5427 "gdbarch_find_by_info: info.osabi %d (%s)\n",
5428 info.osabi, gdbarch_osabi_name (info.osabi));
5429 fprintf_unfiltered (gdb_stdlog,
5430 "gdbarch_find_by_info: info.abfd %s\n",
5431 host_address_to_string (info.abfd));
5432 fprintf_unfiltered (gdb_stdlog,
5433 "gdbarch_find_by_info: info.tdep_info %s\n",
5434 host_address_to_string (info.tdep_info));
5435 }
5436
5437 /* Find the tdep code that knows about this architecture. */
5438 for (rego = gdbarch_registry;
5439 rego != NULL;
5440 rego = rego->next)
5441 if (rego->bfd_architecture == info.bfd_arch_info->arch)
5442 break;
5443 if (rego == NULL)
5444 {
5445 if (gdbarch_debug)
5446 fprintf_unfiltered (gdb_stdlog, "gdbarch_find_by_info: "
5447 "No matching architecture\n");
5448 return 0;
5449 }
5450
5451 /* Ask the tdep code for an architecture that matches "info". */
5452 new_gdbarch = rego->init (info, rego->arches);
5453
5454 /* Did the tdep code like it? No. Reject the change and revert to
5455 the old architecture. */
5456 if (new_gdbarch == NULL)
5457 {
5458 if (gdbarch_debug)
5459 fprintf_unfiltered (gdb_stdlog, "gdbarch_find_by_info: "
5460 "Target rejected architecture\n");
5461 return NULL;
5462 }
5463
5464 /* Is this a pre-existing architecture (as determined by already
5465 being initialized)? Move it to the front of the architecture
5466 list (keeping the list sorted Most Recently Used). */
5467 if (new_gdbarch->initialized_p)
5468 {
5469 struct gdbarch_list **list;
5470 struct gdbarch_list *self;
5471 if (gdbarch_debug)
5472 fprintf_unfiltered (gdb_stdlog, "gdbarch_find_by_info: "
5473 "Previous architecture %s (%s) selected\n",
5474 host_address_to_string (new_gdbarch),
5475 new_gdbarch->bfd_arch_info->printable_name);
5476 /* Find the existing arch in the list. */
5477 for (list = &rego->arches;
5478 (*list) != NULL && (*list)->gdbarch != new_gdbarch;
5479 list = &(*list)->next);
5480 /* It had better be in the list of architectures. */
5481 gdb_assert ((*list) != NULL && (*list)->gdbarch == new_gdbarch);
5482 /* Unlink SELF. */
5483 self = (*list);
5484 (*list) = self->next;
5485 /* Insert SELF at the front. */
5486 self->next = rego->arches;
5487 rego->arches = self;
5488 /* Return it. */
5489 return new_gdbarch;
5490 }
5491
5492 /* It's a new architecture. */
5493 if (gdbarch_debug)
5494 fprintf_unfiltered (gdb_stdlog, "gdbarch_find_by_info: "
5495 "New architecture %s (%s) selected\n",
5496 host_address_to_string (new_gdbarch),
5497 new_gdbarch->bfd_arch_info->printable_name);
5498
5499 /* Insert the new architecture into the front of the architecture
5500 list (keep the list sorted Most Recently Used). */
5501 {
5502 struct gdbarch_list *self = XNEW (struct gdbarch_list);
5503 self->next = rego->arches;
5504 self->gdbarch = new_gdbarch;
5505 rego->arches = self;
5506 }
5507
5508 /* Check that the newly installed architecture is valid. Plug in
5509 any post init values. */
5510 new_gdbarch->dump_tdep = rego->dump_tdep;
5511 verify_gdbarch (new_gdbarch);
5512 new_gdbarch->initialized_p = 1;
5513
5514 if (gdbarch_debug)
5515 gdbarch_dump (new_gdbarch, gdb_stdlog);
5516
5517 return new_gdbarch;
5518 }
5519
5520 /* Make the specified architecture current. */
5521
5522 void
5523 set_target_gdbarch (struct gdbarch *new_gdbarch)
5524 {
5525 gdb_assert (new_gdbarch != NULL);
5526 gdb_assert (new_gdbarch->initialized_p);
5527 current_inferior ()->gdbarch = new_gdbarch;
5528 gdb::observers::architecture_changed.notify (new_gdbarch);
5529 registers_changed ();
5530 }
5531
5532 /* Return the current inferior's arch. */
5533
5534 struct gdbarch *
5535 target_gdbarch (void)
5536 {
5537 return current_inferior ()->gdbarch;
5538 }
5539
5540 void _initialize_gdbarch ();
5541 void
5542 _initialize_gdbarch ()
5543 {
5544 add_setshow_zuinteger_cmd ("arch", class_maintenance, &gdbarch_debug, _("\
5545 Set architecture debugging."), _("\
5546 Show architecture debugging."), _("\
5547 When non-zero, architecture debugging is enabled."),
5548 NULL,
5549 show_gdbarch_debug,
5550 &setdebuglist, &showdebuglist);
5551 }
This page took 0.198382 seconds and 4 git commands to generate.