+int watchpoint_add(struct target *target, target_addr_t address,
+ uint32_t length, enum watchpoint_rw rw, uint32_t value, uint32_t mask)
+{
+ if (target->smp) {
+ struct target_list *head;
+
+ foreach_smp_target(head, target->smp_targets) {
+ struct target *curr = head->target;
+ int retval = watchpoint_add_internal(curr, address, length, rw, value, mask);
+ if (retval != ERROR_OK)
+ return retval;
+ }
+
+ return ERROR_OK;
+ } else {
+ return watchpoint_add_internal(target, address, length, rw, value,
+ mask);
+ }
+}
+