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