31#ifndef _RTEMS_DEBUGGER_TARGET_h
32#define _RTEMS_DEBUGGER_TARGET_h
36#include <rtems/rtems-debugger.h>
38#include "rtems-debugger-threads.h"
47#define RTEMS_DEBUGGER_TARGET_SWBREAK_NUM 64
52#define RTEMS_DEBUGGER_TARGET_CAP_SWBREAK (1 << 0)
53#define RTEMS_DEBUGGER_TARGET_CAP_HWBREAK (1 << 1)
54#define RTEMS_DEBUGGER_TARGET_CAP_HWWATCH (1 << 2)
59typedef enum rtems_debugger_target_watchpoint
61 rtems_debugger_target_hw_read,
62 rtems_debugger_target_hw_write,
63 rtems_debugger_target_hw_read_write,
64 rtems_debugger_target_hw_execute
65} rtems_debugger_target_watchpoint;
70typedef enum rtems_debugger_target_exc_action
72 rtems_debugger_target_exc_consumed,
73 rtems_debugger_target_exc_cascade,
74 rtems_debugger_target_exc_step,
75} rtems_debugger_target_exc_action;
80#define RTEMS_DEBUGGER_TARGET_SWBREAK_MAX_SIZE (4)
83 uint8_t contents[RTEMS_DEBUGGER_TARGET_SWBREAK_MAX_SIZE];
96 const size_t* reg_offset;
97 const uint8_t* breakpoint;
98 size_t breakpoint_size;
101 jmp_buf access_return;
107extern int rtems_debugger_target_create(
void);
112extern int rtems_debugger_target_destroy(
void);
122extern int rtems_debugger_target_enable(
void);
127extern int rtems_debugger_target_disable(
void);
132extern uint32_t rtems_debugger_target_capabilities(
void);
137extern size_t rtems_debugger_target_reg_num(
void);
142extern size_t rtems_debugger_target_reg_size(
size_t reg);
147extern size_t rtems_debugger_target_reg_offset(
size_t reg);
152extern size_t rtems_debugger_target_reg_table_size(
void);
202extern int rtems_debugger_target_swbreak_control(
bool insert,
209extern int rtems_debugger_target_swbreak_insert(
void);
214extern int rtems_debugger_target_swbreak_remove(
void);
219extern int rtems_debugger_target_hwbreak_insert(
void);
224extern int rtems_debugger_target_hwbreak_remove(
void);
229extern int rtems_debugger_target_hwbreak_control(rtems_debugger_target_watchpoint type,
237extern rtems_debugger_target_exc_action
260extern int rtems_debugger_target_start_memory_access(
void);
265extern void rtems_debugger_target_end_memory_access(
void);
270extern bool rtems_debugger_target_is_memory_access(
void);
The set of registers that specifies the complete processor state.
Definition: cpu.h:629
Definition: rtems-debugger-block.h:46
Definition: rtems-debugger-target.h:81
Definition: rtems-debugger-target.h:93
Definition: rtems-debugger-threads.h:87