Add target_ops argument to to_can_accel_watchpoint_condition

2014-02-19  Tom Tromey  <tromey@redhat.com>

	* target.h (struct target_ops)
	<to_can_accel_watchpoint_condition>: Add argument.
	(target_can_accel_watchpoint_condition): Add argument.
	* target.c (debug_to_can_accel_watchpoint_condition): Add
	argument.
	(update_current_target): Update.
	* ppc-linux-nat.c (ppc_linux_can_accel_watchpoint_condition): Add
	'self' argument.
This commit is contained in:
Tom Tromey 2013-12-17 21:29:57 -07:00
parent 31568a15a2
commit c3a5ff8963
4 changed files with 25 additions and 7 deletions

View File

@ -1,3 +1,14 @@
2014-02-19 Tom Tromey <tromey@redhat.com>
* target.h (struct target_ops)
<to_can_accel_watchpoint_condition>: Add argument.
(target_can_accel_watchpoint_condition): Add argument.
* target.c (debug_to_can_accel_watchpoint_condition): Add
argument.
(update_current_target): Update.
* ppc-linux-nat.c (ppc_linux_can_accel_watchpoint_condition): Add
'self' argument.
2014-02-19 Tom Tromey <tromey@redhat.com>
* target.h (struct target_ops) <to_region_ok_for_hw_watchpoint>:

View File

@ -2015,7 +2015,8 @@ check_condition (CORE_ADDR watch_addr, struct expression *cond,
the condition expression, thus only triggering the watchpoint when it is
true. */
static int
ppc_linux_can_accel_watchpoint_condition (CORE_ADDR addr, int len, int rw,
ppc_linux_can_accel_watchpoint_condition (struct target_ops *self,
CORE_ADDR addr, int len, int rw,
struct expression *cond)
{
CORE_ADDR data_value;

View File

@ -128,7 +128,8 @@ static int debug_to_watchpoint_addr_within_range (struct target_ops *,
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,
static int debug_to_can_accel_watchpoint_condition (struct target_ops *self,
CORE_ADDR, int, int,
struct expression *);
static void debug_to_terminal_init (void);
@ -764,7 +765,8 @@ update_current_target (void)
de_fault (to_region_ok_for_hw_watchpoint,
default_region_ok_for_hw_watchpoint);
de_fault (to_can_accel_watchpoint_condition,
(int (*) (CORE_ADDR, int, int, struct expression *))
(int (*) (struct target_ops *, CORE_ADDR, int, int,
struct expression *))
return_zero);
de_fault (to_terminal_init,
(void (*) (void))
@ -4666,12 +4668,14 @@ debug_to_region_ok_for_hw_watchpoint (struct target_ops *self,
}
static int
debug_to_can_accel_watchpoint_condition (CORE_ADDR addr, int len, int rw,
debug_to_can_accel_watchpoint_condition (struct target_ops *self,
CORE_ADDR addr, int len, int rw,
struct expression *cond)
{
int retval;
retval = debug_target.to_can_accel_watchpoint_condition (addr, len,
retval = debug_target.to_can_accel_watchpoint_condition (&debug_target,
addr, len,
rw, cond);
fprintf_unfiltered (gdb_stdlog,

View File

@ -482,7 +482,8 @@ struct target_ops
int (*to_region_ok_for_hw_watchpoint) (struct target_ops *,
CORE_ADDR, int);
int (*to_can_accel_watchpoint_condition) (CORE_ADDR, int, int,
int (*to_can_accel_watchpoint_condition) (struct target_ops *,
CORE_ADDR, int, int,
struct expression *);
int (*to_masked_watch_num_registers) (struct target_ops *,
CORE_ADDR, CORE_ADDR);
@ -1679,7 +1680,8 @@ extern int target_ranged_break_num_registers (void);
For this reason, GDB will still evaluate the condition expression when
the watchpoint triggers. */
#define target_can_accel_watchpoint_condition(addr, len, type, cond) \
(*current_target.to_can_accel_watchpoint_condition) (addr, len, type, cond)
(*current_target.to_can_accel_watchpoint_condition) (&current_target, \
addr, len, type, cond)
/* Return number of debug registers needed for a masked watchpoint,
-1 if masked watchpoints are not supported or -2 if the given address