From 9eccde6b9f1295ece805a93f567dd45bd053e926 Mon Sep 17 00:00:00 2001 From: Florian Pose Date: Mon, 2 Jun 2008 10:12:31 +0000 Subject: [PATCH] Added ec_pdo_list_find_by_pos_const(). --- master/pdo_list.c | 22 ++++++++++++++++++++++ master/pdo_list.h | 2 ++ 2 files changed, 24 insertions(+) diff --git a/master/pdo_list.c b/master/pdo_list.c index 86037ec9..668a38ef 100644 --- a/master/pdo_list.c +++ b/master/pdo_list.c @@ -279,6 +279,28 @@ const ec_pdo_t *ec_pdo_list_find_pdo_const( /*****************************************************************************/ +/** Finds a Pdo via its position in the list. + * + * Const version. + */ +const ec_pdo_t *ec_pdo_list_find_pdo_by_pos_const( + const ec_pdo_list_t *pl, /**< Pdo list. */ + unsigned int pos /**< Position in the list. */ + ) +{ + const ec_pdo_t *pdo; + + list_for_each_entry(pdo, &pl->list, list) { + if (pos--) + continue; + return pdo; + } + + return NULL; +} + +/*****************************************************************************/ + /** */ unsigned int ec_pdo_list_count( diff --git a/master/pdo_list.h b/master/pdo_list.h index b40c2c7b..99154c76 100644 --- a/master/pdo_list.h +++ b/master/pdo_list.h @@ -75,6 +75,8 @@ int ec_pdo_list_equal(const ec_pdo_list_t *, const ec_pdo_list_t *); ec_pdo_t *ec_pdo_list_find_pdo(const ec_pdo_list_t *, uint16_t); const ec_pdo_t *ec_pdo_list_find_pdo_const(const ec_pdo_list_t *, uint16_t); +const ec_pdo_t *ec_pdo_list_find_pdo_by_pos_const( + const ec_pdo_list_t *, unsigned int); unsigned int ec_pdo_list_count(const ec_pdo_list_t *); /*****************************************************************************/