diff options
author | Andreas Schwab <schwab@linux-m68k.org> | 2005-01-05 22:51:47 +0000 |
---|---|---|
committer | Andreas Schwab <schwab@linux-m68k.org> | 2005-01-05 22:51:47 +0000 |
commit | b33e8514836a6724b54d50f1cc42fea9ffc923b0 (patch) | |
tree | e31e62a73699274c5c6ba8805ed53fc3a7669c1a /gdb/ia64-linux-tdep.c | |
parent | e54b12b7797ece3410070f0d634b8ba9117dc1e1 (diff) | |
download | gdb-b33e8514836a6724b54d50f1cc42fea9ffc923b0.zip gdb-b33e8514836a6724b54d50f1cc42fea9ffc923b0.tar.gz gdb-b33e8514836a6724b54d50f1cc42fea9ffc923b0.tar.bz2 |
* ia64-tdep.c: Include "osabi.h".
(native_find_global_pointer): Delete.
(ia64_find_global_pointer): Renamed from
generic_elf_find_global_pointer.
(FIND_GLOBAL_POINTER): Delete. Change all users to call
ia64_find_global_pointer instead.
(ia64_gdbarch_init): Call gdbarch_init_osabi. Remove references
to ia64_linux_sigcontext_register_address and
ia64_linux_write_pc. Don't set tdep->find_global_pointer.
(_initialize_ia64_tdep): Call gdbarch_register instead of
deprecated register_gdbarch_init.
(struct gdbarch_tdep): Remove find_global_pointer field and move
to ...
* ia64-tdep.h (struct gdbarch_tdep): ... here.
(ia64_linux_sigcontext_register_address): Remove declaration.
(ia64_linux_getunwind_table): Likewise.
(ia64_linux_write_pc): Likewise.
* ia64-linux-tdep.c: Include "osabi.h".
(ia64_linux_sigcontext_register_address): Make static.
(ia64_linux_write_pc): Likewise.
(ia64_linux_init_abi): New.
(_initialize_ia64_linux_tdep): New.
* Makefile.in (ia64-tdep.o, ia64-linux-tdep.o): Depend on
$(osabi_h).
Diffstat (limited to 'gdb/ia64-linux-tdep.c')
-rw-r--r-- | gdb/ia64-linux-tdep.c | 26 |
1 files changed, 23 insertions, 3 deletions
diff --git a/gdb/ia64-linux-tdep.c b/gdb/ia64-linux-tdep.c index c3fa443..b7173cc 100644 --- a/gdb/ia64-linux-tdep.c +++ b/gdb/ia64-linux-tdep.c @@ -1,6 +1,6 @@ /* Target-dependent code for the IA-64 for GDB, the GNU debugger. - Copyright 2000, 2004 Free Software Foundation, Inc. + Copyright 2000, 2004, 2005 Free Software Foundation, Inc. This file is part of GDB. @@ -24,6 +24,7 @@ #include "arch-utils.h" #include "gdbcore.h" #include "regcache.h" +#include "osabi.h" /* The sigtramp code is in a non-readable (executable-only) region of memory called the ``gate page''. The addresses in question @@ -47,7 +48,7 @@ ia64_linux_in_sigtramp (CORE_ADDR pc, char *func_name) found. 0 is returned for registers which aren't stored in the the sigcontext structure. */ -CORE_ADDR +static CORE_ADDR ia64_linux_sigcontext_register_address (CORE_ADDR sp, int regno) { char buf[8]; @@ -96,7 +97,7 @@ ia64_linux_sigcontext_register_address (CORE_ADDR sp, int regno) } } -void +static void ia64_linux_write_pc (CORE_ADDR pc, ptid_t ptid) { ia64_write_pc (pc, ptid); @@ -112,3 +113,22 @@ ia64_linux_write_pc (CORE_ADDR pc, ptid_t ptid) called as part of setting up an inferior call. */ write_register_pid (IA64_GR10_REGNUM, 0, ptid); } + +static void +ia64_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) +{ + struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch); + + /* Set the method of obtaining the sigcontext addresses at which + registers are saved. */ + tdep->sigcontext_register_address = ia64_linux_sigcontext_register_address; + + set_gdbarch_write_pc (gdbarch, ia64_linux_write_pc); +} + +void +_initialize_ia64_linux_tdep (void) +{ + gdbarch_register_osabi (bfd_arch_ia64, 0, GDB_OSABI_LINUX, + ia64_linux_init_abi); +} |