From 08382e06014c118ede5f5688e39792ea675e2204 Mon Sep 17 00:00:00 2001
From: zwelch <zwelch@b42882b7-edfa-0310-969c-e2dbd0fdcd60>
Date: Thu, 11 Jun 2009 07:08:14 +0000
Subject: [PATCH] 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
---
 src/jtag/core.c | 12 ++++++++++++
 src/jtag/jtag.h | 28 +---------------------------
 2 files changed, 13 insertions(+), 27 deletions(-)

diff --git a/src/jtag/core.c b/src/jtag/core.c
index 1c14c8ea9..4208167b4 100644
--- a/src/jtag/core.c
+++ b/src/jtag/core.c
@@ -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;
diff --git a/src/jtag/jtag.h b/src/jtag/jtag.h
index 9ce73471d..476409bb6 100644
--- a/src/jtag/jtag.h
+++ b/src/jtag/jtag.h
@@ -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,
-- 
GitLab