forked from auracaster/openocd
breakpoints: use 64-bit type for watchpoint mask and value
This patch changes data types of watchpoint value and mask to allow for 64-bit values match that some architectures (like RISCV) allow. In addition this patch fixes the behavior of watchpoint command to zero-out mask if only data value is provided. Change-Id: I3c7ec1630f03ea9534ec34c0ebe99e08ea56e7f0 Signed-off-by: Parshintsev Anatoly <anatoly.parshintsev@syntacore.com> Reviewed-on: https://review.openocd.org/c/openocd/+/7840 Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com> Reviewed-by: Marek Vrbka <marek.vrbka@codasip.com> Tested-by: jenkins Reviewed-by: Tomas Vanek <vanekt@fbl.cz>
This commit is contained in:
committed by
Tomas Vanek
parent
2ca6d25eb5
commit
2cd8ebf44d
@@ -36,11 +36,13 @@ struct breakpoint {
|
||||
int linked_brp;
|
||||
};
|
||||
|
||||
#define WATCHPOINT_IGNORE_DATA_VALUE_MASK (~(uint64_t)0)
|
||||
|
||||
struct watchpoint {
|
||||
target_addr_t address;
|
||||
uint32_t length;
|
||||
uint32_t mask;
|
||||
uint32_t value;
|
||||
uint64_t mask;
|
||||
uint64_t value;
|
||||
enum watchpoint_rw rw;
|
||||
bool is_set;
|
||||
unsigned int number;
|
||||
@@ -69,7 +71,7 @@ static inline void breakpoint_hw_set(struct breakpoint *breakpoint, unsigned int
|
||||
void watchpoint_clear_target(struct target *target);
|
||||
int watchpoint_add(struct target *target,
|
||||
target_addr_t address, uint32_t length,
|
||||
enum watchpoint_rw rw, uint32_t value, uint32_t mask);
|
||||
enum watchpoint_rw rw, uint64_t value, uint64_t mask);
|
||||
void watchpoint_remove(struct target *target, target_addr_t address);
|
||||
|
||||
/* report type and address of just hit watchpoint */
|
||||
|
||||
Reference in New Issue
Block a user