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