Commit | Line | Data |
---|---|---|
ed9a39eb | 1 | /* Target definitions for GNU/Linux on ARM, for GDB. |
ef57c069 | 2 | Copyright 1999, 2000 Free Software Foundation, Inc. |
ed9a39eb JM |
3 | |
4 | This file is part of GDB. | |
5 | ||
6 | This program is free software; you can redistribute it and/or modify | |
7 | it under the terms of the GNU General Public License as published by | |
8 | the Free Software Foundation; either version 2 of the License, or | |
9 | (at your option) any later version. | |
10 | ||
11 | This program is distributed in the hope that it will be useful, | |
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of | |
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
14 | GNU General Public License for more details. | |
15 | ||
16 | You should have received a copy of the GNU General Public License | |
17 | along with this program; if not, write to the Free Software | |
18 | Foundation, Inc., 59 Temple Place - Suite 330, | |
19 | Boston, MA 02111-1307, USA. */ | |
20 | ||
21 | #ifndef TM_ARMLINUX_H | |
22 | #define TM_ARMLINUX_H | |
23 | ||
24 | /* Include the common ARM target definitions. */ | |
25 | #include "arm/tm-arm.h" | |
26 | ||
4f2e4a4f | 27 | #include "config/tm-linux.h" |
ed9a39eb | 28 | |
0e18d038 RE |
29 | /* We've multi-arched this. */ |
30 | #undef IN_SOLIB_CALL_TRAMPOLINE | |
ed9a39eb | 31 | |
0e18d038 RE |
32 | /* We've multi-arched this. */ |
33 | #undef SKIP_TRAMPOLINE_CODE | |
ed9a39eb | 34 | |
ed9a39eb JM |
35 | /* When we call a function in a shared library, and the PLT sends us |
36 | into the dynamic linker to find the function's real address, we | |
37 | need to skip over the dynamic linker call. This function decides | |
38 | when to skip, and where to skip to. See the comments for | |
39 | SKIP_SOLIB_RESOLVER at the top of infrun.c. */ | |
40 | #if 0 | |
41 | #undef IN_SOLIB_DYNSYM_RESOLVE_CODE | |
42 | extern CORE_ADDR arm_in_solib_dynsym_resolve_code (CORE_ADDR pc, char *name); | |
43 | #define IN_SOLIB_DYNSYM_RESOLVE_CODE arm_in_solib_dynsym_resolve_code | |
44 | /* ScottB: Current definition is | |
45 | extern CORE_ADDR in_svr4_dynsym_resolve_code (CORE_ADDR pc, char *name); | |
46 | #define IN_SOLIB_DYNSYM_RESOLVE_CODE in_svr4_dynsym_resolve_code */ | |
47 | #endif | |
48 | ||
2a451106 KB |
49 | /* When the ARM Linux kernel invokes a signal handler, the return |
50 | address points at a special instruction which'll trap back into | |
51 | the kernel. These definitions are used to identify this bit of | |
52 | code as a signal trampoline in order to support backtracing | |
53 | through calls to signal handlers. */ | |
54 | ||
55 | int arm_linux_in_sigtramp (CORE_ADDR pc, char *name); | |
dbfe4626 | 56 | #define DEPRECATED_IN_SIGTRAMP(pc, name) arm_linux_in_sigtramp (pc, name) |
2a451106 KB |
57 | |
58 | /* Each OS has different mechanisms for accessing the various | |
59 | registers stored in the sigcontext structure. These definitions | |
60 | provide a mechanism by which the generic code in arm-tdep.c can | |
61 | find the addresses at which various registers are saved at in the | |
62 | sigcontext structure. If SIGCONTEXT_REGISTER_ADDRESS is not | |
63 | defined, arm-tdep.c will define it to be 0. (See ia64-tdep.c and | |
64 | ia64-linux-tdep.c to see what a similar mechanism looks like when | |
65 | multi-arched.) */ | |
66 | ||
67 | extern CORE_ADDR arm_linux_sigcontext_register_address (CORE_ADDR, CORE_ADDR, | |
68 | int); | |
69 | #define SIGCONTEXT_REGISTER_ADDRESS arm_linux_sigcontext_register_address | |
70 | ||
ed9a39eb | 71 | #endif /* TM_ARMLINUX_H */ |