master/cdev.c
changeset 2009 b5391b329b5d
parent 1972 c1b564299829
child 2042 8b358effa78b
child 2061 7982704c8599
equal deleted inserted replaced
1977:e9f722488fcd 2009:b5391b329b5d
  1990     return 0;
  1990     return 0;
  1991 }
  1991 }
  1992 
  1992 
  1993 /*****************************************************************************/
  1993 /*****************************************************************************/
  1994 
  1994 
       
  1995 /** Reset configuration.
       
  1996  */
       
  1997 int ec_cdev_ioctl_reset(
       
  1998         ec_master_t *master, /**< EtherCAT master. */
       
  1999         unsigned long arg, /**< ioctl() argument. */
       
  2000         ec_cdev_priv_t *priv /**< Private data structure of file handle. */
       
  2001         )
       
  2002 {
       
  2003     if (unlikely(!priv->requested))
       
  2004         return -EPERM;
       
  2005 
       
  2006     down(&master->master_sem);
       
  2007     ecrt_master_reset(master);
       
  2008     up(&master->master_sem);
       
  2009     return 0;
       
  2010 }
       
  2011 
       
  2012 /*****************************************************************************/
       
  2013 
  1995 /** Configure a sync manager.
  2014 /** Configure a sync manager.
  1996  */
  2015  */
  1997 int ec_cdev_ioctl_sc_sync(
  2016 int ec_cdev_ioctl_sc_sync(
  1998         ec_master_t *master, /**< EtherCAT master. */
  2017         ec_master_t *master, /**< EtherCAT master. */
  1999         unsigned long arg, /**< ioctl() argument. */
  2018         unsigned long arg, /**< ioctl() argument. */
  3669             return ec_cdev_ioctl_sync_mon_queue(master, arg, priv);
  3688             return ec_cdev_ioctl_sync_mon_queue(master, arg, priv);
  3670         case EC_IOCTL_SYNC_MON_PROCESS:
  3689         case EC_IOCTL_SYNC_MON_PROCESS:
  3671             if (!(filp->f_mode & FMODE_WRITE))
  3690             if (!(filp->f_mode & FMODE_WRITE))
  3672                 return -EPERM;
  3691                 return -EPERM;
  3673             return ec_cdev_ioctl_sync_mon_process(master, arg, priv);
  3692             return ec_cdev_ioctl_sync_mon_process(master, arg, priv);
       
  3693         case EC_IOCTL_RESET:
       
  3694             if (!(filp->f_mode & FMODE_WRITE))
       
  3695                 return -EPERM;
       
  3696             return ec_cdev_ioctl_reset(master, arg, priv);
  3674         case EC_IOCTL_SC_SYNC:
  3697         case EC_IOCTL_SC_SYNC:
  3675             if (!(filp->f_mode & FMODE_WRITE))
  3698             if (!(filp->f_mode & FMODE_WRITE))
  3676                 return -EPERM;
  3699                 return -EPERM;
  3677             return ec_cdev_ioctl_sc_sync(master, arg, priv);
  3700             return ec_cdev_ioctl_sc_sync(master, arg, priv);
  3678         case EC_IOCTL_SC_WATCHDOG:
  3701         case EC_IOCTL_SC_WATCHDOG: