This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH] linux-crisv32-low.c: Fix compile errors


Hello,

The crisv32 source in gdbserver is out of date and does not even compile.
Here is my patch to fix it.

Regards,
	Michael

gdb/gdbserver/ChangeLog:

2012-09-03  Michael Brandt  <michael.brandt@axis.com>

	* linux-crisv32-low.c: Fix compile errors.
---
diff --git a/gdb/gdbserver/linux-crisv32-low.c b/gdb/gdbserver/linux-crisv32-low.c
index 1cc4cd1..d0e2f56 100644
--- a/gdb/gdbserver/linux-crisv32-low.c
+++ b/gdb/gdbserver/linux-crisv32-low.c
@@ -231,6 +231,7 @@ cris_remove_point (char type, CORE_ADDR addr, int len)
   unsigned long bp_ctrl;
   unsigned long start, end;
   struct regcache *regcache;
+  unsigned long bp_d_regs[12];
 
   /* Breakpoint/watchpoint types:
      0 = memory breakpoint for instructions
@@ -259,8 +260,6 @@ cris_remove_point (char type, CORE_ADDR addr, int len)
      single switch (addr) as there may be several watchpoints with
      the same start address for example.  */
 
-  unsigned long bp_d_regs[12];
-
   /* Get all range registers to simplify search.  */
   collect_register_by_name (regcache, "s3", &bp_d_regs[0]);
   collect_register_by_name (regcache, "s4", &bp_d_regs[1]);
@@ -321,8 +320,9 @@ static int
 cris_stopped_by_watchpoint (void)
 {
   unsigned long exs;
+  struct regcache *regcache = get_thread_regcache (current_inferior, 1);
 
-  collect_register_by_name ("exs", &exs);
+  collect_register_by_name (regcache, "exs", &exs);
 
   return (((exs & 0xff00) >> 8) == 0xc);
 }
@@ -331,47 +331,46 @@ static CORE_ADDR
 cris_stopped_data_address (void)
 {
   unsigned long eda;
+  struct regcache *regcache = get_thread_regcache (current_inferior, 1);
 
-  collect_register_by_name ("eda", &eda);
+  collect_register_by_name (regcache, "eda", &eda);
 
   /* FIXME: Possibly adjust to match watched range.  */
   return eda;
 }
 
 static void
-cris_fill_gregset (void *buf)
+cris_fill_gregset (struct regcache *regcache, void *buf)
 {
   int i;
 
   for (i = 0; i < cris_num_regs; i++)
     {
       if (cris_regmap[i] != -1)
-	collect_register (i, ((char *) buf) + cris_regmap[i]);
+	collect_register (regcache, i, ((char *) buf) + cris_regmap[i]);
     }
 }
 
 static void
-cris_store_gregset (const void *buf)
+cris_store_gregset (struct regcache *regcache, const void *buf)
 {
   int i;
 
   for (i = 0; i < cris_num_regs; i++)
     {
       if (cris_regmap[i] != -1)
-	supply_register (i, ((char *) buf) + cris_regmap[i]);
+	supply_register (regcache, i, ((char *) buf) + cris_regmap[i]);
     }
 }
 
-typedef unsigned long elf_gregset_t[cris_num_regs];
-
 struct regset_info target_regsets[] = {
-  { PTRACE_GETREGS, PTRACE_SETREGS, 0, sizeof (elf_gregset_t),
+  { PTRACE_GETREGS, PTRACE_SETREGS, 0, cris_num_regs * 4,
     GENERAL_REGS, cris_fill_gregset, cris_store_gregset },
   { 0, 0, 0, -1, -1, NULL, NULL }
 };
 
 struct linux_target_ops the_low_target = {
-  init_register_crisv32,
+  init_registers_crisv32,
   -1,
   NULL,
   NULL,
-- 
1.7.2.5


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]