Skip site navigation (1)Skip section navigation (2)
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>