summaryrefslogtreecommitdiff
path: root/src/jtag
diff options
context:
space:
mode:
authorDavid Brownell <dbrownell@users.sourceforge.net>2009-10-23 01:00:32 -0700
committerDavid Brownell <dbrownell@users.sourceforge.net>2009-10-23 01:00:32 -0700
commit814183a5c41cad14b83c29c9473084e6d1a11d9b (patch)
treed409015555d828624c8c6c2546fa9c1fc1c3a3d7 /src/jtag
parent517e812de3782a6b592cb69416d1327a9b94ac9f (diff)
downloadopenocd_libswd-814183a5c41cad14b83c29c9473084e6d1a11d9b.tar.gz
openocd_libswd-814183a5c41cad14b83c29c9473084e6d1a11d9b.tar.bz2
openocd_libswd-814183a5c41cad14b83c29c9473084e6d1a11d9b.tar.xz
openocd_libswd-814183a5c41cad14b83c29c9473084e6d1a11d9b.zip
SVF: clean up, mostly for TAP state name handling
- Use the name mappings all the other code uses: + name-to-state ... needed to add one special case + state-to-name - Improve various diagnostics: + don't complain about a "valid" state when the issue is actually that it must be "stable" + say which command was affected - Misc: + make more private data and code be static + use public DIM() not private dimof() + shorten the affected lines Re the mappings, this means we're more generous in inputs we accept, since case won't matter. Also our output diagnostics will be a smidgeon more informative, saying "RUN/IDLE" not just "IDLE" (emphasizing that there can be side effects). Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Diffstat (limited to 'src/jtag')
-rw-r--r--src/jtag/interface.c4
-rw-r--r--src/jtag/interface.h3
-rw-r--r--src/jtag/jtag.h5
3 files changed, 8 insertions, 4 deletions
diff --git a/src/jtag/interface.c b/src/jtag/interface.c
index e83a7723..fcdb8ee7 100644
--- a/src/jtag/interface.c
+++ b/src/jtag/interface.c
@@ -365,6 +365,10 @@ tap_state_t tap_state_by_name(const char *name)
{
tap_state_t x;
+ /* standard SVF name is "IDLE" */
+ if (0 == strcasecmp(name, "IDLE"))
+ return TAP_IDLE;
+
for (x = 0 ; x < TAP_NUM_STATES ; x++) {
/* be nice to the human */
if (0 == strcasecmp(name, tap_state_name(x))) {
diff --git a/src/jtag/interface.h b/src/jtag/interface.h
index 899f1631..afe21086 100644
--- a/src/jtag/interface.h
+++ b/src/jtag/interface.h
@@ -160,9 +160,6 @@ bool tap_is_state_stable(tap_state_t astate);
*/
tap_state_t tap_state_transition(tap_state_t current_state, bool tms);
-/// Provides user-friendly name lookup of TAP states.
-tap_state_t tap_state_by_name(const char *name);
-
/// Allow switching between old and new TMS tables. @see tap_get_tms_path
void tap_use_new_tms_table(bool use_new);
/// @returns True if new TMS table is active; false otherwise.
diff --git a/src/jtag/jtag.h b/src/jtag/jtag.h
index 7253c3ea..1dae00fa 100644
--- a/src/jtag/jtag.h
+++ b/src/jtag/jtag.h
@@ -102,7 +102,10 @@ typedef enum tap_state
* Function tap_state_name
* Returns a string suitable for display representing the JTAG tap_state
*/
-const char* tap_state_name(tap_state_t state);
+const char *tap_state_name(tap_state_t state);
+
+/// Provides user-friendly name lookup of TAP states.
+tap_state_t tap_state_by_name(const char *name);
/// The current TAP state of the pending JTAG command queue.
extern tap_state_t cmd_queue_cur_state;