master/ethernet.c
changeset 1337 0253c74d0940
parent 1327 4d179b06dd3c
child 1338 eb31b5a135da
equal deleted inserted replaced
1336:e27b37e80a99 1337:0253c74d0940
   216 
   216 
   217 /*****************************************************************************/
   217 /*****************************************************************************/
   218 
   218 
   219 /**
   219 /**
   220    Sends a frame or the next fragment.
   220    Sends a frame or the next fragment.
       
   221    \todo bootstrap mailboxes / use configured mailbox sizes
   221 */
   222 */
   222 
   223 
   223 int ec_eoe_send(ec_eoe_t *eoe /**< EoE handler */)
   224 int ec_eoe_send(ec_eoe_t *eoe /**< EoE handler */)
   224 {
   225 {
   225     size_t remaining_size, current_size, complete_offset;
   226     size_t remaining_size, current_size, complete_offset;
   229     unsigned int i;
   230     unsigned int i;
   230 #endif
   231 #endif
   231 
   232 
   232     remaining_size = eoe->tx_frame->skb->len - eoe->tx_offset;
   233     remaining_size = eoe->tx_frame->skb->len - eoe->tx_offset;
   233 
   234 
   234     if (remaining_size <= eoe->slave->sii.tx_mailbox_size - 10) {
   235     if (remaining_size <= eoe->slave->sii.std_tx_mailbox_size - 10) {
   235         current_size = remaining_size;
   236         current_size = remaining_size;
   236         last_fragment = 1;
   237         last_fragment = 1;
   237     }
   238     } else {
   238     else {
   239         current_size = ((eoe->slave->sii.std_tx_mailbox_size - 10) / 32) * 32;
   239         current_size = ((eoe->slave->sii.tx_mailbox_size - 10) / 32) * 32;
       
   240         last_fragment = 0;
   240         last_fragment = 0;
   241     }
   241     }
   242 
   242 
   243     if (eoe->tx_fragment_number) {
   243     if (eoe->tx_fragment_number) {
   244         complete_offset = eoe->tx_offset / 32;
   244         complete_offset = eoe->tx_offset / 32;