* archures.c: Update copyright.
[deliverable/binutils-gdb.git] / gdb / arch-utils.h
CommitLineData
c0e8c252 1/* Dynamic architecture support for GDB, the GNU debugger.
d7bd68ca 2
9b254dd1 3 Copyright (C) 1998, 1999, 2000, 2002, 2003, 2004, 2007, 2008
6aba47ca 4 Free Software Foundation, Inc.
c0e8c252
AC
5
6 This file is part of GDB.
7
8 This program is free software; you can redistribute it and/or modify
9 it under the terms of the GNU General Public License as published by
a9762ec7 10 the Free Software Foundation; either version 3 of the License, or
c0e8c252
AC
11 (at your option) any later version.
12
13 This program is distributed in the hope that it will be useful,
14 but WITHOUT ANY WARRANTY; without even the implied warranty of
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 GNU General Public License for more details.
17
18 You should have received a copy of the GNU General Public License
a9762ec7 19 along with this program. If not, see <http://www.gnu.org/licenses/>. */
c0e8c252
AC
20
21#ifndef GDBARCH_UTILS_H
22#define GDBARCH_UTILS_H
23
da3331ec
AC
24struct gdbarch;
25struct frame_info;
26struct minimal_symbol;
27struct type;
28struct gdbarch_info;
29
c0e8c252
AC
30/* gdbarch trace variable */
31extern int gdbarch_debug;
32
3339cf8b
AC
33/* The only possible cases for inner_than. */
34extern int core_addr_lessthan (CORE_ADDR lhs, CORE_ADDR rhs);
35extern int core_addr_greaterthan (CORE_ADDR lhs, CORE_ADDR rhs);
36
e2d0e7eb 37/* Identity functions on a CORE_ADDR. Just return the "addr". */
f517ea4e 38
875e1767 39extern CORE_ADDR core_addr_identity (CORE_ADDR addr);
e2d0e7eb 40extern gdbarch_convert_from_func_ptr_addr_ftype convert_from_func_ptr_addr_identity;
f517ea4e 41
88c72b7d
AC
42/* No-op conversion of reg to regnum. */
43
d3f73121 44extern int no_op_reg_to_regnum (struct gdbarch *gdbarch, int reg);
88c72b7d 45
a2cf933a
EZ
46/* Do nothing version of elf_make_msymbol_special. */
47
48void default_elf_make_msymbol_special (asymbol *sym, struct minimal_symbol *msym);
49
50/* Do nothing version of coff_make_msymbol_special. */
51
52void default_coff_make_msymbol_special (int val, struct minimal_symbol *msym);
53
01fb7433
AC
54/* Version of cannot_fetch_register() / cannot_store_register() that
55 always fails. */
56
64a3914f 57int cannot_register_not (struct gdbarch *gdbarch, int regnum);
01fb7433 58
39d4ef09 59/* Legacy version of target_virtual_frame_pointer(). Assumes that
064f5156 60 there is an gdbarch_deprecated_fp_regnum and that it is the same, cooked or
0ba6dca9 61 raw. */
39d4ef09
AC
62
63extern gdbarch_virtual_frame_pointer_ftype legacy_virtual_frame_pointer;
64
52f729a7
UW
65extern CORE_ADDR generic_skip_trampoline_code (struct frame_info *frame,
66 CORE_ADDR pc);
bdcd319a 67
4c8c40e6
MK
68extern CORE_ADDR generic_skip_solib_resolver (struct gdbarch *gdbarch,
69 CORE_ADDR pc);
dea0c52f 70
d50355b6
MS
71extern int generic_in_solib_return_trampoline (CORE_ADDR pc, char *name);
72
c12260ac
CV
73extern int generic_in_function_epilogue_p (struct gdbarch *gdbarch, CORE_ADDR pc);
74
a1f4a1b6 75/* By default, registers are not convertible. */
76a8ddb9
UW
76extern int generic_convert_register_p (struct gdbarch *gdbarch, int regnum,
77 struct type *type);
13d01224 78
192cb3d4
MK
79extern int default_stabs_argument_has_addr (struct gdbarch *gdbarch,
80 struct type *type);
81
3ca64954
RC
82extern int generic_instruction_nullified (struct gdbarch *gdbarch,
83 struct regcache *regcache);
84
123dc839
DJ
85int default_remote_register_number (struct gdbarch *gdbarch,
86 int regno);
87
4182591f
AC
88/* For compatibility with older architectures, returns
89 (LEGACY_SIM_REGNO_IGNORE) when the register doesn't have a valid
90 name. */
91
e7faf938 92extern int legacy_register_sim_regno (struct gdbarch *gdbarch, int regnum);
4182591f 93
b6d373df
DJ
94/* Return the selected byte order, or BFD_ENDIAN_UNKNOWN if no byte
95 order was explicitly selected. */
96extern enum bfd_endian selected_byte_order (void);
97
a8cf2722
AC
98/* Return the selected architecture's name, or NULL if no architecture
99 was explicitly selected. */
100extern const char *selected_architecture_name (void);
101
fb6ecb0f 102/* Initialize a ``struct info''. Can't use memset(0) since some
a8cf2722
AC
103 default values are not zero. "fill" takes all available
104 information and fills in any unspecified fields. */
105
fb6ecb0f
AC
106extern void gdbarch_info_init (struct gdbarch_info *info);
107
100bcc3f 108/* Similar to init, but this time fill in the blanks. Information is
7a107747
DJ
109 obtained from the global "set ..." options and explicitly
110 initialized INFO fields. */
111extern void gdbarch_info_fill (struct gdbarch_info *info);
bf922ad9 112
2b026650
MK
113/* Return the architecture for ABFD. If no suitable architecture
114 could be find, return NULL. */
115
116extern struct gdbarch *gdbarch_from_bfd (bfd *abfd);
117
c0e8c252 118#endif
This page took 0.445274 seconds and 4 git commands to generate.