]> Zhao Yanbai Git Server - minix.git/commit
Input infrastructure, INPUT server, PCKBD driver
authorDavid van Moolenbroek <david@minix3.org>
Sat, 28 Sep 2013 12:46:21 +0000 (14:46 +0200)
committerLionel Sambuc <lionel@minix3.org>
Sat, 1 Mar 2014 08:04:55 +0000 (09:04 +0100)
commit6b3f4dc157580bee04c02f0e6cf9beac2b624396
tree2fd64f72b3ab6b33b81bf3a51dfe86497287ac5a
parentec2359d566932f8c650e39b55583fde77eff273d
Input infrastructure, INPUT server, PCKBD driver

This commit separates the low-level keyboard driver from TTY, putting
it in a separate driver (PCKBD). The commit also separates management
of raw input devices from TTY, and puts it in a separate server
(INPUT). All keyboard and mouse input from hardware is sent by drivers
to the INPUT server, which either sends it to a process that has
opened a raw input device, or otherwise forwards it to TTY for
standard processing.

Design by Dirk Vogt. Prototype by Uli Kastlunger.

Additional changes made to the prototype:

- the event communication is now based on USB HID codes; all input
  drivers have to use USB codes to describe events;
- all TTY keymaps have been converted to USB format, with the effect
  that a single keymap covers all keys; there is no (static) escaped
  keymap anymore;
- further keymap tweaks now allow remapping of literally all keys;
- input device renumbering and protocol rewrite;
- INPUT server rewrite, with added support for cancel and select;
- PCKBD reimplementation, including PC/AT-to-USB translation;
- support for manipulating keyboard LEDs has been added;
- keyboard and mouse multiplexer devices have been added to INPUT,
  primarily so that an X server need only open two devices;
- a new "libinputdriver" library abstracts away protocol details from
  input drivers, and should be used by all future input drivers;
- both INPUT and PCKBD can be restarted;
- TTY is now scheduled by KERNEL, so that it won't be punished for
  running a lot; without this, simply running "yes" on the console
  kills the system;
- the KIOCBELL IOCTL has been moved to /dev/console;
- support for the SCANCODES termios setting has been removed;
- obsolete keymap compression has been removed;
- the obsolete Olivetti M24 keymap has been removed.

Change-Id: I3a672fb8c4fd566734e4b46d3994b4b7fc96d578
89 files changed:
commands/DESCRIBE/DESCRIBE.sh
commands/MAKEDEV/MAKEDEV.sh
commands/loadkeys/loadkeys.c
distrib/sets/lists/minix/md.i386
distrib/sets/lists/minix/mi
drivers/Makefile
drivers/pckbd/Makefile [new file with mode: 0644]
drivers/pckbd/pckbd.c [new file with mode: 0644]
drivers/pckbd/pckbd.h [new file with mode: 0644]
drivers/pckbd/table.c [new file with mode: 0644]
drivers/ramdisk/Makefile
drivers/ramdisk/proto
drivers/ramdisk/proto.dev
drivers/ramdisk/rc
drivers/tty/arch/earm/console.c
drivers/tty/arch/earm/keyboard.c
drivers/tty/arch/earm/rs232.c
drivers/tty/arch/i386/keyboard.c
drivers/tty/arch/i386/rs232.c
drivers/tty/keymaps/Makefile
drivers/tty/keymaps/abnt2.src
drivers/tty/keymaps/dvorak.src
drivers/tty/keymaps/french.src
drivers/tty/keymaps/genmap.c
drivers/tty/keymaps/german.src
drivers/tty/keymaps/italian.src
drivers/tty/keymaps/japanese.src
drivers/tty/keymaps/latin-america.src
drivers/tty/keymaps/olivetti.src [deleted file]
drivers/tty/keymaps/polish.src
drivers/tty/keymaps/portuguese.src
drivers/tty/keymaps/russian-cp1251.src
drivers/tty/keymaps/russian-cp866.src
drivers/tty/keymaps/russian.src
drivers/tty/keymaps/scandinavian.src
drivers/tty/keymaps/spanish.src
drivers/tty/keymaps/uk.src
drivers/tty/keymaps/ukraine-koi8-u.src
drivers/tty/keymaps/us-std-esc.src [deleted file]
drivers/tty/keymaps/us-std.src
drivers/tty/keymaps/us-swap.src
drivers/tty/pty.c
drivers/tty/tty.c
drivers/tty/tty.h
etc/Makefile
etc/system.conf
include/minix/Makefile
include/minix/com.h
include/minix/dmap.h
include/minix/input.h
include/minix/inputdriver.h [new file with mode: 0644]
include/minix/keymap.h
include/minix/termios.h
lib/Makefile
lib/libchardriver/chardriver.c
lib/libinputdriver/Makefile [new file with mode: 0644]
lib/libinputdriver/inputdriver.c [new file with mode: 0644]
lib/libsys/Makefile
lib/libsys/input.c [deleted file]
lib/libvtreefs/inc.h
man/man4/tty.4
man/man5/keymap.5
servers/Makefile
servers/ds/inc.h
servers/input/Makefile [new file with mode: 0644]
servers/input/input.c [new file with mode: 0644]
servers/input/input.h [new file with mode: 0644]
servers/iso9660fs/inc.h
servers/pfs/inc.h
servers/pm/main.c
servers/procfs/inc.h
servers/rs/inc.h
servers/vfs/main.c
servers/vfs/mount.c
servers/vfs/path.c
servers/vm/break.c
servers/vm/exit.c
servers/vm/fdref.h
servers/vm/fork.c
servers/vm/main.c
servers/vm/mmap.c
servers/vm/pagefaults.c
servers/vm/pagetable.c
servers/vm/queryexit.c
servers/vm/region.h
servers/vm/rs.c
servers/vm/slaballoc.c
test/scancodes/Makefile [deleted file]
test/scancodes/test-scancodes.c [deleted file]