diff options
author | Øyvind Harboe <oyvind.harboe@zylin.com> | 2011-11-07 07:24:42 +0100 |
---|---|---|
committer | Spencer Oliver <spen@spen-soft.co.uk> | 2011-11-07 20:35:42 +0000 |
commit | 3bab8990635af47de01e86c32a8ee9fe87789190 (patch) | |
tree | 3edc41520948d383abff4b43a31a6b038e0b5dd5 /src/xsvf/xsvf.c | |
parent | 0552c05ee8f30d204b6dd481ba7f054034363b70 (diff) |
xsvf: add missing error propagation
Change-Id: Ibc70deb980d6d18ceb376b72d9104e6180b16acf
Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>
Reviewed-on: http://openocd.zylin.com/176
Tested-by: jenkins
Reviewed-by: Spencer Oliver <spen@spen-soft.co.uk>
Diffstat (limited to 'src/xsvf/xsvf.c')
-rw-r--r-- | src/xsvf/xsvf.c | 23 |
1 files changed, 21 insertions, 2 deletions
diff --git a/src/xsvf/xsvf.c b/src/xsvf/xsvf.c index 31c39499..14b9e28d 100644 --- a/src/xsvf/xsvf.c +++ b/src/xsvf/xsvf.c @@ -510,14 +510,19 @@ COMMAND_HANDLER(handle_xsvf_command) if (xruntest) { result = svf_add_statemove(TAP_IDLE); + if (result != ERROR_OK) + return result; if (runtest_requires_tck) jtag_add_clocks(xruntest); else jtag_add_sleep(xruntest); - } - else if (xendir != TAP_DRPAUSE) /* we are already in TAP_DRPAUSE */ + } else if (xendir != TAP_DRPAUSE) { + /* we are already in TAP_DRPAUSE */ result = svf_add_statemove(xenddr); + if (result != ERROR_OK) + return result; + } } break; @@ -790,8 +795,12 @@ COMMAND_HANDLER(handle_xsvf_command) { /* FIXME handle statemove errors ... */ result = svf_add_statemove(wait_state); + if (result != ERROR_OK) + return result; jtag_add_sleep(delay); result = svf_add_statemove(end_state); + if (result != ERROR_OK) + return result; } } break; @@ -846,12 +855,16 @@ COMMAND_HANDLER(handle_xsvf_command) /* FIXME handle statemove errors ... */ result = svf_add_statemove(wait_state); + if (result != ERROR_OK) + return result; jtag_add_clocks(clock_count); jtag_add_sleep(usecs); result = svf_add_statemove(end_state); + if (result != ERROR_OK) + return result; } break; @@ -925,6 +938,8 @@ COMMAND_HANDLER(handle_xsvf_command) struct scan_field field; result = svf_add_statemove(loop_state); + if (result != ERROR_OK) + return result; jtag_add_clocks(loop_clocks); jtag_add_sleep(loop_usecs); @@ -1003,7 +1018,11 @@ COMMAND_HANDLER(handle_xsvf_command) /* upon error, return the TAPs to a reasonable state */ result = svf_add_statemove(TAP_IDLE); + if (result != ERROR_OK) + return result; result = jtag_execute_queue(); + if (result != ERROR_OK) + return result; break; } } |