From 8444b2af2706769ff33d6ea270472795f7b7a196 Mon Sep 17 00:00:00 2001
From: Florian Pose <fp@igh-essen.com>
Date: Mon, 2 Jun 2008 10:49:44 +0000
Subject: [PATCH] Added entry access functions.

---
 master/pdo.c | 40 ++++++++++++++++++++++++++++++++++++++++
 master/pdo.h |  3 +++
 2 files changed, 43 insertions(+)

diff --git a/master/pdo.c b/master/pdo.c
index 73c034eb..9271f593 100644
--- a/master/pdo.c
+++ b/master/pdo.c
@@ -229,3 +229,43 @@ int ec_pdo_equal_entries(
 }
 
 /*****************************************************************************/
+
+/**
+ */
+unsigned int ec_pdo_entry_count(
+        const ec_pdo_t *pdo /**< Pdo. */
+        )
+{
+    const ec_pdo_entry_t *entry;
+    unsigned int num = 0;
+
+    list_for_each_entry(entry, &pdo->entries, list) {
+        num++;
+    }
+
+    return num;
+}
+
+/*****************************************************************************/
+
+/** Finds a Pdo entry via its position in the list.
+ *
+ * Const version.
+ */
+const ec_pdo_entry_t *ec_pdo_find_entry_by_pos_const(
+        const ec_pdo_t *pdo, /**< Pdo. */
+        unsigned int pos /**< Position in the list. */
+        )
+{
+    const ec_pdo_entry_t *entry;
+
+    list_for_each_entry(entry, &pdo->entries, list) {
+        if (pos--)
+            continue;
+        return entry;
+    }
+
+    return NULL;
+}
+
+/*****************************************************************************/
diff --git a/master/pdo.h b/master/pdo.h
index 1571b39c..3c7ecd2d 100644
--- a/master/pdo.h
+++ b/master/pdo.h
@@ -73,6 +73,9 @@ int ec_pdo_set_name(ec_pdo_t *, const char *);
 ec_pdo_entry_t *ec_pdo_add_entry(ec_pdo_t *, uint16_t, uint8_t, uint8_t);
 int ec_pdo_copy_entries(ec_pdo_t *, const ec_pdo_t *);
 int ec_pdo_equal_entries(const ec_pdo_t *, const ec_pdo_t *);
+unsigned int ec_pdo_entry_count(const ec_pdo_t *);
+const ec_pdo_entry_t *ec_pdo_find_entry_by_pos_const(
+        const ec_pdo_t *, unsigned int);
 
 /*****************************************************************************/
 
-- 
GitLab