GDBserver
Loading...
Searching...
No Matches
Classes | Macros | Functions | Variables
aarch64-hw-point.h File Reference

Go to the source code of this file.

Classes

struct  aarch64_debug_reg_state
 

Macros

#define AARCH64_HBP_MAX_NUM   16
 
#define AARCH64_HWP_MAX_NUM   16
 
#define AARCH64_HBP_ALIGNMENT   4
 
#define AARCH64_HWP_ALIGNMENT   8
 
#define AARCH64_HWP_MAX_LEN_PER_REG   8
 
#define AARCH64_DEBUG_ARCH_V8   0x6
 
#define AARCH64_DEBUG_ARCH_V8_1   0x7
 
#define AARCH64_DEBUG_ARCH_V8_2   0x8
 
#define AARCH64_DEBUG_ARCH_V8_4   0x9
 
#define AARCH64_DEBUG_ARCH_V8_8   0xa
 
#define AARCH64_DEBUG_ARCH_V8_9   0xb
 
#define DR_CONTROL_ENABLED(ctrl)   (((ctrl) & 0x1) == 1)
 
#define DR_CONTROL_MASK(ctrl)   (((ctrl) >> 5) & 0xff)
 

Functions

void aarch64_notify_debug_reg_change (ptid_t ptid, int is_watchpoint, unsigned int idx)
 
unsigned int aarch64_watchpoint_offset (unsigned int ctrl)
 
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, ptid_t ptid, struct aarch64_debug_reg_state *state)
 
int aarch64_handle_watchpoint (enum target_hw_bp_type type, CORE_ADDR addr, int len, int is_insert, ptid_t ptid, struct aarch64_debug_reg_state *state)
 
bool aarch64_any_set_debug_regs_state (aarch64_debug_reg_state *state, bool watchpoint)
 
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)
 
int aarch64_region_ok_for_watchpoint (CORE_ADDR addr, int len)
 

Variables

int aarch64_num_bp_regs
 
int aarch64_num_wp_regs
 

Macro Definition Documentation

◆ AARCH64_DEBUG_ARCH_V8

#define AARCH64_DEBUG_ARCH_V8   0x6

Definition at line 57 of file aarch64-hw-point.h.

Referenced by compatible_debug_arch().

◆ AARCH64_DEBUG_ARCH_V8_1

#define AARCH64_DEBUG_ARCH_V8_1   0x7

Definition at line 58 of file aarch64-hw-point.h.

Referenced by compatible_debug_arch().

◆ AARCH64_DEBUG_ARCH_V8_2

#define AARCH64_DEBUG_ARCH_V8_2   0x8

Definition at line 59 of file aarch64-hw-point.h.

Referenced by compatible_debug_arch().

◆ AARCH64_DEBUG_ARCH_V8_4

#define AARCH64_DEBUG_ARCH_V8_4   0x9

Definition at line 60 of file aarch64-hw-point.h.

Referenced by compatible_debug_arch().

◆ AARCH64_DEBUG_ARCH_V8_8

#define AARCH64_DEBUG_ARCH_V8_8   0xa

Definition at line 61 of file aarch64-hw-point.h.

Referenced by compatible_debug_arch().

◆ AARCH64_DEBUG_ARCH_V8_9

#define AARCH64_DEBUG_ARCH_V8_9   0xb

Definition at line 63 of file aarch64-hw-point.h.

Referenced by compatible_debug_arch().

◆ AARCH64_HBP_ALIGNMENT

#define AARCH64_HBP_ALIGNMENT   4

Definition at line 48 of file aarch64-hw-point.h.

Referenced by aarch64_point_is_aligned().

◆ AARCH64_HBP_MAX_NUM

#define AARCH64_HBP_MAX_NUM   16

Definition at line 33 of file aarch64-hw-point.h.

Referenced by aarch64_linux_get_debug_reg_capacity().

◆ AARCH64_HWP_ALIGNMENT

#define AARCH64_HWP_ALIGNMENT   8

◆ AARCH64_HWP_MAX_LEN_PER_REG

#define AARCH64_HWP_MAX_LEN_PER_REG   8

◆ AARCH64_HWP_MAX_NUM

#define AARCH64_HWP_MAX_NUM   16

Definition at line 34 of file aarch64-hw-point.h.

Referenced by aarch64_linux_get_debug_reg_capacity().

◆ DR_CONTROL_ENABLED

#define DR_CONTROL_ENABLED ( ctrl)    (((ctrl) & 0x1) == 1)

Definition at line 74 of file aarch64-hw-point.h.

◆ DR_CONTROL_MASK

#define DR_CONTROL_MASK ( ctrl)    (((ctrl) >> 5) & 0xff)

Definition at line 75 of file aarch64-hw-point.h.

Referenced by aarch64_watchpoint_length(), and aarch64_watchpoint_offset().

Function Documentation

◆ aarch64_any_set_debug_regs_state()

bool aarch64_any_set_debug_regs_state ( aarch64_debug_reg_state * state,
bool watchpoint )

◆ aarch64_handle_breakpoint()

int aarch64_handle_breakpoint ( enum target_hw_bp_type type,
CORE_ADDR addr,
int len,
int is_insert,
ptid_t ptid,
struct aarch64_debug_reg_state * state )

◆ aarch64_handle_watchpoint()

int aarch64_handle_watchpoint ( enum target_hw_bp_type type,
CORE_ADDR addr,
int len,
int is_insert,
ptid_t ptid,
struct aarch64_debug_reg_state * state )

◆ aarch64_notify_debug_reg_change()

void aarch64_notify_debug_reg_change ( ptid_t ptid,
int is_watchpoint,
unsigned int idx )

◆ aarch64_region_ok_for_watchpoint()

int aarch64_region_ok_for_watchpoint ( CORE_ADDR addr,
int len )

Definition at line 590 of file aarch64-hw-point.c.

References AARCH64_HWP_MAX_LEN_PER_REG, and aarch64_num_wp_regs.

◆ aarch64_show_debug_reg_state()

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 )

◆ aarch64_watchpoint_length()

unsigned int aarch64_watchpoint_length ( unsigned int ctrl)

Definition at line 57 of file aarch64-hw-point.c.

References aarch64_watchpoint_offset(), and DR_CONTROL_MASK.

◆ aarch64_watchpoint_offset()

unsigned int aarch64_watchpoint_offset ( unsigned int ctrl)

Definition at line 39 of file aarch64-hw-point.c.

References DR_CONTROL_MASK.

Referenced by aarch64_watchpoint_length().

Variable Documentation

◆ aarch64_num_bp_regs

int aarch64_num_bp_regs
extern

◆ aarch64_num_wp_regs

int aarch64_num_wp_regs
extern