master/datagram.c
changeset 1553 4e8d56d6f12a
parent 1543 373cd456dc26
child 1822 74e6ac2369f4
equal deleted inserted replaced
1552:c9e2c3be294e 1553:4e8d56d6f12a
   114 
   114 
   115 /** Destructor.
   115 /** Destructor.
   116  */
   116  */
   117 void ec_datagram_clear(ec_datagram_t *datagram /**< EtherCAT datagram. */)
   117 void ec_datagram_clear(ec_datagram_t *datagram /**< EtherCAT datagram. */)
   118 {
   118 {
       
   119     ec_datagram_unqueue(datagram);
       
   120 
   119     if (datagram->data_origin == EC_ORIG_INTERNAL && datagram->data) {
   121     if (datagram->data_origin == EC_ORIG_INTERNAL && datagram->data) {
   120         kfree(datagram->data);
   122         kfree(datagram->data);
   121         datagram->data = NULL;
   123         datagram->data = NULL;
       
   124     }
       
   125 }
       
   126 
       
   127 /*****************************************************************************/
       
   128 
       
   129 /** Unqueue datagram.
       
   130  */
       
   131 void ec_datagram_unqueue(ec_datagram_t *datagram /**< EtherCAT datagram. */)
       
   132 {
       
   133     if (!list_empty(&datagram->queue)) {
       
   134         list_del_init(&datagram->queue);
   122     }
   135     }
   123 }
   136 }
   124 
   137 
   125 /*****************************************************************************/
   138 /*****************************************************************************/
   126 
   139