Out-of-line jtag_tap_next_enabled and simplify its logic.
authorzwelch <zwelch@b42882b7-edfa-0310-969c-e2dbd0fdcd60>
Thu, 11 Jun 2009 07:08:14 +0000 (07:08 +0000)
committerzwelch <zwelch@b42882b7-edfa-0310-969c-e2dbd0fdcd60>
Thu, 11 Jun 2009 07:08:14 +0000 (07:08 +0000)
git-svn-id: svn://svn.berlios.de/openocd/trunk@2185 b42882b7-edfa-0310-969c-e2dbd0fdcd60

src/jtag/core.c
src/jtag/jtag.h

index 1c14c8ea9a107c6d0aa57fd5b560a539dd0dfc8d..4208167b4509804c06f3635267fd4f203b93811d 100644 (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;
index 9ce73471d8eb14c5da45046df7436d1f0d3488e5..476409bb6dfc4bccfd4a5f85dcfdcb8921d73898 100644 (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,