master/cdev.c
changeset 2042 8b358effa78b
parent 2034 ca03a6737cb7
parent 2009 b5391b329b5d
child 2066 b544025bd696
equal deleted inserted replaced
2041:f5b31f46c38f 2042:8b358effa78b
  2007     return 0;
  2007     return 0;
  2008 }
  2008 }
  2009 
  2009 
  2010 /*****************************************************************************/
  2010 /*****************************************************************************/
  2011 
  2011 
       
  2012 /** Reset configuration.
       
  2013  */
       
  2014 int ec_cdev_ioctl_reset(
       
  2015         ec_master_t *master, /**< EtherCAT master. */
       
  2016         unsigned long arg, /**< ioctl() argument. */
       
  2017         ec_cdev_priv_t *priv /**< Private data structure of file handle. */
       
  2018         )
       
  2019 {
       
  2020     if (unlikely(!priv->requested))
       
  2021         return -EPERM;
       
  2022 
       
  2023     ec_mutex_lock(&master->master_mutex);
       
  2024     ecrt_master_reset(master);
       
  2025     ec_mutex_unlock(&master->master_mutex);
       
  2026     return 0;
       
  2027 }
       
  2028 
       
  2029 /*****************************************************************************/
       
  2030 
  2012 /** Configure a sync manager.
  2031 /** Configure a sync manager.
  2013  */
  2032  */
  2014 int ec_cdev_ioctl_sc_sync(
  2033 int ec_cdev_ioctl_sc_sync(
  2015         ec_master_t *master, /**< EtherCAT master. */
  2034         ec_master_t *master, /**< EtherCAT master. */
  2016         unsigned long arg, /**< ioctl() argument. */
  2035         unsigned long arg, /**< ioctl() argument. */
  3721             return ec_cdev_ioctl_sync_mon_queue(master, arg, priv);
  3740             return ec_cdev_ioctl_sync_mon_queue(master, arg, priv);
  3722         case EC_IOCTL_SYNC_MON_PROCESS:
  3741         case EC_IOCTL_SYNC_MON_PROCESS:
  3723             if (!(filp->f_mode & FMODE_WRITE))
  3742             if (!(filp->f_mode & FMODE_WRITE))
  3724                 return -EPERM;
  3743                 return -EPERM;
  3725             return ec_cdev_ioctl_sync_mon_process(master, arg, priv);
  3744             return ec_cdev_ioctl_sync_mon_process(master, arg, priv);
       
  3745         case EC_IOCTL_RESET:
       
  3746             if (!(filp->f_mode & FMODE_WRITE))
       
  3747                 return -EPERM;
       
  3748             return ec_cdev_ioctl_reset(master, arg, priv);
  3726         case EC_IOCTL_SC_SYNC:
  3749         case EC_IOCTL_SC_SYNC:
  3727             if (!(filp->f_mode & FMODE_WRITE))
  3750             if (!(filp->f_mode & FMODE_WRITE))
  3728                 return -EPERM;
  3751                 return -EPERM;
  3729             return ec_cdev_ioctl_sc_sync(master, arg, priv);
  3752             return ec_cdev_ioctl_sc_sync(master, arg, priv);
  3730         case EC_IOCTL_SC_WATCHDOG:
  3753         case EC_IOCTL_SC_WATCHDOG: