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