void jtag_add_end_state(tap_state_t endstate);
void jtag_add_sleep(u32 us);
int jtag_execute_queue(void);
-int tap_state_by_name(const char *name);
+tap_state_t tap_state_by_name(const char *name);
/* jtag commands */
int handle_interface_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc);
{
jtag_prelude1();
- if (state != -1)
+ if (state != TAP_INVALID)
jtag_add_end_state(state);
cmd_queue_cur_state = cmd_queue_end_state;
jteap = tap->event_action;
/* replace existing? */
while (jteap) {
- if (jteap->event == n->value) {
+ if (jteap->event == (enum jtag_tap_event)n->value) {
break;
}
jteap = jteap->next;
int handle_endstate_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
{
- int state;
+ tap_state_t state;
if (argc < 1)
{
command_print( cmd_ctx, "Invalid state name: %s\n", args[0] );
return ERROR_COMMAND_SYNTAX_ERROR;
}
- jtag_add_end_state( (tap_state_t)(state));
+ jtag_add_end_state(state);
jtag_execute_queue();
}
command_print(cmd_ctx, "current endstate: %s", tap_state_name(cmd_queue_end_state));
return ERROR_COMMAND_SYNTAX_ERROR;
}
- jtag_add_runtest(strtol(args[0], NULL, 0), -1);
+ jtag_add_runtest(strtol(args[0], NULL, 0), TAP_INVALID);
jtag_execute_queue();
return ERROR_OK;
int i;
scan_field_t *fields;
jtag_tap_t *tap;
- int endstate;
+ tap_state_t endstate;
if ((argc < 2) || (argc % 2))
{
/* "statename" */
/* at the end of the arguments. */
/* assume none. */
- endstate = -1;
+ endstate = TAP_INVALID;
if( argc >= 4 ){
/* have at least one pair of numbers. */
/* is last pair the magic text? */
const char *cpA;
const char *cpS;
cpA = args[ argc-1 ];
- for( endstate = 0 ; endstate < 16 ; endstate++ ){
+ for( endstate = 0 ; endstate < TAP_NUM_STATES ; endstate++ ){
cpS = tap_state_name( endstate );
if( 0 == strcmp( cpA, cpS ) ){
break;
}
}
- if( endstate >= 16 ){
+ if( endstate >= TAP_NUM_STATES ){
return ERROR_COMMAND_SYNTAX_ERROR;
} else {
/* found - remove the last 2 args */
fields[i].in_handler_priv = NULL;
}
- jtag_add_ir_scan(argc / 2, fields, -1);
+ jtag_add_ir_scan(argc / 2, fields, TAP_INVALID);
/* did we have an endstate? */
- if( endstate >= 0 ){
+ if (endstate != TAP_INVALID)
jtag_add_end_state(endstate);
- }
+
jtag_execute_queue();
for (i = 0; i < argc / 2; i++)
int field_count = 0;
int i, e;
jtag_tap_t *tap;
- int endstate;
+ tap_state_t endstate;
/* args[1] = device
* args[2] = num_bits
}
/* assume no endstate */
- endstate = -1;
+ endstate = TAP_INVALID;
/* validate arguments as numbers */
e = JIM_OK;
for (i = 2; i < argc; i+=2)
fields[field_count++].in_handler_priv = NULL;
}
- jtag_add_dr_scan(num_fields, fields, -1);
+ jtag_add_dr_scan(num_fields, fields, TAP_INVALID);
/* did we get an end state? */
- if( endstate >= 0 ){
- jtag_add_end_state( (tap_state_t)endstate );
- }
+ if (endstate != TAP_INVALID)
+ jtag_add_end_state(endstate);
+
retval = jtag_execute_queue();
if (retval != ERROR_OK)
{
*
* DRSHIFT->DRSHIFT and IRSHIFT->IRSHIFT have to be caught in interface specific code
*/
- const static u8 tms_seqs[6][6] =
+ static const u8 tms_seqs[6][6] =
{
/* value clocked to TMS to move from one of six stable states to another */
return ret;
}
-int tap_state_by_name( const char *name )
+tap_state_t tap_state_by_name( const char *name )
{
- int x;
+ tap_state_t x;
- for( x = 0 ; x < 16 ; x++ ){
+ for( x = 0 ; x < TAP_NUM_STATES ; x++ ){
/* be nice to the human */
if( 0 == strcasecmp( name, tap_state_name(x) ) ){
return x;
}
}
/* not found */
- return -1;
+ return TAP_INVALID;
}
/*-----</Cable Helper API>--------------------------------------*/