--- a/master/slave.c Wed Oct 18 13:10:06 2006 +0000
+++ b/master/slave.c Wed Oct 18 13:11:48 2006 +0000
@@ -327,6 +327,8 @@
sync->control_register = EC_READ_U8 (data + 4);
sync->enable = EC_READ_U8 (data + 6);
+ sync->est_length = 0;
+
list_add_tail(&sync->list, &slave->sii_syncs);
}
@@ -825,9 +827,10 @@
{
ec_sii_pdo_t *pdo;
ec_sii_pdo_entry_t *pdo_entry;
- unsigned int bit_size;
+ unsigned int bit_size, byte_size;
if (sync->length) return sync->length;
+ if (sync->est_length) return sync->est_length;
bit_size = 0;
list_for_each_entry(pdo, &slave->sii_pdos, list) {
@@ -839,9 +842,11 @@
}
if (bit_size % 8) // round up to full bytes
- return bit_size / 8 + 1;
+ byte_size = bit_size / 8 + 1;
else
- return bit_size / 8;
+ byte_size = bit_size / 8;
+
+ return byte_size;
}
/*****************************************************************************/