Added ec_master_get_config().
authorFlorian Pose <fp@igh-essen.com>
Thu, 09 Oct 2008 09:48:59 +0000
changeset 1252 0b411da5fd24
parent 1251 3c3f8cb76748
child 1253 8a081444a89a
Added ec_master_get_config().
master/master.c
master/master.h
--- a/master/master.c	Thu Oct 09 09:31:23 2008 +0000
+++ b/master/master.c	Thu Oct 09 09:48:59 2008 +0000
@@ -1121,6 +1121,32 @@
 
 /*****************************************************************************/
 
+/** Common implementation for ec_master_get_config()
+ * and ec_master_get_config_const().
+ */
+#define EC_FIND_CONFIG \
+    do { \
+		list_for_each_entry(sc, &master->configs, list) { \
+			if (pos--) \
+				continue; \
+			return sc; \
+		} \
+		return NULL; \
+    } while (0)
+
+/** Get a slave configuration via its position in the list.
+ *
+ * \return Slave configuration or \a NULL.
+ */
+ec_slave_config_t *ec_master_get_config(
+		const ec_master_t *master, /**< EtherCAT master. */
+		unsigned int pos /**< List position. */
+		)
+{
+	ec_slave_config_t *sc;
+	EC_FIND_CONFIG;
+}
+
 /** Get a slave configuration via its position in the list.
  *
  * Const version.
@@ -1133,14 +1159,7 @@
 		)
 {
 	const ec_slave_config_t *sc;
-
-	list_for_each_entry(sc, &master->configs, list) {
-		if (pos--)
-			continue;
-		return sc;
-	}
-
-	return NULL;
+	EC_FIND_CONFIG;
 }
 
 /*****************************************************************************/
--- a/master/master.h	Thu Oct 09 09:31:23 2008 +0000
+++ b/master/master.h	Thu Oct 09 09:48:59 2008 +0000
@@ -204,6 +204,8 @@
 void ec_master_clear_slaves(ec_master_t *);
 
 unsigned int ec_master_config_count(const ec_master_t *);
+ec_slave_config_t *ec_master_get_config(
+        const ec_master_t *, unsigned int);
 const ec_slave_config_t *ec_master_get_config_const(
         const ec_master_t *, unsigned int);
 unsigned int ec_master_domain_count(const ec_master_t *);