OpenOCD
breakpoints.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: GPL-2.0-or-later */
2 
3 /***************************************************************************
4  * Copyright (C) 2005 by Dominic Rath *
5  * Dominic.Rath@gmx.de *
6  ***************************************************************************/
7 
8 #ifndef OPENOCD_TARGET_BREAKPOINTS_H
9 #define OPENOCD_TARGET_BREAKPOINTS_H
10 
11 #include <stdint.h>
12 
13 #include "helper/types.h"
14 
15 struct target;
16 
20 };
21 
24 };
25 
26 struct breakpoint {
28  uint32_t asid;
29  int length;
30  enum breakpoint_type type;
31  bool is_set;
32  unsigned int number;
33  uint8_t *orig_instr;
34  struct breakpoint *next;
35  uint32_t unique_id;
37 };
38 
39 struct watchpoint {
41  uint32_t length;
42  uint32_t mask;
43  uint32_t value;
44  enum watchpoint_rw rw;
45  bool is_set;
46  unsigned int number;
47  struct watchpoint *next;
48  int unique_id;
49 };
50 
52 int breakpoint_add(struct target *target,
55  uint32_t asid, uint32_t length, enum breakpoint_type type);
57  target_addr_t address, uint32_t asid, uint32_t length, enum breakpoint_type type);
59 void breakpoint_remove_all(struct target *target);
60 
62 
63 static inline void breakpoint_hw_set(struct breakpoint *breakpoint, unsigned int hw_number)
64 {
65  breakpoint->is_set = true;
66  breakpoint->number = hw_number;
67 }
68 
70 int watchpoint_add(struct target *target,
71  target_addr_t address, uint32_t length,
72  enum watchpoint_rw rw, uint32_t value, uint32_t mask);
74 
75 /* report type and address of just hit watchpoint */
76 int watchpoint_hit(struct target *target, enum watchpoint_rw *rw,
78 
79 static inline void watchpoint_set(struct watchpoint *watchpoint, unsigned int number)
80 {
81  watchpoint->is_set = true;
83 }
84 
85 #endif /* OPENOCD_TARGET_BREAKPOINTS_H */
void watchpoint_clear_target(struct target *target)
Definition: breakpoints.c:540
void breakpoint_remove_all(struct target *target)
Definition: breakpoints.c:346
void breakpoint_clear_target(struct target *target)
Definition: breakpoints.c:368
int watchpoint_hit(struct target *target, enum watchpoint_rw *rw, target_addr_t *address)
Definition: breakpoints.c:548
breakpoint_type
Definition: breakpoints.h:17
@ BKPT_HARD
Definition: breakpoints.h:18
@ BKPT_SOFT
Definition: breakpoints.h:19
int hybrid_breakpoint_add(struct target *target, target_addr_t address, uint32_t asid, uint32_t length, enum breakpoint_type type)
Definition: breakpoints.c:251
static void watchpoint_set(struct watchpoint *watchpoint, unsigned int number)
Definition: breakpoints.h:79
static void breakpoint_hw_set(struct breakpoint *breakpoint, unsigned int hw_number)
Definition: breakpoints.h:63
int context_breakpoint_add(struct target *target, uint32_t asid, uint32_t length, enum breakpoint_type type)
Definition: breakpoints.c:230
void watchpoint_remove(struct target *target, target_addr_t address)
Definition: breakpoints.c:523
void breakpoint_remove(struct target *target, target_addr_t address)
Definition: breakpoints.c:329
int breakpoint_add(struct target *target, target_addr_t address, uint32_t length, enum breakpoint_type type)
Definition: breakpoints.c:204
int watchpoint_add(struct target *target, target_addr_t address, uint32_t length, enum watchpoint_rw rw, uint32_t value, uint32_t mask)
Definition: breakpoints.c:462
struct breakpoint * breakpoint_find(struct target *target, target_addr_t address)
Definition: breakpoints.c:382
watchpoint_rw
Definition: breakpoints.h:22
@ WPT_ACCESS
Definition: breakpoints.h:23
@ WPT_READ
Definition: breakpoints.h:23
@ WPT_WRITE
Definition: breakpoints.h:23
enum esirisc_reg_num number
Definition: esirisc.c:87
int mask
Definition: esirisc.c:1698
uint8_t type
Definition: esp_usb_jtag.c:0
uint8_t length
Definition: esp_usb_jtag.c:1
int linked_brp
Definition: breakpoints.h:36
struct breakpoint * next
Definition: breakpoints.h:34
uint8_t * orig_instr
Definition: breakpoints.h:33
enum breakpoint_type type
Definition: breakpoints.h:30
uint32_t unique_id
Definition: breakpoints.h:35
bool is_set
Definition: breakpoints.h:31
unsigned int number
Definition: breakpoints.h:32
uint32_t asid
Definition: breakpoints.h:28
target_addr_t address
Definition: breakpoints.h:27
Definition: target.h:120
enum watchpoint_rw rw
Definition: breakpoints.h:44
uint32_t mask
Definition: breakpoints.h:42
bool is_set
Definition: breakpoints.h:45
struct watchpoint * next
Definition: breakpoints.h:47
int unique_id
Definition: breakpoints.h:48
uint32_t value
Definition: breakpoints.h:43
unsigned int number
Definition: breakpoints.h:46
uint32_t length
Definition: breakpoints.h:41
target_addr_t address
Definition: breakpoints.h:40
uint64_t target_addr_t
Definition: types.h:335