* gdbarch.sh (deprecated_use_struct_convention): Remove.
[deliverable/binutils-gdb.git] / gdb / arch-utils.h
CommitLineData
c0e8c252 1/* Dynamic architecture support for GDB, the GNU debugger.
d7bd68ca 2
6aba47ca
DJ
3 Copyright (C) 1998, 1999, 2000, 2002, 2003, 2004, 2007
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
44extern int no_op_reg_to_regnum (int reg);
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
57int cannot_register_not (int regnum);
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
AC
75/* By default, registers are not convertible. */
76extern int generic_convert_register_p (int regnum, struct type *type);
13d01224 77
192cb3d4
MK
78extern int default_stabs_argument_has_addr (struct gdbarch *gdbarch,
79 struct type *type);
80
3ca64954
RC
81extern int generic_instruction_nullified (struct gdbarch *gdbarch,
82 struct regcache *regcache);
83
123dc839
DJ
84int default_remote_register_number (struct gdbarch *gdbarch,
85 int regno);
86
4182591f
AC
87/* For compatibility with older architectures, returns
88 (LEGACY_SIM_REGNO_IGNORE) when the register doesn't have a valid
89 name. */
90
91extern int legacy_register_sim_regno (int regnum);
92
b6d373df
DJ
93/* Return the selected byte order, or BFD_ENDIAN_UNKNOWN if no byte
94 order was explicitly selected. */
95extern enum bfd_endian selected_byte_order (void);
96
a8cf2722
AC
97/* Return the selected architecture's name, or NULL if no architecture
98 was explicitly selected. */
99extern const char *selected_architecture_name (void);
100
fb6ecb0f 101/* Initialize a ``struct info''. Can't use memset(0) since some
a8cf2722
AC
102 default values are not zero. "fill" takes all available
103 information and fills in any unspecified fields. */
104
fb6ecb0f
AC
105extern void gdbarch_info_init (struct gdbarch_info *info);
106
100bcc3f 107/* Similar to init, but this time fill in the blanks. Information is
7a107747
DJ
108 obtained from the global "set ..." options and explicitly
109 initialized INFO fields. */
110extern void gdbarch_info_fill (struct gdbarch_info *info);
bf922ad9 111
2b026650
MK
112/* Return the architecture for ABFD. If no suitable architecture
113 could be find, return NULL. */
114
115extern struct gdbarch *gdbarch_from_bfd (bfd *abfd);
116
c0e8c252 117#endif
This page took 0.526852 seconds and 4 git commands to generate.