master/slave.c
changeset 412 2e50ddc3e777
parent 410 3b8e94d623ab
child 416 4f007cd2a79d
equal deleted inserted replaced
411:42d239bab6ae 412:2e50ddc3e777
   462                           const ec_domain_t *domain, /**< domain */
   462                           const ec_domain_t *domain, /**< domain */
   463                           const ec_sii_sync_t *sync  /**< sync manager */
   463                           const ec_sii_sync_t *sync  /**< sync manager */
   464                           )
   464                           )
   465 {
   465 {
   466     unsigned int i;
   466     unsigned int i;
       
   467     ec_fmmu_t *fmmu;
   467 
   468 
   468     // FMMU configuration already prepared?
   469     // FMMU configuration already prepared?
   469     for (i = 0; i < slave->fmmu_count; i++)
   470     for (i = 0; i < slave->fmmu_count; i++) {
   470         if (slave->fmmus[i].domain == domain && slave->fmmus[i].sync == sync)
   471         fmmu = &slave->fmmus[i];
       
   472         if (fmmu->domain == domain && fmmu->sync == sync)
   471             return 0;
   473             return 0;
       
   474     }
   472 
   475 
   473     // reserve new FMMU...
   476     // reserve new FMMU...
   474 
   477 
   475     if (slave->fmmu_count >= slave->base_fmmu_count) {
   478     if (slave->fmmu_count >= slave->base_fmmu_count) {
   476         EC_ERR("Slave %i FMMU limit reached!\n", slave->ring_position);
   479         EC_ERR("Slave %i FMMU limit reached!\n", slave->ring_position);
   477         return -1;
   480         return -1;
   478     }
   481     }
   479 
   482 
   480     slave->fmmus[slave->fmmu_count].domain = domain;
   483     fmmu = &slave->fmmus[slave->fmmu_count];
   481     slave->fmmus[slave->fmmu_count].sync = sync;
   484 
   482     slave->fmmus[slave->fmmu_count].logical_start_address = 0;
   485     fmmu->index = slave->fmmu_count;
       
   486     fmmu->domain = domain;
       
   487     fmmu->sync = sync;
       
   488     fmmu->logical_start_address = 0;
       
   489 
   483     slave->fmmu_count++;
   490     slave->fmmu_count++;
   484     slave->registered = 1;
   491     slave->registered = 1;
   485 
   492 
   486     return 0;
   493     return 0;
   487 }
   494 }