summaryrefslogtreecommitdiff
path: root/src/jtag/jtag.c
diff options
context:
space:
mode:
authorzwelch <zwelch@b42882b7-edfa-0310-969c-e2dbd0fdcd60>2009-06-09 01:16:35 +0000
committerzwelch <zwelch@b42882b7-edfa-0310-969c-e2dbd0fdcd60>2009-06-09 01:16:35 +0000
commitff85ad7c12a79273db5248d3b121fec3ad6db583 (patch)
tree7a0a83765a1190dfbdd828eaed78d61c411af297 /src/jtag/jtag.c
parent731d2d0cb6a63fd7fc1fa2f43cc92e095508f0ff (diff)
downloadopenocd_libswd-ff85ad7c12a79273db5248d3b121fec3ad6db583.tar.gz
openocd_libswd-ff85ad7c12a79273db5248d3b121fec3ad6db583.tar.bz2
openocd_libswd-ff85ad7c12a79273db5248d3b121fec3ad6db583.tar.xz
openocd_libswd-ff85ad7c12a79273db5248d3b121fec3ad6db583.zip
Change jtag_add_pathmove to set jtag_error rather than call exit():
- Add new error codes to encode the possible failure conditions. - Add documentation to describe the routine's possible error codes. git-svn-id: svn://svn.berlios.de/openocd/trunk@2138 b42882b7-edfa-0310-969c-e2dbd0fdcd60
Diffstat (limited to 'src/jtag/jtag.c')
-rw-r--r--src/jtag/jtag.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/jtag/jtag.c b/src/jtag/jtag.c
index 77f32257..e8b66d15 100644
--- a/src/jtag/jtag.c
+++ b/src/jtag/jtag.c
@@ -613,7 +613,8 @@ void jtag_add_pathmove(int num_states, const tap_state_t *path)
if (!tap_is_state_stable(path[num_states - 1]))
{
LOG_ERROR("BUG: TAP path doesn't finish in a stable state");
- exit(-1);
+ jtag_set_error(ERROR_JTAG_NOT_STABLE_STATE);
+ return;
}
for (int i = 0; i < num_states; i++)
@@ -621,7 +622,8 @@ void jtag_add_pathmove(int num_states, const tap_state_t *path)
if (path[i] == TAP_RESET)
{
LOG_ERROR("BUG: TAP_RESET is not a valid state for pathmove sequences");
- exit(-1);
+ jtag_set_error(ERROR_JTAG_STATE_INVALID);
+ return;
}
if ( tap_state_transition(cur_state, true) != path[i]
@@ -629,7 +631,8 @@ void jtag_add_pathmove(int num_states, const tap_state_t *path)
{
LOG_ERROR("BUG: %s -> %s isn't a valid TAP transition",
tap_state_name(cur_state), tap_state_name(path[i]));
- exit(-1);
+ jtag_set_error(ERROR_JTAG_TRANSITION_INVALID);
+ return;
}
cur_state = path[i];
}