equal
deleted
inserted
replaced
173 data.domain_count = ec_master_domain_count(master); |
173 data.domain_count = ec_master_domain_count(master); |
174 #ifdef EC_EOE |
174 #ifdef EC_EOE |
175 data.eoe_handler_count = ec_master_eoe_handler_count(master); |
175 data.eoe_handler_count = ec_master_eoe_handler_count(master); |
176 #endif |
176 #endif |
177 data.phase = (uint8_t) master->phase; |
177 data.phase = (uint8_t) master->phase; |
|
178 data.active = (uint8_t) master->active; |
178 data.scan_busy = master->scan_busy; |
179 data.scan_busy = master->scan_busy; |
179 up(&master->master_sem); |
180 up(&master->master_sem); |
180 |
181 |
181 if (down_interruptible(&master->device_sem)) |
182 if (down_interruptible(&master->device_sem)) |
182 return -EINTR; |
183 return -EINTR; |
1645 return 0; |
1646 return 0; |
1646 } |
1647 } |
1647 |
1648 |
1648 /*****************************************************************************/ |
1649 /*****************************************************************************/ |
1649 |
1650 |
|
1651 /** Deactivates the master. |
|
1652 */ |
|
1653 int ec_cdev_ioctl_deactivate( |
|
1654 ec_master_t *master, /**< EtherCAT master. */ |
|
1655 unsigned long arg, /**< ioctl() argument. */ |
|
1656 ec_cdev_priv_t *priv /**< Private data structure of file handle. */ |
|
1657 ) |
|
1658 { |
|
1659 if (unlikely(!priv->requested)) |
|
1660 return -EPERM; |
|
1661 |
|
1662 ecrt_master_deactivate(master); |
|
1663 return 0; |
|
1664 } |
|
1665 |
|
1666 /*****************************************************************************/ |
|
1667 |
1650 /** Send frames. |
1668 /** Send frames. |
1651 */ |
1669 */ |
1652 int ec_cdev_ioctl_send( |
1670 int ec_cdev_ioctl_send( |
1653 ec_master_t *master, /**< EtherCAT master. */ |
1671 ec_master_t *master, /**< EtherCAT master. */ |
1654 unsigned long arg, /**< ioctl() argument. */ |
1672 unsigned long arg, /**< ioctl() argument. */ |
3260 return ec_cdev_ioctl_create_slave_config(master, arg, priv); |
3278 return ec_cdev_ioctl_create_slave_config(master, arg, priv); |
3261 case EC_IOCTL_ACTIVATE: |
3279 case EC_IOCTL_ACTIVATE: |
3262 if (!(filp->f_mode & FMODE_WRITE)) |
3280 if (!(filp->f_mode & FMODE_WRITE)) |
3263 return -EPERM; |
3281 return -EPERM; |
3264 return ec_cdev_ioctl_activate(master, arg, priv); |
3282 return ec_cdev_ioctl_activate(master, arg, priv); |
|
3283 case EC_IOCTL_DEACTIVATE: |
|
3284 if (!(filp->f_mode & FMODE_WRITE)) |
|
3285 return -EPERM; |
|
3286 return ec_cdev_ioctl_deactivate(master, arg, priv); |
3265 case EC_IOCTL_SEND: |
3287 case EC_IOCTL_SEND: |
3266 if (!(filp->f_mode & FMODE_WRITE)) |
3288 if (!(filp->f_mode & FMODE_WRITE)) |
3267 return -EPERM; |
3289 return -EPERM; |
3268 return ec_cdev_ioctl_send(master, arg, priv); |
3290 return ec_cdev_ioctl_send(master, arg, priv); |
3269 case EC_IOCTL_RECEIVE: |
3291 case EC_IOCTL_RECEIVE: |