Date: Wed, 21 Sep 2011 16:23:28 +0200 From: Ivan Voras <ivoras@freebsd.org> To: geoffrey levand <geoffrey.levand@mail.ru> Cc: freebsd-hackers@freebsd.org Subject: Re: Re[2]: Sharing device driver between kernel and user space Message-ID: <CAF-QHFVNzFF8qS8ukZgOdjn3C97Op318dAj0CqnwAVm1AvVyiQ@mail.gmail.com> In-Reply-To: <E1R6NU8-0005JS-00.geoffrey-levand-mail-ru@f285.mail.ru> References: <E1R65Aj-0003Fj-00.geoffrey-levand-mail-ru@f57.mail.ru> <E1R6Fvx-0005sO-00.geoffrey-levand-mail-ru@f177.mail.ru> <j5cl4i$n5m$1@dough.gmane.org> <E1R6NU8-0005JS-00.geoffrey-levand-mail-ru@f285.mail.ru>
next in thread | previous in thread | raw e-mail | index | archive | help
On 21 September 2011 16:09, geoffrey levand <geoffrey.levand@mail.ru> wrote: > Sure i can use the synchronization primitives, the problem is that the response to a request sent to PS3 VUART port is not > available immediately, and i have to disallow kernel access to the PS3 VUART while i'm waiting for the response in user > space. I send request with write syscall from user space and wait for response with read syscall. In the period of time > between sending request and receiving response i could receive some other packets from VUART port, e.g. some kind of > event notification, i have to skip them. But kernel should not interfer until i get my response. > So i would need to lock out the kernel during this time. I think i found a good solution for this problem, just use a IOCTL > which tells kernel device driver to stop processing kernel requests and events, something like SET_USER_MODE. > After that i can use it in user space. Have you read sema(9)? Or if returning EBUSY is acceptable when the resource is in use by $whatever, maybe you just need a boolean variable.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAF-QHFVNzFF8qS8ukZgOdjn3C97Op318dAj0CqnwAVm1AvVyiQ>
