linux/include
Samuel Thibault 41ab4396e1 Console keyboard events and accessibility
Some blind people use a kernel engine called Speakup which uses hardware
synthesis to speak what gets displayed on the screen.  They use the
PC keyboard to control this engine (start/stop, accelerate, ...) and
also need to get keyboard feedback (to make sure to know what they are
typing, the caps lock status, etc.)

Up to now, the way it was done was very ugly.  Below is a patch to add a
notifier list for permitting a far better implementation, see ChangeLog
above for details.

You may wonder why this can't be done at the input layer.  The problem
is that what people want to monitor is the console keyboard, i.e. all
input keyboards that got attached to the console, and with the currently
active keymap (i.e. keysyms, not only keycodes).

This adds a keyboard notifier that such modules can use to get the keyboard
events and possibly eat them, at several stages:

- keycodes: even before translation into keysym.
- unbound keycodes: when no keysym is bound.
- unicode: when the keycode would get translated into a unicode character.
- keysym: when the keycode would get translated into a keysym.
- post_keysym: after the keysym got interpreted, so as to see the result
  (caps lock, etc.)

This also provides access to k_handler so as to permit simulation of
keypresses.

[akpm@linux-foundation.org: various fixes]
Signed-off-by: Samuel Thibault <samuel.thibault@ens-lyon.org>
Cc: Jiri Kosina <jkosina@suse.cz>
Cc: Dmitry Torokhov <dtor@mail.ru>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-10-19 11:53:33 -07:00
..
acpi ACPI: CONFIG_ACPI_SLEEP=n power off regression in 2.6.23-rc8 (NOT in rc7) 2007-09-25 17:58:52 -04:00
asm-alpha alpha: lock bitops 2007-10-18 14:37:29 -07:00
asm-arm bitops: introduce lock ops 2007-10-18 14:37:29 -07:00
asm-arm26 softlockup: make asm/irq_regs.h available on every platform 2007-10-17 08:42:47 -07:00
asm-avr32 bitops: introduce lock ops 2007-10-18 14:37:29 -07:00
asm-blackfin Replace __attribute_pure__ with __pure 2007-10-18 14:37:32 -07:00
asm-cris bitops: introduce lock ops 2007-10-18 14:37:29 -07:00
asm-frv bitops: introduce lock ops 2007-10-18 14:37:29 -07:00
asm-generic bitops: introduce lock ops 2007-10-18 14:37:29 -07:00
asm-h8300 bitops: introduce lock ops 2007-10-18 14:37:29 -07:00
asm-ia64 ia64: lock bitops 2007-10-18 14:37:29 -07:00
asm-m32r bitops: introduce lock ops 2007-10-18 14:37:29 -07:00
asm-m68k bitops: introduce lock ops 2007-10-18 14:37:29 -07:00
asm-m68knommu bitops: introduce lock ops 2007-10-18 14:37:29 -07:00
asm-mips Merge branch 'upstream' of git://ftp.linux-mips.org/pub/scm/upstream-linus 2007-10-18 14:51:02 -07:00
asm-parisc bitops: introduce lock ops 2007-10-18 14:37:29 -07:00
asm-powerpc powerpc: lock bitops 2007-10-18 14:37:29 -07:00
asm-ppc Replace __attribute_pure__ with __pure 2007-10-18 14:37:32 -07:00
asm-s390 bitops: introduce lock ops 2007-10-18 14:37:29 -07:00
asm-sh bitops: introduce lock ops 2007-10-18 14:37:29 -07:00
asm-sh64 bitops: introduce lock ops 2007-10-18 14:37:29 -07:00
asm-sparc Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6 2007-10-18 14:39:44 -07:00
asm-sparc64 Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6 2007-10-18 14:39:44 -07:00
asm-um x86: rename .i assembler includes to .h 2007-10-17 20:16:29 +02:00
asm-v850 bitops: introduce lock ops 2007-10-18 14:37:29 -07:00
asm-x86 bitops: introduce lock ops 2007-10-18 14:37:29 -07:00
asm-xtensa bitops: introduce lock ops 2007-10-18 14:37:29 -07:00
crypto [CRYPTO] sha: Add header file for SHA definitions 2007-10-10 16:55:50 -07:00
keys KEYS: Make request_key() and co fundamentally asynchronous 2007-10-17 08:42:57 -07:00
linux Console keyboard events and accessibility 2007-10-19 11:53:33 -07:00
math-emu Fix <math-emu/soft-fp.h> tpyo 2007-08-18 17:15:17 -07:00
media v4l: copy_to_user() is not a good method name 2007-10-13 09:58:59 -07:00
mtd
net [IPSEC]: Rename mode to outer_mode and add inner_mode 2007-10-17 21:35:51 -07:00
pcmcia pcmcia: use DMA_MASK_NONE for the default for all pcmcia devices 2007-10-16 09:42:50 -07:00
rdma IB/cm: Modify interface to send MRAs in response to duplicate messages 2007-10-09 19:59:17 -07:00
rxrpc
scsi do not export /usr/include/scsi in make headers_install 2007-10-17 08:42:52 -07:00
sound [ALSA] version 1.0.15 2007-10-16 16:57:46 +02:00
video pm2fb: hardware cursor support for the Permedia2 2007-10-16 09:43:18 -07:00
xen xen: fix incorrect vcpu_register_vcpu_info hypercall argument 2007-10-16 11:51:31 -07:00
Kbuild do not export /usr/include/scsi in make headers_install 2007-10-17 08:42:52 -07:00