equal
deleted
inserted
replaced
1638 return 0; |
1638 return 0; |
1639 } |
1639 } |
1640 |
1640 |
1641 /*****************************************************************************/ |
1641 /*****************************************************************************/ |
1642 |
1642 |
|
1643 /** Get the master state. |
|
1644 */ |
|
1645 int ec_cdev_ioctl_app_time( |
|
1646 ec_master_t *master, /**< EtherCAT master. */ |
|
1647 unsigned long arg, /**< ioctl() argument. */ |
|
1648 ec_cdev_priv_t *priv /**< Private data structure of file handle. */ |
|
1649 ) |
|
1650 { |
|
1651 ec_ioctl_app_time_t data; |
|
1652 |
|
1653 if (unlikely(!priv->requested)) |
|
1654 return -EPERM; |
|
1655 |
|
1656 if (copy_from_user(&data, (void __user *) arg, sizeof(data))) { |
|
1657 return -EFAULT; |
|
1658 } |
|
1659 |
|
1660 ecrt_master_application_time(master, data.app_time); |
|
1661 return 0; |
|
1662 } |
|
1663 |
|
1664 /*****************************************************************************/ |
|
1665 |
1643 /** Sync the reference clock. |
1666 /** Sync the reference clock. |
1644 */ |
1667 */ |
1645 int ec_cdev_ioctl_sync_ref( |
1668 int ec_cdev_ioctl_sync_ref( |
1646 ec_master_t *master, /**< EtherCAT master. */ |
1669 ec_master_t *master, /**< EtherCAT master. */ |
1647 unsigned long arg, /**< ioctl() argument. */ |
1670 unsigned long arg, /**< ioctl() argument. */ |
3128 if (!(filp->f_mode & FMODE_WRITE)) |
3151 if (!(filp->f_mode & FMODE_WRITE)) |
3129 return -EPERM; |
3152 return -EPERM; |
3130 return ec_cdev_ioctl_receive(master, arg, priv); |
3153 return ec_cdev_ioctl_receive(master, arg, priv); |
3131 case EC_IOCTL_MASTER_STATE: |
3154 case EC_IOCTL_MASTER_STATE: |
3132 return ec_cdev_ioctl_master_state(master, arg, priv); |
3155 return ec_cdev_ioctl_master_state(master, arg, priv); |
|
3156 case EC_IOCTL_APP_TIME: |
|
3157 if (!(filp->f_mode & FMODE_WRITE)) |
|
3158 return -EPERM; |
|
3159 return ec_cdev_ioctl_app_time(master, arg, priv); |
3133 case EC_IOCTL_SYNC_REF: |
3160 case EC_IOCTL_SYNC_REF: |
3134 if (!(filp->f_mode & FMODE_WRITE)) |
3161 if (!(filp->f_mode & FMODE_WRITE)) |
3135 return -EPERM; |
3162 return -EPERM; |
3136 return ec_cdev_ioctl_sync_ref(master, arg, priv); |
3163 return ec_cdev_ioctl_sync_ref(master, arg, priv); |
3137 case EC_IOCTL_SYNC_SLAVES: |
3164 case EC_IOCTL_SYNC_SLAVES: |