Lines Matching refs:cmd

745 		kfree(async->cmd.chanlist);  in do_become_nonbusy()
746 async->cmd.chanlist = NULL; in do_become_nonbusy()
1133 if (!(async->cmd.flags & CMDF_WRITE)) { in do_bufinfo_ioctl()
1657 struct comedi_cmd *cmd) in __comedi_get_user_cmd() argument
1662 if (cmd->subdev >= dev->n_subdevices) { in __comedi_get_user_cmd()
1663 dev_dbg(dev->class_dev, "%d no such subdevice\n", cmd->subdev); in __comedi_get_user_cmd()
1667 s = &dev->subdevices[cmd->subdev]; in __comedi_get_user_cmd()
1671 cmd->subdev); in __comedi_get_user_cmd()
1678 cmd->subdev); in __comedi_get_user_cmd()
1683 if (cmd->chanlist_len > s->len_chanlist) { in __comedi_get_user_cmd()
1685 cmd->chanlist_len, s->len_chanlist); in __comedi_get_user_cmd()
1695 cmd->flags &= ~CMDF_WRITE; in __comedi_get_user_cmd()
1698 cmd->flags |= CMDF_WRITE; in __comedi_get_user_cmd()
1710 struct comedi_cmd *cmd) in __comedi_get_user_chanlist() argument
1716 cmd->chanlist = NULL; in __comedi_get_user_chanlist()
1718 cmd->chanlist_len * sizeof(unsigned int)); in __comedi_get_user_chanlist()
1723 ret = comedi_check_chanlist(s, cmd->chanlist_len, chanlist); in __comedi_get_user_chanlist()
1729 cmd->chanlist = chanlist; in __comedi_get_user_chanlist()
1749 struct comedi_cmd *cmd, bool *copy, void *file) in do_cmd_ioctl() argument
1759 ret = __comedi_get_user_cmd(dev, cmd); in do_cmd_ioctl()
1764 user_chanlist = (unsigned int __user *)cmd->chanlist; in do_cmd_ioctl()
1766 s = &dev->subdevices[cmd->subdev]; in do_cmd_ioctl()
1782 if (cmd->chanlist_len < 1) { in do_cmd_ioctl()
1784 cmd->chanlist_len); in do_cmd_ioctl()
1788 async->cmd = *cmd; in do_cmd_ioctl()
1789 async->cmd.data = NULL; in do_cmd_ioctl()
1792 ret = __comedi_get_user_chanlist(dev, s, user_chanlist, &async->cmd); in do_cmd_ioctl()
1796 ret = s->do_cmdtest(dev, s, &async->cmd); in do_cmd_ioctl()
1798 if (async->cmd.flags & CMDF_BOGUS || ret) { in do_cmd_ioctl()
1800 *cmd = async->cmd; in do_cmd_ioctl()
1802 cmd->chanlist = (unsigned int __force *)user_chanlist; in do_cmd_ioctl()
1803 cmd->data = NULL; in do_cmd_ioctl()
1818 if (async->cmd.flags & CMDF_WAKE_EOS) in do_cmd_ioctl()
1854 struct comedi_cmd *cmd, bool *copy, void *file) in do_cmdtest_ioctl() argument
1863 ret = __comedi_get_user_cmd(dev, cmd); in do_cmdtest_ioctl()
1868 user_chanlist = (unsigned int __user *)cmd->chanlist; in do_cmdtest_ioctl()
1870 s = &dev->subdevices[cmd->subdev]; in do_cmdtest_ioctl()
1875 ret = __comedi_get_user_chanlist(dev, s, user_chanlist, cmd); in do_cmdtest_ioctl()
1880 ret = s->do_cmdtest(dev, s, cmd); in do_cmdtest_ioctl()
1882 kfree(cmd->chanlist); /* free kernel copy of user chanlist */ in do_cmdtest_ioctl()
1885 cmd->chanlist = (unsigned int __force *)user_chanlist; in do_cmdtest_ioctl()
2066 !(s_old->async->cmd.flags & CMDF_WRITE)) in do_setrsubd_ioctl()
2109 (s_old->async->cmd.flags & CMDF_WRITE)) in do_setwsubd_ioctl()
2116 static long comedi_unlocked_ioctl(struct file *file, unsigned int cmd, in comedi_unlocked_ioctl() argument
2130 if (cmd == COMEDI_DEVCONFIG) { in comedi_unlocked_ioctl()
2161 switch (cmd) { in comedi_unlocked_ioctl()
2208 struct comedi_cmd cmd; in comedi_unlocked_ioctl() local
2211 if (copy_from_user(&cmd, (void __user *)arg, sizeof(cmd))) { in comedi_unlocked_ioctl()
2215 rc = do_cmd_ioctl(dev, &cmd, &copy, file); in comedi_unlocked_ioctl()
2216 if (copy && copy_to_user((void __user *)arg, &cmd, sizeof(cmd))) in comedi_unlocked_ioctl()
2221 struct comedi_cmd cmd; in comedi_unlocked_ioctl() local
2224 if (copy_from_user(&cmd, (void __user *)arg, sizeof(cmd))) { in comedi_unlocked_ioctl()
2228 rc = do_cmdtest_ioctl(dev, &cmd, &copy, file); in comedi_unlocked_ioctl()
2229 if (copy && copy_to_user((void __user *)arg, &cmd, sizeof(cmd))) in comedi_unlocked_ioctl()
2444 (s->async->cmd.flags & CMDF_WRITE) || in comedi_poll()
2456 !(s->async->cmd.flags & CMDF_WRITE) || in comedi_poll()
2499 if (s->busy != file || !(async->cmd.flags & CMDF_WRITE)) { in comedi_write()
2538 !(async->cmd.flags & CMDF_WRITE)) { in comedi_write()
2590 (async->cmd.flags & CMDF_WRITE) && in comedi_write()
2635 if (s->busy != file || (async->cmd.flags & CMDF_WRITE)) { in comedi_read()
2672 (async->cmd.flags & CMDF_WRITE)) { in comedi_read()
2726 !(async->cmd.flags & CMDF_WRITE) && in comedi_read()
2944 static int get_compat_cmd(struct comedi_cmd *cmd, in get_compat_cmd() argument
2952 cmd->subdev = v32.subdev; in get_compat_cmd()
2953 cmd->flags = v32.flags; in get_compat_cmd()
2954 cmd->start_src = v32.start_src; in get_compat_cmd()
2955 cmd->start_arg = v32.start_arg; in get_compat_cmd()
2956 cmd->scan_begin_src = v32.scan_begin_src; in get_compat_cmd()
2957 cmd->scan_begin_arg = v32.scan_begin_arg; in get_compat_cmd()
2958 cmd->convert_src = v32.convert_src; in get_compat_cmd()
2959 cmd->convert_arg = v32.convert_arg; in get_compat_cmd()
2960 cmd->scan_end_src = v32.scan_end_src; in get_compat_cmd()
2961 cmd->scan_end_arg = v32.scan_end_arg; in get_compat_cmd()
2962 cmd->stop_src = v32.stop_src; in get_compat_cmd()
2963 cmd->stop_arg = v32.stop_arg; in get_compat_cmd()
2964 cmd->chanlist = (unsigned int __force *)compat_ptr(v32.chanlist); in get_compat_cmd()
2965 cmd->chanlist_len = v32.chanlist_len; in get_compat_cmd()
2966 cmd->data = compat_ptr(v32.data); in get_compat_cmd()
2967 cmd->data_len = v32.data_len; in get_compat_cmd()
2973 struct comedi_cmd *cmd) in put_compat_cmd() argument
2978 v32.subdev = cmd->subdev; in put_compat_cmd()
2979 v32.flags = cmd->flags; in put_compat_cmd()
2980 v32.start_src = cmd->start_src; in put_compat_cmd()
2981 v32.start_arg = cmd->start_arg; in put_compat_cmd()
2982 v32.scan_begin_src = cmd->scan_begin_src; in put_compat_cmd()
2983 v32.scan_begin_arg = cmd->scan_begin_arg; in put_compat_cmd()
2984 v32.convert_src = cmd->convert_src; in put_compat_cmd()
2985 v32.convert_arg = cmd->convert_arg; in put_compat_cmd()
2986 v32.scan_end_src = cmd->scan_end_src; in put_compat_cmd()
2987 v32.scan_end_arg = cmd->scan_end_arg; in put_compat_cmd()
2988 v32.stop_src = cmd->stop_src; in put_compat_cmd()
2989 v32.stop_arg = cmd->stop_arg; in put_compat_cmd()
2991 v32.chanlist = ptr_to_compat((unsigned int __user *)cmd->chanlist); in put_compat_cmd()
2992 v32.chanlist_len = cmd->chanlist_len; in put_compat_cmd()
2993 v32.data = ptr_to_compat(cmd->data); in put_compat_cmd()
2994 v32.data_len = cmd->data_len; in put_compat_cmd()
3005 struct comedi_cmd cmd; in compat_cmd() local
3009 rc = get_compat_cmd(&cmd, compat_ptr(arg)); in compat_cmd()
3014 rc = do_cmd_ioctl(dev, &cmd, &copy, file); in compat_cmd()
3018 err = put_compat_cmd(compat_ptr(arg), &cmd); in compat_cmd()
3030 struct comedi_cmd cmd; in compat_cmdtest() local
3034 rc = get_compat_cmd(&cmd, compat_ptr(arg)); in compat_cmdtest()
3039 rc = do_cmdtest_ioctl(dev, &cmd, &copy, file); in compat_cmdtest()
3042 err = put_compat_cmd(compat_ptr(arg), &cmd); in compat_cmdtest()
3125 static long comedi_compat_ioctl(struct file *file, unsigned int cmd, unsigned long arg) in comedi_compat_ioctl() argument
3129 switch (cmd) { in comedi_compat_ioctl()
3137 rc = comedi_unlocked_ioctl(file, cmd, arg); in comedi_compat_ioctl()
3146 rc = comedi_unlocked_ioctl(file, cmd, arg); in comedi_compat_ioctl()
3229 si_code = async->cmd.flags & CMDF_WRITE ? POLL_OUT : POLL_IN; in comedi_event()