summaryrefslogtreecommitdiff
path: root/gdb/mips-linux-nat.c
diff options
context:
space:
mode:
authorDaniel Jacobowitz <dan@debian.org>2007-10-15 19:19:18 +0000
committerDaniel Jacobowitz <dan@debian.org>2007-10-15 19:19:18 +0000
commit2c6a29997f7634fc60af72681acdb205d3f47ca9 (patch)
treef18abbc68c16fe1dc8b1d323722dba0c4e95d82d /gdb/mips-linux-nat.c
parent6bbbc68a14fa51ad1f72aa90831c9d3364efdbd7 (diff)
downloadgdb-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.c47
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 ();
}