[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: kbd.diff (X loses keyboard on trivial operation)

From: Roland McGrath
Subject: Re: kbd.diff (X loses keyboard on trivial operation)
Date: Mon, 4 Nov 2002 21:06:45 -0500 (EST)

streamio is a generic translator with no device-specific knowledge.  In the
absence of a clean infrastructure of some kind, I think we would rather
leave it that way than have any special hacks for kbd/mouse in it.

I think that the cases of kbd and mouse should be addressed through work on
the new console server.  Things like X should ultimately access all input
their input sources via virtual devices provided by the console server, so
that all those input devices are cleanly included in a virtual console
switch.  The server is already structured around this idea, though Marcus
will have to fill you in on more of the details of where the needed pieces
fit into that code.  The work that's needed is on two fronts: the console
server's virtual device interface for the mouse and for raw kbd use; and
the console client's input drivers for the real keyboard and mouse hardware.

On the input side, there are two different kinds of drivers to work on.
For using GNUMach 1.3 you need input drivers that do the same special
device_set_status calls that the old kbd and mouse translators do, which is
how that kernel's built-in kbd and mouse devices are used.  That is the
short-term need, but something different will be needed eventually.  In
GNUMach 2.x (oskit-mach), those special drivers don't exist.  All that
exists is the low-level i8042 driver that I posted a little while back.
With that in the kernel, the input drivers in the console client need to
implement the various PC keyboard and PS/2 mouse protocols using plain
device_read/write on the raw device channels the kernel driver provides.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]