19 #ifndef AARCH64_LINUX_HW_POINT_H 20 #define AARCH64_LINUX_HW_POINT_H 1 36 #define AARCH64_HBP_MAX_NUM 16 37 #define AARCH64_HWP_MAX_NUM 16 51 #define AARCH64_HBP_ALIGNMENT 4 52 #define AARCH64_HWP_ALIGNMENT 8 57 #define AARCH64_HWP_MAX_LEN_PER_REG 8 68 #define AARCH64_DEBUG_NUM_SLOTS(x) ((x) & 0xff) 69 #define AARCH64_DEBUG_ARCH(x) (((x) >> 8) & 0xff) 72 #define AARCH64_DEBUG_ARCH_V8 0x6 73 #define AARCH64_DEBUG_ARCH_V8_1 0x7 74 #define AARCH64_DEBUG_ARCH_V8_2 0x8 85 #define DR_CONTROL_ENABLED(ctrl) (((ctrl) & 0x1) == 1) 86 #define DR_CONTROL_LENGTH(ctrl) (((ctrl) >> 5) & 0xff) 113 #define DR_MARK_ALL_CHANGED(x, m) \ 116 gdb_assert (sizeof ((x)) * 8 >= (m)); \ 117 (x) = (((dr_changed_t)1 << (m)) - 1); \ 120 #define DR_MARK_N_CHANGED(x, n) \ 123 (x) |= ((dr_changed_t)1 << (n)); \ 126 #define DR_CLEAR_CHANGED(x) \ 132 #define DR_HAS_CHANGED(x) ((x) != 0) 133 #define DR_N_HAS_CHANGED(x, n) ((x) & ((dr_changed_t)1 << (n))) 172 int len,
int is_insert,
175 int len,
int is_insert,
179 int tid,
int watchpoint);
#define AARCH64_HWP_MAX_NUM
#define AARCH64_HBP_MAX_NUM
unsigned int dr_ref_count_wp[AARCH64_HWP_MAX_NUM]
void aarch64_linux_get_debug_reg_capacity(int tid)
int aarch64_handle_watchpoint(enum target_hw_bp_type type, CORE_ADDR addr, int len, int is_insert, struct aarch64_debug_reg_state *state)
int aarch64_linux_region_ok_for_watchpoint(CORE_ADDR addr, int len)
unsigned int aarch64_watchpoint_length(unsigned int ctrl)
int aarch64_handle_breakpoint(enum target_hw_bp_type type, CORE_ADDR addr, int len, int is_insert, struct aarch64_debug_reg_state *state)
void aarch64_linux_set_debug_regs(const struct aarch64_debug_reg_state *state, int tid, int watchpoint)
CORE_ADDR dr_addr_bp[AARCH64_HBP_MAX_NUM]
dr_changed_t dr_changed_wp
unsigned int dr_ref_count_bp[AARCH64_HBP_MAX_NUM]
unsigned int dr_ctrl_wp[AARCH64_HWP_MAX_NUM]
void aarch64_show_debug_reg_state(struct aarch64_debug_reg_state *state, const char *func, CORE_ADDR addr, int len, enum target_hw_bp_type type)
unsigned long long ULONGEST
dr_changed_t dr_changed_bp
struct aarch64_debug_reg_state * aarch64_get_debug_reg_state(pid_t pid)
unsigned int dr_ctrl_bp[AARCH64_HBP_MAX_NUM]
CORE_ADDR dr_addr_wp[AARCH64_HWP_MAX_NUM]