Re: mutual exclusion in vkbd
From: Alexander Kabaev (kan_at_freebsd.org)
Date: 05/31/05
- Previous message: Rob MacGregor: "RE: Screen Resolution"
- In reply to: Maksim Yevmenkin: "Re: mutual exclusion in vkbd"
- Next in thread: Maksim Yevmenkin: "Re: mutual exclusion in vkbd"
- Reply: Maksim Yevmenkin: "Re: mutual exclusion in vkbd"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Date: Tue, 31 May 2005 20:19:08 +0000 To: Maksim Yevmenkin <maksim.yevmenkin@savvis.net>
On Tue, May 31, 2005 at 09:41:18AM -0700, Maksim Yevmenkin wrote:
> Norbert,
>
> >I am currently trying to backport vkbd to FreeBSD 4.
>
> ok
>
> >Maksim Yevmenkin uses mtx_lock()/mtx_unlock() for
> >protecting access to data structures under FreeBSD 5/6
> >between the device functions and the kernel thread.
> >
> >How should I best do this under FreeBSD 4?
> >
> >Would something like splhigh() work in that context?
> >Or should I use lockmgr with LK_EXCLUSIVE/LK_RELEASE?
> >Is there any (pseudo)process context inside a kernel task?
>
> spltty() is what you probably need to use. you could just adjust the
> following defines like
>
> #define VKBD_LOCK_DECL int
> #define VKBD_LOCK_INIT(s) /* noop */
> #define VKBD_LOCK_DESTROY(s) /* noop */
> #define VKBD_LOCK(s) (s)->ks_lock = spltty()
> #define VKBD_UNLOCK(s) splx((s)->ks_lock)
> #define VKBD_LOCK_ASSERT(s, w)
> #define VKBD_SLEEP(s, f, d, t) \
> tsleep(&(s)->f, PCATCH | (PZERO + 1), d, t)
>
The code above will probably crash the kernel in many spectacular and
unpredictable ways. You will need to save interrupt flags locally to each
VKBD_LOCK caller or they will end up restoring each other's flags.
-- Alexander Kabaev _______________________________________________ freebsd-hackers@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-hackers To unsubscribe, send any mail to "freebsd-hackers-unsubscribe@freebsd.org"
- Previous message: Rob MacGregor: "RE: Screen Resolution"
- In reply to: Maksim Yevmenkin: "Re: mutual exclusion in vkbd"
- Next in thread: Maksim Yevmenkin: "Re: mutual exclusion in vkbd"
- Reply: Maksim Yevmenkin: "Re: mutual exclusion in vkbd"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Relevant Pages
|
|