aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPaul Fertser <fercerpav@gmail.com>2015-02-09 16:43:58 +0300
committerPaul Fertser <fercerpav@gmail.com>2015-03-09 06:41:58 +0000
commitebe9b7a6611210d185be88697457819f01df43ab (patch)
tree5318e9b8dfa45e95c4a8fe93d87beccd4b1cb826 /src
parent889b246d939bf8572094cf4bfe56f58f44e8ff62 (diff)
downloadriscv-openocd-ebe9b7a6611210d185be88697457819f01df43ab.zip
riscv-openocd-ebe9b7a6611210d185be88697457819f01df43ab.tar.gz
riscv-openocd-ebe9b7a6611210d185be88697457819f01df43ab.tar.bz2
target/target: call event handlers around examine when polling resumes
The target might be using Tcl examine-start and examine-end handlers, they need to be called when the target gets reexamined after polling succeeds again. Change-Id: I371380c6f3c427ec7a0206d73426f6589f18a9bd Signed-off-by: Paul Fertser <fercerpav@gmail.com> Reviewed-on: http://openocd.zylin.com/2536 Tested-by: jenkins Reviewed-by: Stian Skjelstad <stian@nixia.no>
Diffstat (limited to 'src')
-rw-r--r--src/target/target.c24
1 files changed, 10 insertions, 14 deletions
diff --git a/src/target/target.c b/src/target/target.c
index ef45685..b559a51 100644
--- a/src/target/target.c
+++ b/src/target/target.c
@@ -685,7 +685,15 @@ static int default_check_reset(struct target *target)
int target_examine_one(struct target *target)
{
- return target->type->examine(target);
+ target_call_event_callbacks(target, TARGET_EVENT_EXAMINE_START);
+
+ int retval = target->type->examine(target);
+ if (retval != ERROR_OK)
+ return retval;
+
+ target_call_event_callbacks(target, TARGET_EVENT_EXAMINE_END);
+
+ return ERROR_OK;
}
static int jtag_enable_callback(enum jtag_event event, void *priv)
@@ -697,15 +705,7 @@ static int jtag_enable_callback(enum jtag_event event, void *priv)
jtag_unregister_event_callback(jtag_enable_callback, target);
- target_call_event_callbacks(target, TARGET_EVENT_EXAMINE_START);
-
- int retval = target_examine_one(target);
- if (retval != ERROR_OK)
- return retval;
-
- target_call_event_callbacks(target, TARGET_EVENT_EXAMINE_END);
-
- return retval;
+ return target_examine_one(target);
}
/* Targets that correctly implement init + examine, i.e.
@@ -726,13 +726,9 @@ int target_examine(void)
continue;
}
- target_call_event_callbacks(target, TARGET_EVENT_EXAMINE_START);
-
retval = target_examine_one(target);
if (retval != ERROR_OK)
return retval;
-
- target_call_event_callbacks(target, TARGET_EVENT_EXAMINE_END);
}
return retval;
}