Add target_ops argument to to_region_ok_for_hw_watchpoint

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.
This commit is contained in:
Tom Tromey 2013-12-17 21:29:45 -07:00
parent 7bb99c5383
commit 31568a15a2
13 changed files with 62 additions and 18 deletions

View file

@ -1,3 +1,29 @@
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

View 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;

View 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;

View 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));

View 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;
}

View 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;

View 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)

View 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

View 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;

View 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;
}

View 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;
}

View 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",

View 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.