master/cdev.c
changeset 1804 742607c464c4
parent 1606 6c5849669900
child 1826 ec6223c3b7ec
equal deleted inserted replaced
1803:5b04770444df 1804:742607c464c4
  1682         ec_master_t *master, /**< EtherCAT master. */
  1682         ec_master_t *master, /**< EtherCAT master. */
  1683         unsigned long arg, /**< ioctl() argument. */
  1683         unsigned long arg, /**< ioctl() argument. */
  1684         ec_cdev_priv_t *priv /**< Private data structure of file handle. */
  1684         ec_cdev_priv_t *priv /**< Private data structure of file handle. */
  1685         )
  1685         )
  1686 {
  1686 {
  1687 	size_t send_interval;
  1687     size_t send_interval;
  1688 
  1688 
  1689 	if (copy_from_user(&send_interval, (void __user *) arg, sizeof(send_interval))) {
  1689     if (copy_from_user(&send_interval, (void __user *) arg,
  1690         return -EFAULT;
  1690                 sizeof(send_interval))) {
  1691     }
  1691         return -EFAULT;
  1692 
  1692     }
  1693     if (down_interruptible(&master->master_sem))
  1693 
  1694         return -EINTR;
  1694     if (down_interruptible(&master->master_sem))
  1695 	ec_master_set_send_interval(master,send_interval);
  1695         return -EINTR;
       
  1696     ec_master_set_send_interval(master,send_interval);
  1696     up(&master->master_sem);
  1697     up(&master->master_sem);
  1697 
  1698 
  1698     return 0;
  1699     return 0;
  1699 }
  1700 }
  1700 
  1701 
  3490             if (!(filp->f_mode & FMODE_WRITE))
  3491             if (!(filp->f_mode & FMODE_WRITE))
  3491                 return -EPERM;
  3492                 return -EPERM;
  3492             return ec_cdev_ioctl_voe_exec(master, arg, priv);
  3493             return ec_cdev_ioctl_voe_exec(master, arg, priv);
  3493         case EC_IOCTL_VOE_DATA:
  3494         case EC_IOCTL_VOE_DATA:
  3494             return ec_cdev_ioctl_voe_data(master, arg, priv);
  3495             return ec_cdev_ioctl_voe_data(master, arg, priv);
  3495 		case EC_IOCTL_SET_SEND_INTERVAL:
  3496         case EC_IOCTL_SET_SEND_INTERVAL:
  3496             if (!(filp->f_mode & FMODE_WRITE))
  3497             if (!(filp->f_mode & FMODE_WRITE))
  3497                 return -EPERM;
  3498                 return -EPERM;
  3498 			return ec_cdev_ioctl_set_send_interval(master,arg,priv);
  3499             return ec_cdev_ioctl_set_send_interval(master,arg,priv);
  3499         default:
  3500         default:
  3500             return -ENOTTY;
  3501             return -ENOTTY;
  3501     }
  3502     }
  3502 }
  3503 }
  3503 
  3504