aboutsummaryrefslogtreecommitdiff
path: root/gdb/mips-linux-tdep.h
diff options
context:
space:
mode:
authorDaniel Jacobowitz <drow@false.org>2007-06-13 18:47:58 +0000
committerDaniel Jacobowitz <drow@false.org>2007-06-13 18:47:58 +0000
commit822b65708d4030ccb4fd2a979de5292f730e30b8 (patch)
treefb06d73c9429eb083bee074143a9292126d709ec /gdb/mips-linux-tdep.h
parentf8b73d13b7ca749dee450b60e4e401b4c096bed6 (diff)
downloadgdb-822b65708d4030ccb4fd2a979de5292f730e30b8.zip
gdb-822b65708d4030ccb4fd2a979de5292f730e30b8.tar.gz
gdb-822b65708d4030ccb4fd2a979de5292f730e30b8.tar.bz2
* config/mips/linux.mh (TDEP_XML): New.
* features/mips-linux.xml, features/mips64-linux.xml: New files. * mips-linux-nat.c (mips_linux_register_addr): Handle MIPS_RESTART_REGNUM. (mips64_linux_register_addr): Likewise. (super_xfer_partial, mips_linux_xfer_partial): New. (_initialize_mips_linux_nat): Add them to the target_ops. * mips-linux-tdep.c (mips_supply_gregset): Handle MIPS_RESTART_REGNUM. (mips_fill_gregset, mips64_supply_gregset, mips64_fill_gregset) (mips_linux_o32_sigframe_init) (mips_linux_n32n64_sigframe_init): Likewise. (mips_linux_write_pc, mips_linux_restart_reg_p): New. (mips_linux_init_abi): Use mips_linux_write_pc. Check for the "org.gnu.gdb.mips.linux" feature. * mips-linux-tdep.h (MIPS_RESTART_REGNUM): New constant. (mips_linux_restart_reg_p): New prototype. * mips-tdep.c (mips_gdbarch_init): Pass tdesc_data to the OS/ABI initialization routine. * Makefile.in (mips-linux-tdep.o, mips-linux-nat.o): Update. * gdb.texinfo (MIPS Features): Document org.gnu.gdb.mips.linux.
Diffstat (limited to 'gdb/mips-linux-tdep.h')
-rw-r--r--gdb/mips-linux-tdep.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/gdb/mips-linux-tdep.h b/gdb/mips-linux-tdep.h
index 213a745..764208a 100644
--- a/gdb/mips-linux-tdep.h
+++ b/gdb/mips-linux-tdep.h
@@ -92,3 +92,13 @@ void mips64_supply_gregset (struct regcache *, const mips64_elf_gregset_t *);
void mips64_fill_gregset (const struct regcache *, mips64_elf_gregset_t *, int);
void mips64_supply_fpregset (struct regcache *, const mips64_elf_fpregset_t *);
void mips64_fill_fpregset (const struct regcache *, mips64_elf_fpregset_t *, int);
+
+enum {
+ /* The Linux kernel stores an error code from any interrupted
+ syscall in a "register" (in $0's save slot). */
+ MIPS_RESTART_REGNUM = MIPS_LAST_EMBED_REGNUM + 1
+};
+
+/* Return 1 if MIPS_RESTART_REGNUM is usable. */
+
+int mips_linux_restart_reg_p (struct gdbarch *gdbarch);