diff options
author | Peter Maydell <peter.maydell@linaro.org> | 2014-09-12 14:06:49 +0100 |
---|---|---|
committer | Peter Maydell <peter.maydell@linaro.org> | 2014-09-12 14:06:49 +0100 |
commit | 3ff6fc9148d0a9e683eb6ec78523a017247e990d (patch) | |
tree | 1ecd027945386aebdf12a1e61e53f722528f193c /target-arm/internals.h | |
parent | 73c5211ba93c9d636a9c0a89e1d9037b6ef1418d (diff) | |
download | hqemu-3ff6fc9148d0a9e683eb6ec78523a017247e990d.zip hqemu-3ff6fc9148d0a9e683eb6ec78523a017247e990d.tar.gz |
target-arm: Implement handling of fired watchpoints
Implement the ARM debug exception handler for dealing with
fired watchpoints.
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Diffstat (limited to 'target-arm/internals.h')
-rw-r--r-- | target-arm/internals.h | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/target-arm/internals.h b/target-arm/internals.h index 1d788b0..64751a0 100644 --- a/target-arm/internals.h +++ b/target-arm/internals.h @@ -307,6 +307,12 @@ static inline uint32_t syn_swstep(int same_el, int isv, int ex) | (isv << 24) | (ex << 6) | 0x22; } +static inline uint32_t syn_watchpoint(int same_el, int cm, int wnr) +{ + return (EC_WATCHPOINT << ARM_EL_EC_SHIFT) | (same_el << ARM_EL_EC_SHIFT) + | (cm << 8) | (wnr << 6) | 0x22; +} + /* Update a QEMU watchpoint based on the information the guest has set in the * DBGWCR<n>_EL1 and DBGWVR<n>_EL1 registers. */ @@ -317,4 +323,7 @@ void hw_watchpoint_update(ARMCPU *cpu, int n); */ void hw_watchpoint_update_all(ARMCPU *cpu); +/* Callback function for when a watchpoint or breakpoint triggers. */ +void arm_debug_excp_handler(CPUState *cs); + #endif |