master/datagram.c
changeset 2038 770e86a39c98
parent 1981 c14b6bb14fdf
child 2040 45706e3273fd
equal deleted inserted replaced
2037:ea0319750e13 2038:770e86a39c98
    85 
    85 
    86 /** Constructor.
    86 /** Constructor.
    87  */
    87  */
    88 void ec_datagram_init(ec_datagram_t *datagram /**< EtherCAT datagram. */)
    88 void ec_datagram_init(ec_datagram_t *datagram /**< EtherCAT datagram. */)
    89 {
    89 {
       
    90     INIT_LIST_HEAD(&datagram->list); // mark as unqueued
    90     INIT_LIST_HEAD(&datagram->queue); // mark as unqueued
    91     INIT_LIST_HEAD(&datagram->queue); // mark as unqueued
       
    92     INIT_LIST_HEAD(&datagram->fsm_queue); // mark as unqueued
       
    93     INIT_LIST_HEAD(&datagram->sent); // mark as unqueued
    91     datagram->type = EC_DATAGRAM_NONE;
    94     datagram->type = EC_DATAGRAM_NONE;
    92     memset(datagram->address, 0x00, EC_ADDR_LEN);
    95     memset(datagram->address, 0x00, EC_ADDR_LEN);
    93     datagram->data = NULL;
    96     datagram->data = NULL;
    94     datagram->data_origin = EC_ORIG_INTERNAL;
    97     datagram->data_origin = EC_ORIG_INTERNAL;
    95     datagram->mem_size = 0;
    98     datagram->mem_size = 0;
   129 
   132 
   130 /** Unqueue datagram.
   133 /** Unqueue datagram.
   131  */
   134  */
   132 void ec_datagram_unqueue(ec_datagram_t *datagram /**< EtherCAT datagram. */)
   135 void ec_datagram_unqueue(ec_datagram_t *datagram /**< EtherCAT datagram. */)
   133 {
   136 {
   134     if (!list_empty(&datagram->queue)) {
   137     if (!list_empty(&datagram->fsm_queue)) {
   135         list_del_init(&datagram->queue);
   138         list_del_init(&datagram->fsm_queue);
   136     }
   139     }
   137 }
   140 }
   138 
   141 
   139 /*****************************************************************************/
   142 /*****************************************************************************/
   140 
   143