[PATCH] SERIO_USERDEV: direct userspace access to mouse/keyboardpsaux serial ports

From: Tuukka Toivonen
Date: Fri May 07 2004 - 15:57:37 EST


Download:
wget http://www.ee.oulu.fi/~tuukkat/tmp/linux-2.6.5-userdev.20040507.patch

This is the first public release of the patch, but it has been already
tested by a few people, so it should be stable.

I hope to get some more testers, and if no serious bugs are found, I really
would like this to get included into the mainstream kernel.

Snippet from the documentation:

SERIO_USERDEV - Direct serial input device access for userspace

This driver provides direct access from usespace into PS/2 (or psaux)
serial ports used usually for input devices such as mouses and keyboards.

The code is part of the serio module. It can be enabled or disabled
from kernel configuration
Device Drivers -> Input device support -> User space driver support
if serial i/o support is enabled.

All available devices will be registered as miscellaneous
devices with major 10, minor dynamically allocated. The devices
with their minors will be listed in /proc/misc with isa0060/serio0
for keyboard and the rest for pointing devices. If devfs is enabled,
the device files will be created as /dev/misc/isa0060/serio*.

The created devices which are connected to a mouse can be usually
used in place of /dev/psaux which was used in 2.4.x kernels.
Therefore, you could do (if devfs is enabled):
ln -s /dev/misc/isa0060/serio1 /dev/psaux
(or some other device) and run mouse drivers such as gpm and XFree86
just as with 2.4.x kernel.

Features:
- Both read and write support to all PS/2 ports. With active multiplexing,
there will be five serial ports up to isa0060/serio4.
- Multiple readers supported, each reader will get copy of the complete stream.
Write locking supported via special ioctl calls.

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/