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 |