equal
deleted
inserted
replaced
168 unsigned int injection_seq_fsm; /**< Datagram injection sequence number |
168 unsigned int injection_seq_fsm; /**< Datagram injection sequence number |
169 for the FSM side. */ |
169 for the FSM side. */ |
170 unsigned int injection_seq_rt; /**< Datagram injection sequence number |
170 unsigned int injection_seq_rt; /**< Datagram injection sequence number |
171 for the realtime side. */ |
171 for the realtime side. */ |
172 |
172 |
173 |
|
174 ec_slave_t *slaves; /**< Array of slaves on the bus. */ |
173 ec_slave_t *slaves; /**< Array of slaves on the bus. */ |
175 unsigned int slave_count; /**< Number of slaves on the bus. */ |
174 unsigned int slave_count; /**< Number of slaves on the bus. */ |
176 |
175 |
|
176 /* Configuration applied by the application. */ |
177 struct list_head configs; /**< List of slave configurations. */ |
177 struct list_head configs; /**< List of slave configurations. */ |
|
178 struct list_head domains; /**< List of domains. */ |
178 |
179 |
179 u64 app_time; /**< Time of the last ecrt_master_sync() call. */ |
180 u64 app_time; /**< Time of the last ecrt_master_sync() call. */ |
180 u64 app_start_time; /**< Application start time. */ |
181 u64 app_start_time; /**< Application start time. */ |
181 u8 has_app_time; /**< Application time is valid. */ |
182 u8 has_app_time; /**< Application time is valid. */ |
182 ec_datagram_t ref_sync_datagram; /**< Datagram used for synchronizing the |
183 ec_datagram_t ref_sync_datagram; /**< Datagram used for synchronizing the |
213 datagrams. */ |
214 datagrams. */ |
214 struct semaphore ext_queue_sem; /**< Semaphore protecting the \a |
215 struct semaphore ext_queue_sem; /**< Semaphore protecting the \a |
215 ext_datagram_queue. */ |
216 ext_datagram_queue. */ |
216 |
217 |
217 struct list_head external_datagram_queue; /**< External Datagram queue. */ |
218 struct list_head external_datagram_queue; /**< External Datagram queue. */ |
218 size_t send_interval; /**< Interval between calls to ecrt_master_send */ |
219 unsigned int send_interval; /**< Interval between calls to ecrt_master_send */ |
219 size_t max_queue_size; /**< Maximum size of datagram queue */ |
220 size_t max_queue_size; /**< Maximum size of datagram queue */ |
220 struct list_head domains; /**< List of domains. */ |
|
221 |
221 |
222 unsigned int debug_level; /**< Master debug level. */ |
222 unsigned int debug_level; /**< Master debug level. */ |
223 ec_stats_t stats; /**< Cyclic statistics. */ |
223 ec_stats_t stats; /**< Cyclic statistics. */ |
224 |
224 |
225 struct task_struct *thread; /**< Master thread. */ |
225 struct task_struct *thread; /**< Master thread. */ |
244 wait_queue_head_t sii_queue; /**< Wait queue for SII |
244 wait_queue_head_t sii_queue; /**< Wait queue for SII |
245 write requests from user space. */ |
245 write requests from user space. */ |
246 |
246 |
247 struct list_head reg_requests; /**< Register requests. */ |
247 struct list_head reg_requests; /**< Register requests. */ |
248 wait_queue_head_t reg_queue; /**< Wait queue for register requests. */ |
248 wait_queue_head_t reg_queue; /**< Wait queue for register requests. */ |
249 |
|
250 }; |
249 }; |
251 |
250 |
252 /*****************************************************************************/ |
251 /*****************************************************************************/ |
253 |
252 |
254 // static funtions |
253 // static funtions |
277 void ec_master_queue_datagram_ext(ec_master_t *, ec_datagram_t *); |
276 void ec_master_queue_datagram_ext(ec_master_t *, ec_datagram_t *); |
278 void ec_master_queue_external_datagram(ec_master_t *, ec_datagram_t *); |
277 void ec_master_queue_external_datagram(ec_master_t *, ec_datagram_t *); |
279 void ec_master_inject_external_datagrams(ec_master_t *); |
278 void ec_master_inject_external_datagrams(ec_master_t *); |
280 |
279 |
281 // misc. |
280 // misc. |
282 void ec_master_set_send_interval(ec_master_t *,size_t); |
281 void ec_master_set_send_interval(ec_master_t *, unsigned int); |
283 void ec_master_attach_slave_configs(ec_master_t *); |
282 void ec_master_attach_slave_configs(ec_master_t *); |
284 ec_slave_t *ec_master_find_slave(ec_master_t *, uint16_t, uint16_t); |
283 ec_slave_t *ec_master_find_slave(ec_master_t *, uint16_t, uint16_t); |
285 const ec_slave_t *ec_master_find_slave_const(const ec_master_t *, uint16_t, |
284 const ec_slave_t *ec_master_find_slave_const(const ec_master_t *, uint16_t, |
286 uint16_t); |
285 uint16_t); |
287 void ec_master_output_stats(ec_master_t *); |
286 void ec_master_output_stats(ec_master_t *); |