master/datagram.h
changeset 2066 b544025bd696
parent 2038 770e86a39c98
child 2094 83e9160319ec
equal deleted inserted replaced
2065:4d8c9a441ef6 2066:b544025bd696
    84 
    84 
    85 /** EtherCAT datagram.
    85 /** EtherCAT datagram.
    86  */
    86  */
    87 typedef struct {
    87 typedef struct {
    88     struct list_head list; /**< Needed by domain datagram lists. */
    88     struct list_head list; /**< Needed by domain datagram lists. */
    89     struct list_head queue; /**< Master datagram queue item. */
    89     struct list_head queue; /**< Master datagram send-receive queue item. */
       
    90     struct list_head fsm_queue; /**< Master datagram fsm queue item. */
    90     struct list_head sent; /**< Master list item for sent datagrams. */
    91     struct list_head sent; /**< Master list item for sent datagrams. */
    91     ec_datagram_type_t type; /**< Datagram type (APRD, BWR, etc.). */
    92     ec_datagram_type_t type; /**< Datagram type (APRD, BWR, etc.). */
    92     uint8_t address[EC_ADDR_LEN]; /**< Recipient address. */
    93     uint8_t address[EC_ADDR_LEN]; /**< Recipient address. */
    93     uint8_t *data; /**< Datagram payload. */
    94     uint8_t *data; /**< Datagram payload. */
    94     ec_origin_t data_origin; /**< Origin of the \a data memory. */
    95     ec_origin_t data_origin; /**< Origin of the \a data memory. */
    95     size_t mem_size; /**< Datagram \a data memory size. */
    96     size_t mem_size; /**< Datagram \a data memory size. */
    96     size_t data_size; /**< Size of the data in \a data. */
    97     size_t data_size; /**< Size of the data in \a data. */
       
    98     ec_domain_t *domain; /**< Owning domain (may be null for non-domain datagrams) */
    97     uint8_t index; /**< Index (set by master). */
    99     uint8_t index; /**< Index (set by master). */
    98     uint16_t working_counter; /**< Working counter. */
   100     uint16_t working_counter; /**< Working counter. */
    99     ec_datagram_state_t state; /**< State. */
   101     ec_datagram_state_t state; /**< State. */
   100 #ifdef EC_HAVE_CYCLES
   102 #ifdef EC_HAVE_CYCLES
   101     cycles_t cycles_sent; /**< Time, when the datagram was sent. */
   103     cycles_t cycles_sent; /**< Time, when the datagram was sent. */