master/ethernet.c
branch1.4-foe
changeset 1709 63e4bc918640
parent 1686 e206f4485f60
child 1711 2b017fcc1c6d
equal deleted inserted replaced
1708:fae3a1759126 1709:63e4bc918640
   215 
   215 
   216 /*****************************************************************************/
   216 /*****************************************************************************/
   217 
   217 
   218 /**
   218 /**
   219    Sends a frame or the next fragment.
   219    Sends a frame or the next fragment.
       
   220    \todo bootstrap mailboxes / use configured mailbox sizes
   220 */
   221 */
   221 
   222 
   222 int ec_eoe_send(ec_eoe_t *eoe /**< EoE handler */)
   223 int ec_eoe_send(ec_eoe_t *eoe /**< EoE handler */)
   223 {
   224 {
   224     size_t remaining_size, current_size, complete_offset;
   225     size_t remaining_size, current_size, complete_offset;
   228     unsigned int i;
   229     unsigned int i;
   229 #endif
   230 #endif
   230 
   231 
   231     remaining_size = eoe->tx_frame->skb->len - eoe->tx_offset;
   232     remaining_size = eoe->tx_frame->skb->len - eoe->tx_offset;
   232 
   233 
   233     if (remaining_size <= eoe->slave->sii.tx_mailbox_size - 10) {
   234     if (remaining_size <= eoe->slave->sii.std_tx_mailbox_size - 10) {
   234         current_size = remaining_size;
   235         current_size = remaining_size;
   235         last_fragment = 1;
   236         last_fragment = 1;
   236     }
   237     } else {
   237     else {
   238         current_size = ((eoe->slave->sii.std_tx_mailbox_size - 10) / 32) * 32;
   238         current_size = ((eoe->slave->sii.tx_mailbox_size - 10) / 32) * 32;
       
   239         last_fragment = 0;
   239         last_fragment = 0;
   240     }
   240     }
   241 
   241 
   242     if (eoe->tx_fragment_number) {
   242     if (eoe->tx_fragment_number) {
   243         complete_offset = eoe->tx_offset / 32;
   243         complete_offset = eoe->tx_offset / 32;