equal
deleted
inserted
replaced
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; |