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