Out-of-line jtag_tap_next_enabled and simplify its logic.

git-svn-id: svn://svn.berlios.de/openocd/trunk@2185 b42882b7-edfa-0310-969c-e2dbd0fdcd60
This commit is contained in:
zwelch 2009-06-11 07:08:14 +00:00
parent 04cb121073
commit 08382e0601
2 changed files with 13 additions and 27 deletions

View File

@ -202,6 +202,18 @@ jtag_tap_t *jtag_tap_by_position(unsigned n)
return t;
}
jtag_tap_t* jtag_tap_next_enabled(jtag_tap_t* p)
{
p = p ? p->next_tap : jtag_all_taps();
while (p)
{
if (p->enabled)
return p;
p = p->next_tap;
}
return NULL;
}
const char *jtag_tap_name(const jtag_tap_t *tap)
{
return (tap == NULL) ? "(unknown)" : tap->dotted_name;

View File

@ -180,36 +180,10 @@ extern const char *jtag_tap_name(const jtag_tap_t *tap);
extern jtag_tap_t* jtag_tap_by_string(const char* dotted_name);
extern jtag_tap_t* jtag_tap_by_jim_obj(Jim_Interp* interp, Jim_Obj* obj);
extern jtag_tap_t* jtag_tap_by_position(unsigned abs_position);
extern jtag_tap_t* jtag_tap_next_enabled(jtag_tap_t* p);
extern unsigned jtag_tap_count_enabled(void);
extern unsigned jtag_tap_count(void);
static __inline__ jtag_tap_t* jtag_tap_next_enabled(jtag_tap_t* p)
{
if (p == NULL)
{
/* start at the head of list */
p = jtag_all_taps();
}
else
{
/* start *after* this one */
p = p->next_tap;
}
while (p)
{
if (p->enabled)
{
break;
}
else
{
p = p->next_tap;
}
}
return p;
}
enum reset_line_mode {
LINE_OPEN_DRAIN = 0x0,