Date: Mon, 17 Apr 2017 13:06:13 +0000 From: bugzilla-noreply@freebsd.org To: freebsd-bugs@FreeBSD.org Subject: [Bug 218625] [PATCH] Evdev ioctls EVIOCGRAB and EVIOCREVOKE don't work together with cuse Message-ID: <bug-218625-8-ZPcBSzy9CQ@https.bugs.freebsd.org/bugzilla/> In-Reply-To: <bug-218625-8@https.bugs.freebsd.org/bugzilla/> References: <bug-218625-8@https.bugs.freebsd.org/bugzilla/>
next in thread | previous in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D218625 --- Comment #4 from Vladimir Kondratyev <vladimir@kondratyev.su> --- (In reply to Jan Kokem=C3=BCller from comment #3) > I don't know if this is cuse specific behavior, > or if FreeBSD in general behaves like this. IOWINT ioctl passes int value in internal buffer and provide pointer to that buffer to handler exactly like IOW(NNN, ###, int) Following is IOWINT->IO convertor from webcamd internals, AFAIR, it is work= ing: /* * Copy in the _IOWINT parameter and pass it as arg pointer * similar to what Linux is doing: */ if ((cmd & IOC_DIRMASK) =3D=3D IOC_VOID && IOCPARM_LEN(cmd) =3D=3D = sizeof(int)) { if (copy_from_user(&iowint, arg, sizeof(iowint)) !=3D 0) { retval =3D -EFAULT; goto done; } arg =3D (void *)(intptr_t)iowint; } --=20 You are receiving this mail because: You are the assignee for the bug.=
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-218625-8-ZPcBSzy9CQ>