diff -r ee53be7e18ee -r e4b76dc7910c master/domain.c --- a/master/domain.c Thu Oct 26 16:45:33 2006 +0000 +++ b/master/domain.c Fri Oct 27 09:19:58 2006 +0000 @@ -130,6 +130,30 @@ /** Domain destructor. + Clears and frees a domain object. +*/ + +void ec_domain_destroy(ec_domain_t *domain /**< EtherCAT domain */) +{ + ec_datagram_t *datagram; + + // dequeue datagrams + list_for_each_entry(datagram, &domain->datagrams, list) { + if (!list_empty(&datagram->queue)) // datagram queued? + list_del_init(&datagram->queue); + } + + // destroy self + kobject_del(&domain->kobj); + kobject_put(&domain->kobj); +} + +/*****************************************************************************/ + +/** + Clear and free domain. + This method is called by the kobject, + once there are no more references to it. */ void ec_domain_clear(struct kobject *kobj /**< kobject of the domain */) @@ -464,22 +488,6 @@ /*****************************************************************************/ /** - Dequeues all datagrams from the masters datagram queue. -*/ - -void ec_domain_dequeue_datagrams(ec_domain_t *domain /**< EtherCAT domain */) -{ - ec_datagram_t *datagram; - - list_for_each_entry(datagram, &domain->datagrams, list) { - if (!list_empty(&datagram->queue)) // datagram queued? - list_del_init(&datagram->queue); - } -} - -/*****************************************************************************/ - -/** Formats attribute data for SysFS reading. \return number of bytes to read */