439 */ |
439 */ |
440 void ec_eoe_state_rx_fetch(ec_eoe_t *eoe /**< EoE handler */) |
440 void ec_eoe_state_rx_fetch(ec_eoe_t *eoe /**< EoE handler */) |
441 { |
441 { |
442 size_t rec_size, data_size; |
442 size_t rec_size, data_size; |
443 uint8_t *data, frame_type, last_fragment, time_appended, mbox_prot; |
443 uint8_t *data, frame_type, last_fragment, time_appended, mbox_prot; |
444 uint8_t frame_number, fragment_offset, fragment_number; |
444 uint8_t fragment_offset, fragment_number; |
|
445 #if EOE_DEBUG_LEVEL >= 2 |
|
446 uint8_t frame_number; |
|
447 #endif |
445 off_t offset; |
448 off_t offset; |
446 #if EOE_DEBUG_LEVEL >= 3 |
449 #if EOE_DEBUG_LEVEL >= 3 |
447 unsigned int i; |
450 unsigned int i; |
448 #endif |
451 #endif |
449 |
452 |
495 |
498 |
496 last_fragment = (EC_READ_U16(data) >> 8) & 0x0001; |
499 last_fragment = (EC_READ_U16(data) >> 8) & 0x0001; |
497 time_appended = (EC_READ_U16(data) >> 9) & 0x0001; |
500 time_appended = (EC_READ_U16(data) >> 9) & 0x0001; |
498 fragment_number = EC_READ_U16(data + 2) & 0x003F; |
501 fragment_number = EC_READ_U16(data + 2) & 0x003F; |
499 fragment_offset = (EC_READ_U16(data + 2) >> 6) & 0x003F; |
502 fragment_offset = (EC_READ_U16(data + 2) >> 6) & 0x003F; |
|
503 #if EOE_DEBUG_LEVEL >= 2 |
500 frame_number = (EC_READ_U16(data + 2) >> 12) & 0x000F; |
504 frame_number = (EC_READ_U16(data + 2) >> 12) & 0x000F; |
|
505 #endif |
501 |
506 |
502 #if EOE_DEBUG_LEVEL >= 2 |
507 #if EOE_DEBUG_LEVEL >= 2 |
503 EC_SLAVE_DBG(eoe->slave, 0, "EoE %s RX fragment %u%s, offset %u," |
508 EC_SLAVE_DBG(eoe->slave, 0, "EoE %s RX fragment %u%s, offset %u," |
504 " frame %u%s, %u octets\n", eoe->dev->name, fragment_number, |
509 " frame %u%s, %u octets\n", eoe->dev->name, fragment_number, |
505 last_fragment ? "" : "+", fragment_offset, frame_number, |
510 last_fragment ? "" : "+", fragment_offset, frame_number, |