master/datagram.c
changeset 2038 770e86a39c98
parent 1981 c14b6bb14fdf
child 2040 45706e3273fd
--- a/master/datagram.c	Wed Jan 12 14:56:53 2011 +0100
+++ b/master/datagram.c	Fri Jan 14 11:36:53 2011 +0100
@@ -87,7 +87,10 @@
  */
 void ec_datagram_init(ec_datagram_t *datagram /**< EtherCAT datagram. */)
 {
+    INIT_LIST_HEAD(&datagram->list); // mark as unqueued
     INIT_LIST_HEAD(&datagram->queue); // mark as unqueued
+    INIT_LIST_HEAD(&datagram->fsm_queue); // mark as unqueued
+    INIT_LIST_HEAD(&datagram->sent); // mark as unqueued
     datagram->type = EC_DATAGRAM_NONE;
     memset(datagram->address, 0x00, EC_ADDR_LEN);
     datagram->data = NULL;
@@ -131,8 +134,8 @@
  */
 void ec_datagram_unqueue(ec_datagram_t *datagram /**< EtherCAT datagram. */)
 {
-    if (!list_empty(&datagram->queue)) {
-        list_del_init(&datagram->queue);
+    if (!list_empty(&datagram->fsm_queue)) {
+        list_del_init(&datagram->fsm_queue);
     }
 }