master/domain.c
changeset 448 e4b76dc7910c
parent 446 8fede404c01f
child 484 9fde4a17b820
--- 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
 */