From: James S. <jsi...@us...> - 2002-02-20 17:45:30
|
Update of /cvsroot/linuxconsole/ruby/linux/drivers/char In directory usw-pr-cvs1:/tmp/cvs-serv19106 Modified Files: keyboard.c Log Message: Minimize diff with code in DJ tree. Index: keyboard.c =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/drivers/char/keyboard.c,v retrieving revision 1.69 retrieving revision 1.70 diff -u -d -r1.69 -r1.70 --- keyboard.c 24 Jan 2002 15:21:19 -0000 1.69 +++ keyboard.c 20 Feb 2002 17:45:27 -0000 1.70 @@ -47,6 +47,7 @@ #include <linux/init.h> #include <linux/slab.h> +#include <linux/kbd_kern.h> #include <linux/kbd_diacr.h> #include <linux/vt_kern.h> #include <linux/consolemap.h> @@ -96,6 +97,7 @@ * Variables/functions exported for vt_ioctl.c */ +/* maximum values each key_handler can handle */ const int max_vals[] = { 255, SIZE(func_table) - 1, SIZE(fn_handler) - 1, NR_PAD - 1, NR_DEAD - 1, 255, 3, NR_SHIFT - 1, 255, NR_ASCII - 1, NR_LOCK - 1, @@ -134,14 +136,14 @@ static unsigned long key_down[256/BITS_PER_LONG]; /* keyboard key bitmap */ static unsigned char shift_down[NR_SHIFT]; /* shift state counters.. */ static int dead_key_next; -static int npadch = -1; /* -1 or number assembled on pad */ +static int npadch = -1; /* -1 or number assembled on pad */ static unsigned char diacr; -static char rep; /* flag telling character repeat */ +static char rep; /* flag telling character repeat */ pm_callback pm_kbd_request_override = NULL; typedef void (pm_kbd_func) (void); static struct pm_dev *pm_kbd; -static unsigned char ledstate = 0xff; /* undefined */ +static unsigned char ledstate = 0xff; /* undefined */ static unsigned char ledioctl; static struct ledptr { @@ -227,7 +229,7 @@ void to_utf8(struct vc_data *vc, ushort c) { if (c < 0x80) - /* 0******* */ + /* 0******* */ put_queue(vc, c); else if (c < 0x800) { /* 110***** 10****** */ @@ -338,7 +340,7 @@ diacr = 0; } put_queue(vc, 13); - if (vc_kbd_mode(&vc->kbd_table, VC_CRLF)) + if (get_kbd_mode(&vc->kbd_table, VC_CRLF)) put_queue(vc, 10); } @@ -346,14 +348,14 @@ { if (rep) return; - chg_vc_kbd_led(&vc->kbd_table, VC_CAPSLOCK); + chg_kbd_led(&vc->kbd_table, VC_CAPSLOCK); } static void fn_caps_on(struct vc_data *vc) { if (rep) return; - set_vc_kbd_led(&vc->kbd_table, VC_CAPSLOCK); + set_kbd_led(&vc->kbd_table, VC_CAPSLOCK); } static void fn_show_ptregs(struct vc_data *vc) @@ -368,6 +370,7 @@ if (rep || !tty) return; + /* * Note: SCROLLOCK will be set (cleared) by stop_tty (start_tty); * these routines are also activated by ^S/^Q. @@ -381,7 +384,7 @@ static void fn_num(struct vc_data *vc) { - if (vc_kbd_mode(&vc->kbd_table, VC_APPLIC)) + if (get_kbd_mode(&vc->kbd_table, VC_APPLIC)) applkey(vc, 'P', 1); else fn_bare_num(vc); @@ -396,7 +399,7 @@ static void fn_bare_num(struct vc_data *vc) { if (!rep) - chg_vc_kbd_led(&vc->kbd_table, VC_NUMLOCK); + chg_kbd_led(&vc->kbd_table, VC_NUMLOCK); } static void fn_lastcons(struct vc_data *vc) @@ -517,7 +520,6 @@ /* * Special key handlers */ - static void k_ignore(struct vc_data *vc, unsigned char value, char up_flag) { } @@ -528,12 +530,14 @@ return; if (value >= SIZE(fn_handler)) return; - if ((vc->kbd_table.kbdmode == VC_RAW || vc->kbd_table.kbdmode == VC_MEDIUMRAW) && value != K_SAK) + if ((vc->kbd_table.kbdmode == VC_RAW || + vc->kbd_table.kbdmode == VC_MEDIUMRAW) && + value != K_SAK) return; /* SAK is allowed even in raw mode */ fn_handler[value](vc); } -static void k_lowercase(struct vc_data *vc, unsigned char value, char up_flag) +static void k_lowercase(struct vc_data *vc, unsigned char value, char up_flag) { printk(KERN_ERR "keyboard.c: k_lowercase was called - impossible\n"); } @@ -602,7 +606,7 @@ if (up_flag) return; - applkey(vc, cur_chars[value], vc_kbd_mode(&vc->kbd_table, VC_CKMODE)); + applkey(vc, cur_chars[value], get_kbd_mode(&vc->kbd_table, VC_CKMODE)); } static void k_pad(struct vc_data *vc, unsigned char value, char up_flag) @@ -614,12 +618,12 @@ return; /* no action, if this is a key release */ /* kludge... shift forces cursor/number keys */ - if (vc_kbd_mode(&vc->kbd_table, VC_APPLIC) && !shift_down[KG_SHIFT]) { + if (get_kbd_mode(&vc->kbd_table, VC_APPLIC) && !shift_down[KG_SHIFT]) { applkey(vc, app_map[value], 1); return; } - if (!vc_kbd_led(&vc->kbd_table, VC_NUMLOCK)) + if (!get_kbd_led(&vc->kbd_table, VC_NUMLOCK)) switch (value) { case KVAL(K_PCOMMA): case KVAL(K_PDOT): @@ -653,13 +657,13 @@ k_fn(vc, KVAL(K_PGUP), 0); return; case KVAL(K_P5): - applkey(vc,'G', vc_kbd_mode(&vc->kbd_table, + applkey(vc, 'G', get_kbd_mode(&vc->kbd_table, VC_APPLIC)); return; } put_8bit(vc, pad_chars[value]); - if (value == KVAL(K_PENTER) && vc_kbd_mode(&vc->kbd_table, VC_CRLF)) + if (value == KVAL(K_PENTER) && get_kbd_mode(&vc->kbd_table, VC_CRLF)) put_queue(vc, 10); } @@ -673,11 +677,10 @@ * Mimic typewriter: * a CapsShift key acts like Shift but undoes CapsLock */ - if (value == KVAL(K_CAPSSHIFT)) { value = KVAL(K_SHIFT); if (!up_flag) - clr_vc_kbd_led(&vc->kbd_table, VC_CAPSLOCK); + clr_kbd_led(&vc->kbd_table, VC_CAPSLOCK); } if (up_flag) { @@ -709,7 +712,8 @@ { if (up_flag) return; - if (vc_kbd_mode(&vc->kbd_table, VC_META)) { + + if (get_kbd_mode(&vc->kbd_table, VC_META)) { put_queue(vc, '\033'); put_queue(vc, value); } else @@ -723,10 +727,10 @@ if (up_flag) return; - if (value < 10) { + if (value < 10) { /* decimal input of code, while Alt depressed */ base = 10; - } else { + } else { /* hexadecimal input of code, while AltGr depressed */ value -= 10; base = 16; @@ -743,18 +747,20 @@ if (up_flag || rep) return; if (value >= NR_LOCK) { - /* Change the lock state and - set the CapsLock LED to the new state */ - unsigned char mask; + /* + * Change the lock state and + * set the CapsLock LED to the new state + */ + unsigned char mask; - mask = 1 << (value -= NR_LOCK); - if ((vc->kbd_table.lockstate ^= mask) & mask) - set_vc_kbd_led(&vc->kbd_table, VC_CAPSLOCK); - else - clr_vc_kbd_led(&vc->kbd_table, VC_CAPSLOCK); - } else { - /* Just change the lock state */ - chg_vc_kbd_lock(&vc->kbd_table, value); + mask = 1 << (value -= NR_LOCK); + if ((vc->kbd_table.lockstate ^= mask) & mask) + set_kbd_led(&vc->kbd_table, VC_CAPSLOCK); + else + clr_kbd_led(&vc->kbd_table, VC_CAPSLOCK); + } else { + /* Just change the lock state */ + chg_kbd_lock(&vc->kbd_table, value); } } @@ -763,11 +769,11 @@ k_shift(vc, value, up_flag); if (up_flag || rep) return; - chg_vc_kbd_slock(&vc->kbd_table, value); + chg_kbd_slock(&vc->kbd_table, value); /* try to make Alt, oops, AltGr and such work */ if (!key_maps[vc->kbd_table.lockstate ^ vc->kbd_table.slockstate]) { vc->kbd_table.slockstate = 0; - chg_vc_kbd_slock(&vc->kbd_table, value); + chg_kbd_slock(&vc->kbd_table, value); } } @@ -776,8 +782,8 @@ * or (ii) whatever pattern of lights people want to show using KDSETLED, * or (iii) specified bits of specified words in kernel memory. */ - -unsigned char getledstate(void) { +unsigned char getledstate(void) +{ return ledstate; } @@ -791,8 +797,8 @@ set_leds(); } -void register_leds(struct kbd_struct *kbd, unsigned int led,unsigned int *addr, - unsigned int mask) +void register_leds(struct kbd_struct *kbd, unsigned int led, + unsigned int *addr, unsigned int mask) { if (led < 3) { ledptrs[led].addr = addr; |