Add target_ops argument to to_region_ok_for_hw_watchpoint
authorTom Tromey <tromey@redhat.com>
Wed, 18 Dec 2013 04:29:45 +0000 (21:29 -0700)
committerTom Tromey <tromey@redhat.com>
Wed, 19 Feb 2014 14:45:35 +0000 (07:45 -0700)
2014-02-19  Tom Tromey  <tromey@redhat.com>

* target.h (struct target_ops) <to_region_ok_for_hw_watchpoint>:
Add argument.
(target_region_ok_for_hw_watchpoint): Add argument.
* target.c (debug_to_region_ok_for_hw_watchpoint): Add argument.
(default_region_ok_for_hw_watchpoint): Add argument.
* spu-multiarch.c (spu_region_ok_for_hw_watchpoint): Add argument.
* s390-linux-nat.c (s390_region_ok_for_hw_watchpoint): Add 'self'
argument.
* remote.c (remote_region_ok_for_hw_watchpoint): Add 'self'
argument.
* procfs.c (procfs_region_ok_for_hw_watchpoint): Add 'self'
argument.
* ppc-linux-nat.c (ppc_linux_region_ok_for_hw_watchpoint): Add
'self' argument.
* mips-linux-nat.c (mips_linux_region_ok_for_hw_watchpoint): Add
'self' argument.
* inf-ttrace.c (inf_ttrace_region_ok_for_hw_watchpoint): Add
'self' argument.
* i386-nat.c (i386_region_ok_for_watchpoint): Add 'self' argument.
* arm-linux-nat.c (arm_linux_region_ok_for_hw_watchpoint): Add
'self' argument.
* aarch64-linux-nat.c (aarch64_linux_region_ok_for_hw_watchpoint):
Add 'self' argument.

13 files changed:
gdb/ChangeLog
gdb/aarch64-linux-nat.c
gdb/arm-linux-nat.c
gdb/i386-nat.c
gdb/inf-ttrace.c
gdb/mips-linux-nat.c
gdb/ppc-linux-nat.c
gdb/procfs.c
gdb/remote.c
gdb/s390-linux-nat.c
gdb/spu-multiarch.c
gdb/target.c
gdb/target.h

index ac6184b..763aa27 100644 (file)
@@ -1,5 +1,31 @@
 2014-02-19  Tom Tromey  <tromey@redhat.com>
 
+       * target.h (struct target_ops) <to_region_ok_for_hw_watchpoint>:
+       Add argument.
+       (target_region_ok_for_hw_watchpoint): Add argument.
+       * target.c (debug_to_region_ok_for_hw_watchpoint): Add argument.
+       (default_region_ok_for_hw_watchpoint): Add argument.
+       * spu-multiarch.c (spu_region_ok_for_hw_watchpoint): Add argument.
+       * s390-linux-nat.c (s390_region_ok_for_hw_watchpoint): Add 'self'
+       argument.
+       * remote.c (remote_region_ok_for_hw_watchpoint): Add 'self'
+       argument.
+       * procfs.c (procfs_region_ok_for_hw_watchpoint): Add 'self'
+       argument.
+       * ppc-linux-nat.c (ppc_linux_region_ok_for_hw_watchpoint): Add
+       'self' argument.
+       * mips-linux-nat.c (mips_linux_region_ok_for_hw_watchpoint): Add
+       'self' argument.
+       * inf-ttrace.c (inf_ttrace_region_ok_for_hw_watchpoint): Add
+       'self' argument.
+       * i386-nat.c (i386_region_ok_for_watchpoint): Add 'self' argument.
+       * arm-linux-nat.c (arm_linux_region_ok_for_hw_watchpoint): Add
+       'self' argument.
+       * aarch64-linux-nat.c (aarch64_linux_region_ok_for_hw_watchpoint):
+       Add 'self' argument.
+
+2014-02-19  Tom Tromey  <tromey@redhat.com>
+
        * target.h (struct target_ops) <to_insert_watchpoint>: Add
        argument.
        (target_insert_watchpoint): Add argument.
