From e5f7d6f400dd481dde5e9efe1b337cee828ba1e2 Mon Sep 17 00:00:00 2001 From: Florian Pose Date: Wed, 4 Jun 2008 10:10:05 +0000 Subject: [PATCH] Introduced ec_master_domain_count() and ec_master_find_domain(). --- master/master.c | 34 ++++++++++++++++++++++++++++++++++ master/master.h | 3 +++ 2 files changed, 37 insertions(+) diff --git a/master/master.c b/master/master.c index 33677da1..50c07084 100644 --- a/master/master.c +++ b/master/master.c @@ -1305,6 +1305,40 @@ ec_slave_t *ec_master_find_slave( return NULL; } +/*****************************************************************************/ + +unsigned int ec_master_domain_count( + const ec_master_t *master /**< EtherCAT master. */ + ) +{ + const ec_domain_t *domain; + unsigned int count = 0; + + list_for_each_entry(domain, &master->domains, list) { + count++; + } + + return count; +} + +/*****************************************************************************/ + +ec_domain_t *ec_master_find_domain( + ec_master_t *master, /**< EtherCAT master. */ + unsigned int index /**< Domain index. */ + ) +{ + ec_domain_t *domain; + + list_for_each_entry(domain, &master->domains, list) { + if (index--) + continue; + return domain; + } + + return NULL; +} + /****************************************************************************** * Realtime interface *****************************************************************************/ diff --git a/master/master.h b/master/master.h index 29ea1b34..e3d271ab 100644 --- a/master/master.h +++ b/master/master.h @@ -197,6 +197,9 @@ void ec_master_clear_eoe_handlers(ec_master_t *); #endif void ec_master_destroy_slaves(ec_master_t *); +unsigned int ec_master_domain_count(const ec_master_t *); +ec_domain_t *ec_master_find_domain(ec_master_t *, unsigned int); + /*****************************************************************************/ #endif