summaryrefslogtreecommitdiff
path: root/src/jtag/tcl.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/jtag/tcl.c')
-rw-r--r--src/jtag/tcl.c39
1 files changed, 38 insertions, 1 deletions
diff --git a/src/jtag/tcl.c b/src/jtag/tcl.c
index 99ed1a36..f26e934a 100644
--- a/src/jtag/tcl.c
+++ b/src/jtag/tcl.c
@@ -39,7 +39,12 @@
#include <strings.h>
#endif
-extern const Jim_Nvp nvp_jtag_tap_event[];
+static const Jim_Nvp nvp_jtag_tap_event[] = {
+ { .value = JTAG_TAP_EVENT_ENABLE, .name = "tap-enable" },
+ { .value = JTAG_TAP_EVENT_DISABLE, .name = "tap-disable" },
+
+ { .name = NULL, .value = -1 }
+};
/* jtag interfaces (parport, FTDI-USB, TI-USB, ...)
*/
@@ -443,6 +448,38 @@ static int jim_newtap_cmd( Jim_GetOptInfo *goi )
return JIM_ERR;
}
+static void jtag_tap_handle_event( jtag_tap_t * tap, enum jtag_tap_event e)
+{
+ jtag_tap_event_action_t * jteap;
+ int done;
+
+ jteap = tap->event_action;
+
+ done = 0;
+ while (jteap) {
+ if (jteap->event == e) {
+ done = 1;
+ LOG_DEBUG( "JTAG tap: %s event: %d (%s) action: %s\n",
+ tap->dotted_name,
+ e,
+ Jim_Nvp_value2name_simple(nvp_jtag_tap_event, e)->name,
+ Jim_GetString(jteap->body, NULL) );
+ if (Jim_EvalObj(interp, jteap->body) != JIM_OK) {
+ Jim_PrintErrorMessage(interp);
+ }
+ }
+
+ jteap = jteap->next;
+ }
+
+ if (!done) {
+ LOG_DEBUG( "event %d %s - no action",
+ e,
+ Jim_Nvp_value2name_simple( nvp_jtag_tap_event, e)->name);
+ }
+}
+
+
static int jim_jtag_command( Jim_Interp *interp, int argc, Jim_Obj *const *argv )
{
Jim_GetOptInfo goi;