diff options
author | Daniel Jacobowitz <dan@debian.org> | 2007-10-15 19:19:18 +0000 |
---|---|---|
committer | Daniel Jacobowitz <dan@debian.org> | 2007-10-15 19:19:18 +0000 |
commit | 2c6a29997f7634fc60af72681acdb205d3f47ca9 (patch) | |
tree | f18abbc68c16fe1dc8b1d323722dba0c4e95d82d /gdb/mips-linux-nat.c | |
parent | 6bbbc68a14fa51ad1f72aa90831c9d3364efdbd7 (diff) | |
download | gdb-2c6a29997f7634fc60af72681acdb205d3f47ca9.tar.gz |
* target-descriptions.c (tdesc_predefined_types): New.
(tdesc_named_type): Use it.
(tdesc_type_id, maint_print_c_tdesc_cmd): New functions.
(_intialize_target_descriptions): Register "maint print c-tdesc".
* features/Makefile (XMLTOC, CFILES, GDB): New macros.
(cfiles, %.c): New rules.
* features/arm-with-iwmmxt.c, features/mips-linux.c,
features/mips64-linux.c: New generated files.
* arm-linux-nat.c: Include preparsed description instead of
"xml-support.h".
(super_xfer_partial, arm_linux_xfer_partial): Remove.
(arm_linux_read_description): New function.
(_initialize_arm_linux_nat): Set to_read_description instead of
to_xfer_partial. Initialize preparsed description.
* config/arm/linux.mh (TDEP_XML): Delete.
* mips-linux-nat.c: Include preparsed descriptions instead of
"xml-support.h".
(super_xfer_partial, mips_linux_xfer_partial): Remove.
(mips_linux_read_description): New function.
(_initialize_mips_linux_nat): Set to_read_description instead of
to_xfer_partial. Initialize preparsed description.
* config/mips/linux.mh (TDEP_XML): Delete.
* Makefile.in (XMLFILES): Remove $(TDEP_XML).
(features_headers, arm_with_iwmmxt_c, mips_linux_c)
(mips64_linux_c): New macros.
(arm-linux-nat.o, mips-linux-nat.o): Update.
* gdb.texinfo (Maintenance Commands): Document "maint print c-tdesc".
Diffstat (limited to 'gdb/mips-linux-nat.c')
-rw-r--r-- | gdb/mips-linux-nat.c | 47 |
1 files changed, 16 insertions, 31 deletions
diff --git a/gdb/mips-linux-nat.c b/gdb/mips-linux-nat.c index 7d87c87e82d..fb44a7e0a48 100644 --- a/gdb/mips-linux-nat.c +++ b/gdb/mips-linux-nat.c @@ -26,7 +26,6 @@ #include "linux-nat.h" #include "mips-linux-tdep.h" #include "target-descriptions.h" -#include "xml-support.h" #include "gdb_proc_service.h" #include "gregset.h" @@ -34,6 +33,9 @@ #include <sgidefs.h> #include <sys/ptrace.h> +#include "features/mips-linux.c" +#include "features/mips64-linux.c" + #ifndef PTRACE_GET_THREAD_AREA #define PTRACE_GET_THREAD_AREA 25 #endif @@ -342,34 +344,15 @@ mips_linux_register_u_offset (struct gdbarch *gdbarch, int regno, int store_p) return mips_linux_register_addr (gdbarch, regno, store_p); } -static LONGEST (*super_xfer_partial) (struct target_ops *, enum target_object, - const char *, gdb_byte *, const gdb_byte *, - ULONGEST, LONGEST); - -static LONGEST -mips_linux_xfer_partial (struct target_ops *ops, - enum target_object object, - const char *annex, - gdb_byte *readbuf, const gdb_byte *writebuf, - ULONGEST offset, LONGEST len) +static const struct target_desc * +mips_linux_read_description (struct target_ops *ops) { - if (object == TARGET_OBJECT_AVAILABLE_FEATURES) - { - if (annex != NULL && strcmp (annex, "target.xml") == 0) - { - /* Report that target registers are a size we know for sure - that we can get from ptrace. */ - if (_MIPS_SIM == _ABIO32) - annex = "mips-linux.xml"; - else - annex = "mips64-linux.xml"; - } - - return xml_builtin_xfer_partial (annex, readbuf, writebuf, offset, len); - } - - return super_xfer_partial (ops, object, annex, readbuf, writebuf, - offset, len); + /* Report that target registers are a size we know for sure + that we can get from ptrace. */ + if (_MIPS_SIM == _ABIO32) + return tdesc_mips_linux; + else + return tdesc_mips64_linux; } void _initialize_mips_linux_nat (void); @@ -385,9 +368,11 @@ _initialize_mips_linux_nat (void) t->to_fetch_registers = mips64_linux_fetch_registers; t->to_store_registers = mips64_linux_store_registers; - /* Override the default to_xfer_partial. */ - super_xfer_partial = t->to_xfer_partial; - t->to_xfer_partial = mips_linux_xfer_partial; + t->to_read_description = mips_linux_read_description; linux_nat_add_target (t); + + /* Initialize the standard target descriptions. */ + initialize_tdesc_mips_linux (); + initialize_tdesc_mips64_linux (); } |