diff options
author | Paul Fertser <fercerpav@gmail.com> | 2015-02-09 16:43:58 +0300 |
---|---|---|
committer | Paul Fertser <fercerpav@gmail.com> | 2015-03-09 06:41:58 +0000 |
commit | ebe9b7a6611210d185be88697457819f01df43ab (patch) | |
tree | 5318e9b8dfa45e95c4a8fe93d87beccd4b1cb826 /src | |
parent | 889b246d939bf8572094cf4bfe56f58f44e8ff62 (diff) | |
download | riscv-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.c | 24 |
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; } |