master/slave.c
changeset 467 2274de57ca84
parent 465 3779b60a7c9b
child 482 fbaaaf2a6234
equal deleted inserted replaced
466:5f3758fdc3b5 467:2274de57ca84
   282 */
   282 */
   283 
   283 
   284 void ec_slave_reset(ec_slave_t *slave /**< EtherCAT slave */)
   284 void ec_slave_reset(ec_slave_t *slave /**< EtherCAT slave */)
   285 {
   285 {
   286     ec_sdo_data_t *sdodata, *next_sdodata;
   286     ec_sdo_data_t *sdodata, *next_sdodata;
       
   287     ec_sii_sync_t *sync;
   287 
   288 
   288     // remove FMMU configurations
   289     // remove FMMU configurations
   289     slave->fmmu_count = 0;
   290     slave->fmmu_count = 0;
   290 
   291 
   291     // free all SDO configurations
   292     // free all SDO configurations
   292     list_for_each_entry_safe(sdodata, next_sdodata, &slave->sdo_confs, list) {
   293     list_for_each_entry_safe(sdodata, next_sdodata, &slave->sdo_confs, list) {
   293         list_del(&sdodata->list);
   294         list_del(&sdodata->list);
   294         kfree(sdodata->data);
   295         kfree(sdodata->data);
   295         kfree(sdodata);
   296         kfree(sdodata);
       
   297     }
       
   298 
       
   299     // remove estimated sync manager sizes
       
   300     list_for_each_entry(sync, &slave->sii_syncs, list) {
       
   301         sync->est_length = 0;
   296     }
   302     }
   297 }
   303 }
   298 
   304 
   299 /*****************************************************************************/
   305 /*****************************************************************************/
   300 
   306