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