|
From: James S. <jsi...@ac...> - 2000-06-08 02:03:41
|
Now that I understand the way the keyboard <-> tty works like for ruby.
-------------------------------------------------------------------------
Ruby way for AT keyboards:
i8042.c -(raw)-> atkbd.c -(events)-> input.c -->
>--(events)-> keyboard.c -(chars)-> tty
Ruby way for USB keyboards:
usb.c -(usb)-> hid.c -(events)-> input.c -->
>--(events)-> keyboard.c -(chars)-> tty
-----------------------------------------------------------------------
The next question is can we have
i8042.c usb.c
| |
(raw) (usb)
| |
atkbd.c hid.c
| |
(events) (events)
| |
| |
input.c input.c
| |
--------(events)-----------> keyboard.c -(chars)-> tty
I'm assuming only specific EV_KEY events get sent to keyboard.c. If
keyboard.c only sees events coming in and we want to support multiple
keyboards how are we going to tell the different keyboards apart? Wait I
think I see how. We have
void kbd_event(struct input_handle *handle, unsigned int event_type,
unsigned int keycode, int down)
{
if (event_type != EV_KEY) return;
kbd_keycode(keycode, down);
tasklet_schedule(&keyboard_tasklet);
}
In input_handle we have input_dev *dev which has a name string whcih I can
use compare which keyboard it came from. I think? Ideas Vojtech.
Q: Why did they deprecate a.out support in linux?
A: Because a nasty coff is bad for your elf.
James Simmons [jsi...@li...] ____/|
fbdev/console/gfx developer \ o.O|
http://www.linux-fbdev.org =(_)=
http://linuxgfx.sourceforge.net U
http://linuxconsole.sourceforge.net
|