index a69e31f..c6437fe 100644 (file)
@@ -1403,7 +1403,8 @@ aarch64_linux_remove_watchpoint (struct target_ops *self,
 /* Implement the "to_region_ok_for_hw_watchpoint" target_ops method.  */
 
 static int
-aarch64_linux_region_ok_for_hw_watchpoint (CORE_ADDR addr, int len)
+aarch64_linux_region_ok_for_hw_watchpoint (struct target_ops *self,
+                                          CORE_ADDR addr, int len)
 {
   CORE_ADDR aligned_addr;
 
index c4b34cd..75f58ca 100644 (file)
@@ -1076,7 +1076,8 @@ arm_linux_remove_hw_breakpoint (struct target_ops *self,
 /* Are we able to use a hardware watchpoint for the LEN bytes starting at 
    ADDR?  */
 static int
-arm_linux_region_ok_for_hw_watchpoint (CORE_ADDR addr, int len)
+arm_linux_region_ok_for_hw_watchpoint (struct target_ops *self,
+                                      CORE_ADDR addr, int len)
 {
   const struct arm_linux_hwbp_cap *cap = arm_linux_get_hwbp_cap ();
   CORE_ADDR max_wp_length, aligned_addr;
index cd766cf..2f80a6e 100644 (file)
@@ -664,7 +664,8 @@ i386_remove_watchpoint (struct target_ops *self,
    address ADDR and whose length is LEN bytes.  */
 
 static int
-i386_region_ok_for_watchpoint (CORE_ADDR addr, int len)
+i386_region_ok_for_watchpoint (struct target_ops *self,
+                              CORE_ADDR addr, int len)
 {
   struct i386_debug_reg_state *state
     = i386_debug_reg_state (ptid_get_pid (inferior_ptid));
index 919515f..d046bba 100644 (file)
@@ -368,7 +368,8 @@ inf_ttrace_can_use_hw_breakpoint (struct target_ops *self,
 }
 
 static int
-inf_ttrace_region_ok_for_hw_watchpoint (CORE_ADDR addr, int len)
+inf_ttrace_region_ok_for_hw_watchpoint (struct target_ops *self,
+                                       CORE_ADDR addr, int len)
 {
   return 1;
 }
index d8781fc..4c28733 100644 (file)
@@ -589,7 +589,8 @@ mips_linux_stopped_data_address (struct target_ops *t, CORE_ADDR *paddr)
    the specified region can be covered by the watch registers.  */
 
 static int
-mips_linux_region_ok_for_hw_watchpoint (CORE_ADDR addr, int len)
+mips_linux_region_ok_for_hw_watchpoint (struct target_ops *self,
+                                       CORE_ADDR addr, int len)
 {
   struct pt_watch_regs dummy_regs;
   int i;
index f77d225..dd0fe8c 100644 (file)
@@ -1497,7 +1497,8 @@ ppc_linux_can_use_hw_breakpoint (struct target_ops *self,
 }
 
 static int
-ppc_linux_region_ok_for_hw_watchpoint (CORE_ADDR addr, int len)
+ppc_linux_region_ok_for_hw_watchpoint (struct target_ops *self,
+                                      CORE_ADDR addr, int len)
 {
   /* Handle sub-8-byte quantities.  */
   if (len <= 0)
index e1de2ac..511ddf1 100644 (file)
@@ -4930,7 +4930,8 @@ procfs_remove_watchpoint (struct target_ops *self,
 }
 
 static int
-procfs_region_ok_for_hw_watchpoint (CORE_ADDR addr, int len)
+procfs_region_ok_for_hw_watchpoint (struct target_ops *self,
+                                   CORE_ADDR addr, int len)
 {
   /* The man page for proc(4) on Solaris 2.6 and up says that the
      system can support "thousands" of hardware watchpoints, but gives
index d851bf7..6424304 100644 (file)
@@ -8259,7 +8259,8 @@ int remote_hw_watchpoint_length_limit = -1;
 int remote_hw_breakpoint_limit = -1;
 
 static int
-remote_region_ok_for_hw_watchpoint (CORE_ADDR addr, int len)
+remote_region_ok_for_hw_watchpoint (struct target_ops *self,
+                                   CORE_ADDR addr, int len)
 {
   if (remote_hw_watchpoint_length_limit == 0)
     return 0;
index 342d6ad..5c38952 100644 (file)
@@ -566,7 +566,8 @@ s390_can_use_hw_breakpoint (struct target_ops *self,
 }
 
 static int
-s390_region_ok_for_hw_watchpoint (CORE_ADDR addr, int cnt)
+s390_region_ok_for_hw_watchpoint (struct target_ops *self,
+                                 CORE_ADDR addr, int cnt)
 {
   return 1;
 }
index c3263ba..bd6c836 100644 (file)
@@ -118,7 +118,8 @@ spu_thread_architecture (struct target_ops *ops, ptid_t ptid)
 
 /* Override the to_region_ok_for_hw_watchpoint routine.  */
 static int
-spu_region_ok_for_hw_watchpoint (CORE_ADDR addr, int len)
+spu_region_ok_for_hw_watchpoint (struct target_ops *self,
+                                CORE_ADDR addr, int len)
 {
   struct target_ops *ops_beneath = find_target_beneath (&spu_ops);
   while (ops_beneath && !ops_beneath->to_region_ok_for_hw_watchpoint)
@@ -129,7 +130,8 @@ spu_region_ok_for_hw_watchpoint (CORE_ADDR addr, int len)
     return 0;
 
   if (ops_beneath)
-    return ops_beneath->to_region_ok_for_hw_watchpoint (addr, len);
+    return ops_beneath->to_region_ok_for_hw_watchpoint (ops_beneath,
+                                                       addr, len);
 
   return 0;
 }
index d737928..9cc5a46 100644 (file)
@@ -52,7 +52,8 @@ static void default_terminal_info (const char *, int);
 static int default_watchpoint_addr_within_range (struct target_ops *,
                                                 CORE_ADDR, CORE_ADDR, int);
 
-static int default_region_ok_for_hw_watchpoint (CORE_ADDR, int);
+static int default_region_ok_for_hw_watchpoint (struct target_ops *,
+                                               CORE_ADDR, int);
 
 static void tcomplain (void) ATTRIBUTE_NORETURN;
 
@@ -124,7 +125,8 @@ static int debug_to_stopped_data_address (struct target_ops *, CORE_ADDR *);
 static int debug_to_watchpoint_addr_within_range (struct target_ops *,
                                                  CORE_ADDR, CORE_ADDR, int);
 
-static int debug_to_region_ok_for_hw_watchpoint (CORE_ADDR, int);
+static int debug_to_region_ok_for_hw_watchpoint (struct target_ops *self,
+                                                CORE_ADDR, int);
 
 static int debug_to_can_accel_watchpoint_condition (CORE_ADDR, int, int,
                                                    struct expression *);
@@ -3641,7 +3643,8 @@ target_fileio_read_stralloc (const char *filename)
 
 
 static int
-default_region_ok_for_hw_watchpoint (CORE_ADDR addr, int len)
+default_region_ok_for_hw_watchpoint (struct target_ops *self,
+                                    CORE_ADDR addr, int len)
 {
   return (len <= gdbarch_ptr_bit (target_gdbarch ()) / TARGET_CHAR_BIT);
 }
@@ -4647,11 +4650,13 @@ debug_to_can_use_hw_breakpoint (struct target_ops *self,
 }
 
 static int
-debug_to_region_ok_for_hw_watchpoint (CORE_ADDR addr, int len)
+debug_to_region_ok_for_hw_watchpoint (struct target_ops *self,
+                                     CORE_ADDR addr, int len)
 {
   CORE_ADDR retval;
 
-  retval = debug_target.to_region_ok_for_hw_watchpoint (addr, len);
+  retval = debug_target.to_region_ok_for_hw_watchpoint (&debug_target,
+                                                       addr, len);
 
   fprintf_unfiltered (gdb_stdlog,
                      "target_region_ok_for_hw_watchpoint (%s, %ld) = %s\n",
index 69b8b77..e91af7d 100644 (file)
@@ -479,7 +479,8 @@ struct target_ops
 
     /* Documentation of this routine is provided with the corresponding
        target_* macro.  */
-    int (*to_region_ok_for_hw_watchpoint) (CORE_ADDR, int);
+    int (*to_region_ok_for_hw_watchpoint) (struct target_ops *,
+                                          CORE_ADDR, int);
 
     int (*to_can_accel_watchpoint_condition) (CORE_ADDR, int, int,
                                              struct expression *);
@@ -1606,7 +1607,8 @@ extern char *target_thread_name (struct thread_info *);
    memory region, or zero if not supported.  */
 
 #define target_region_ok_for_hw_watchpoint(addr, len) \
-    (*current_target.to_region_ok_for_hw_watchpoint) (addr, len)
+    (*current_target.to_region_ok_for_hw_watchpoint) (&current_target, \
+                                                     addr, len)
 
 
 /* Set/clear a hardware watchpoint starting at ADDR, for LEN bytes.