master/cdev.c
changeset 1978 d9b6e641eaeb
parent 1862 05d224a66270
child 1980 a89e2bedf004
equal deleted inserted replaced
1872:23d4e121faaf 1978:d9b6e641eaeb
  1809     return 0;
  1809     return 0;
  1810 }
  1810 }
  1811 
  1811 
  1812 /*****************************************************************************/
  1812 /*****************************************************************************/
  1813 
  1813 
       
  1814 /** Get the master state of all configured slaves.
       
  1815  */
       
  1816 int ec_cdev_ioctl_master_sc_state(
       
  1817         ec_master_t *master, /**< EtherCAT master. */
       
  1818         unsigned long arg, /**< ioctl() argument. */
       
  1819         ec_cdev_priv_t *priv /**< Private data structure of file handle. */
       
  1820         )
       
  1821 {
       
  1822     ec_master_state_t data;
       
  1823 
       
  1824     if (unlikely(!priv->requested))
       
  1825         return -EPERM;
       
  1826 
       
  1827     ecrt_master_configured_slaves_state(master, &data);
       
  1828 
       
  1829     if (copy_to_user((void __user *) arg, &data, sizeof(data)))
       
  1830         return -EFAULT;
       
  1831 
       
  1832     return 0;
       
  1833 }
       
  1834 
       
  1835 /*****************************************************************************/
       
  1836 
  1814 /** Get the master state.
  1837 /** Get the master state.
  1815  */
  1838  */
  1816 int ec_cdev_ioctl_app_time(
  1839 int ec_cdev_ioctl_app_time(
  1817         ec_master_t *master, /**< EtherCAT master. */
  1840         ec_master_t *master, /**< EtherCAT master. */
  1818         unsigned long arg, /**< ioctl() argument. */
  1841         unsigned long arg, /**< ioctl() argument. */
  3670             if (!(filp->f_mode & FMODE_WRITE))
  3693             if (!(filp->f_mode & FMODE_WRITE))
  3671                 return -EPERM;
  3694                 return -EPERM;
  3672             return ec_cdev_ioctl_receive(master, arg, priv);
  3695             return ec_cdev_ioctl_receive(master, arg, priv);
  3673         case EC_IOCTL_MASTER_STATE:
  3696         case EC_IOCTL_MASTER_STATE:
  3674             return ec_cdev_ioctl_master_state(master, arg, priv);
  3697             return ec_cdev_ioctl_master_state(master, arg, priv);
       
  3698         case EC_IOCTL_MASTER_SC_STATE:
       
  3699             return ec_cdev_ioctl_master_sc_state(master, arg, priv);
  3675         case EC_IOCTL_APP_TIME:
  3700         case EC_IOCTL_APP_TIME:
  3676             if (!(filp->f_mode & FMODE_WRITE))
  3701             if (!(filp->f_mode & FMODE_WRITE))
  3677                 return -EPERM;
  3702                 return -EPERM;
  3678             return ec_cdev_ioctl_app_time(master, arg, priv);
  3703             return ec_cdev_ioctl_app_time(master, arg, priv);
  3679         case EC_IOCTL_SYNC_REF:
  3704         case EC_IOCTL_SYNC_REF: