master/master.c
changeset 1436 08eaf72409bb
parent 1434 4c6fe0ae37f1
child 1451 78fbafbf08ba
equal deleted inserted replaced
1435:f1df39224f49 1436:08eaf72409bb
   128     master->slave_count = 0;
   128     master->slave_count = 0;
   129     
   129     
   130     INIT_LIST_HEAD(&master->configs);
   130     INIT_LIST_HEAD(&master->configs);
   131 
   131 
   132 	master->app_time = 0ULL;
   132 	master->app_time = 0ULL;
       
   133 	master->app_start_time = 0ULL;
       
   134 	master->has_start_time = 0;
   133 
   135 
   134     master->scan_busy = 0;
   136     master->scan_busy = 0;
   135     master->allow_scan = 1;
   137     master->allow_scan = 1;
   136     init_MUTEX(&master->scan_sem);
   138     init_MUTEX(&master->scan_sem);
   137     init_waitqueue_head(&master->scan_queue);
   139     init_waitqueue_head(&master->scan_queue);
   624             ec_slave_request_state(eoe->slave, EC_SLAVE_STATE_OP);
   626             ec_slave_request_state(eoe->slave, EC_SLAVE_STATE_OP);
   625     }
   627     }
   626 #endif
   628 #endif
   627 
   629 
   628     master->app_time = 0ULL;
   630     master->app_time = 0ULL;
       
   631     master->app_start_time = 0ULL;
       
   632     master->has_start_time = 0;
   629 
   633 
   630     if (ec_master_thread_start(master, ec_master_idle_thread,
   634     if (ec_master_thread_start(master, ec_master_idle_thread,
   631                 "EtherCAT-IDLE"))
   635                 "EtherCAT-IDLE"))
   632         EC_WARN("Failed to restart master thread!\n");
   636         EC_WARN("Failed to restart master thread!\n");
   633 #ifdef EC_EOE
   637 #ifdef EC_EOE
  1746 /*****************************************************************************/
  1750 /*****************************************************************************/
  1747 
  1751 
  1748 void ecrt_master_application_time(ec_master_t *master, uint64_t app_time)
  1752 void ecrt_master_application_time(ec_master_t *master, uint64_t app_time)
  1749 {
  1753 {
  1750     master->app_time = app_time;
  1754     master->app_time = app_time;
       
  1755 
       
  1756     if (unlikely(!master->has_start_time)) {
       
  1757         master->app_start_time = app_time;
       
  1758         master->has_start_time = 1;
       
  1759     }
  1751 }
  1760 }
  1752 
  1761 
  1753 /*****************************************************************************/
  1762 /*****************************************************************************/
  1754 
  1763 
  1755 void ecrt_master_sync_reference_clock(ec_master_t *master)
  1764 void ecrt_master_sync_reference_clock(ec_master_t *master)