equal
deleted
inserted
replaced
182 ec_master_t *master, /**< EtherCAT master. */ |
182 ec_master_t *master, /**< EtherCAT master. */ |
183 unsigned long arg /**< Userspace address to store the results. */ |
183 unsigned long arg /**< Userspace address to store the results. */ |
184 ) |
184 ) |
185 { |
185 { |
186 ec_ioctl_master_t data; |
186 ec_ioctl_master_t data; |
|
187 unsigned int i; |
187 |
188 |
188 if (down_interruptible(&master->master_sem)) |
189 if (down_interruptible(&master->master_sem)) |
189 return -EINTR; |
190 return -EINTR; |
190 data.slave_count = master->slave_count; |
191 data.slave_count = master->slave_count; |
191 data.config_count = ec_master_config_count(master); |
192 data.config_count = ec_master_config_count(master); |
209 } |
210 } |
210 data.devices[0].attached = master->main_device.dev ? 1 : 0; |
211 data.devices[0].attached = master->main_device.dev ? 1 : 0; |
211 data.devices[0].link_state = master->main_device.link_state ? 1 : 0; |
212 data.devices[0].link_state = master->main_device.link_state ? 1 : 0; |
212 data.devices[0].tx_count = master->main_device.tx_count; |
213 data.devices[0].tx_count = master->main_device.tx_count; |
213 data.devices[0].rx_count = master->main_device.rx_count; |
214 data.devices[0].rx_count = master->main_device.rx_count; |
|
215 for (i = 0; i < EC_RATE_COUNT; i++) { |
|
216 data.devices[0].tx_rates[i] = master->main_device.tx_rates[i]; |
|
217 data.devices[0].loss_rates[i] = master->main_device.loss_rates[i]; |
|
218 } |
214 |
219 |
215 if (master->backup_device.dev) { |
220 if (master->backup_device.dev) { |
216 memcpy(data.devices[1].address, |
221 memcpy(data.devices[1].address, |
217 master->backup_device.dev->dev_addr, ETH_ALEN); |
222 master->backup_device.dev->dev_addr, ETH_ALEN); |
218 } else { |
223 } else { |
220 } |
225 } |
221 data.devices[1].attached = master->backup_device.dev ? 1 : 0; |
226 data.devices[1].attached = master->backup_device.dev ? 1 : 0; |
222 data.devices[1].link_state = master->backup_device.link_state ? 1 : 0; |
227 data.devices[1].link_state = master->backup_device.link_state ? 1 : 0; |
223 data.devices[1].tx_count = master->backup_device.tx_count; |
228 data.devices[1].tx_count = master->backup_device.tx_count; |
224 data.devices[1].rx_count = master->backup_device.rx_count; |
229 data.devices[1].rx_count = master->backup_device.rx_count; |
|
230 for (i = 0; i < EC_RATE_COUNT; i++) { |
|
231 data.devices[1].tx_rates[i] = master->backup_device.tx_rates[i]; |
|
232 data.devices[1].loss_rates[i] = master->backup_device.loss_rates[i]; |
|
233 } |
225 |
234 |
226 up(&master->device_sem); |
235 up(&master->device_sem); |
227 |
236 |
228 data.app_time = master->app_time; |
237 data.app_time = master->app_time; |
229 data.ref_clock = |
238 data.ref_clock = |