Index: speakup.c =================================================================== RCS file: /usr/src/CVS/speakup/speakup.c,v retrieving revision 1.179 diff -u -B -r1.179 speakup.c --- speakup.c 6 Oct 2006 18:57:05 -0000 1.179 +++ speakup.c 30 Nov 2006 04:49:06 -0000 @@ -106,9 +106,9 @@ struct tty_struct *tty; #define key_handler k_handler typedef void (*k_handler_fn)(struct vc_data *vc, unsigned char value, - char up_flag, struct pt_regs *regs); -#define KBD_PROTO struct vc_data *vc, u_char value, char up_flag, struct pt_regs *regs -#define KBD_ARGS vc, value, up_flag, regs + char up_flag); +#define KBD_PROTO struct vc_data *vc, u_char value, char up_flag +#define KBD_ARGS vc, value, up_flag extern k_handler_fn key_handler[16]; static k_handler_fn do_shift, do_spec, do_latin, do_cursor; EXPORT_SYMBOL( help_handler ); @@ -2109,8 +2109,8 @@ kbd_fakekey2(struct vc_data *vc,int v,int command) { cursor_stop_timer(); - (*do_cursor)( vc,v,0,fakekeydev->regs); - (*do_cursor)( vc,v,1,fakekeydev->regs); + (*do_cursor)( vc,v,0); + (*do_cursor)( vc,v,1); start_read_all_timer(vc,command); } @@ -2770,7 +2770,7 @@ static const char *pad_chars = "0123456789+-*/\015,.?()"; int -speakup_key (struct vc_data *vc, int shift_state, int keycode, u_short keysym, int up_flag, struct pt_regs *regs ) +speakup_key (struct vc_data *vc, int shift_state, int keycode, u_short keysym, int up_flag) { int kh; u_char *key_info; Index: speakup_drvcommon.c =================================================================== RCS file: /usr/src/CVS/speakup/speakup_drvcommon.c,v retrieving revision 1.61 diff -u -B -r1.61 speakup_drvcommon.c --- speakup_drvcommon.c 6 Oct 2006 15:32:46 -0000 1.61 +++ speakup_drvcommon.c 30 Nov 2006 04:49:06 -0000 @@ -1,5 +1,4 @@ #define KERNEL -#include #include #include #include /* for isdigit( ) and friends */ @@ -48,7 +47,7 @@ u_char *buffer_highwater = synth_buffer+synthBufferSize-100; u_char *buffer_end = synth_buffer+synthBufferSize-1; volatile u_char *synth_buff_in = synth_buffer, *synth_buff_out = synth_buffer; -static irqreturn_t synth_readbuf_handler(int irq, void *dev_id,struct pt_regs *); +static irqreturn_t synth_readbuf_handler(int irq, void *dev_id); struct serial_state *serstate; struct serial_state *spk_serial_init( int index ) @@ -154,7 +153,7 @@ synth_port_tts = 0; } -static irqreturn_t synth_readbuf_handler(int irq, void *dev_id,struct pt_regs *regs) +static irqreturn_t synth_readbuf_handler(int irq, void *dev_id) { //printk(KERN_ERR "in irq\n"); //pr_warn("in IRQ\n"); Index: spk_priv.h =================================================================== RCS file: /usr/src/CVS/speakup/spk_priv.h,v retrieving revision 1.31 diff -u -B -r1.31 spk_priv.h --- spk_priv.h 6 Oct 2006 15:32:46 -0000 1.31 +++ spk_priv.h 30 Nov 2006 04:49:06 -0000 @@ -26,7 +26,6 @@ #define KERNEL #include -#include #include #include #include Index: diff-v26/drivers^char^keyboard.c.patch =================================================================== RCS file: /usr/src/CVS/speakup/diff-v26/drivers^char^keyboard.c.patch,v retrieving revision 1.58 diff -u -B -r1.58 drivers^char^keyboard.c.patch --- diff-v26/drivers^char^keyboard.c.patch 6 Oct 2006 18:57:07 -0000 1.58 +++ diff-v26/drivers^char^keyboard.c.patch 30 Nov 2006 04:49:06 -0000 @@ -1,6 +1,8 @@ ---- /usr/src/linux-2.6.18/drivers/char/keyboard.c.orig 2006-10-06 11:34:15.000000000 -0400 -+++ drivers/char/keyboard.c 2006-10-06 11:34:15.000000000 -0400 -@@ -40,6 +40,22 @@ +Index: drivers/char/keyboard.c +=================================================================== +--- drivers/char/keyboard.c.orig ++++ drivers/char/keyboard.c +@@ -41,6 +41,22 @@ #include #include @@ -10,20 +12,20 @@ +#if defined(CONFIG_SPEAKUP_MODULE) + +spk_key_func addr_spk_key = NULL; -+#define speakup_key_call(__vc, __shift, __keycode, __key, __down, __regs) \ -+ (addr_spk_key && (*addr_spk_key)(__vc, __shift, __keycode, __key, __down, __regs)) ++#define speakup_key_call(__vc, __shift, __keycode, __key, __down) \ ++ (addr_spk_key && (*addr_spk_key)(__vc, __shift, __keycode, __key, __down)) + +#elif defined(CONFIG_SPEAKUP) -+#define speakup_key_call(__vc, __shift, __keycode, __key, __down, __regs) \ -+ speakup_key(__vc, __shift, __keycode, __key, __down, __regs) ++#define speakup_key_call(__vc, __shift, __keycode, __key, __down) \ ++ speakup_key(__vc, __shift, __keycode, __key, __down) +#else -+#define speakup_key_call(__vc, __shift, __keycode, __key, __down, __regs) 0 ++#define speakup_key_call(__vc, __shift, __keycode, __key, __down) 0 +#endif + static void kbd_disconnect(struct input_handle *handle); extern void ctrl_alt_del(void); -@@ -64,6 +80,10 @@ +@@ -65,6 +81,10 @@ extern void ctrl_alt_del(void); #define KBD_DEFLOCK 0 @@ -34,16 +36,16 @@ void compute_shiftstate(void); /* -@@ -79,7 +99,7 @@ +@@ -80,7 +100,7 @@ void compute_shiftstate(void); typedef void (k_handler_fn)(struct vc_data *vc, unsigned char value, - char up_flag, struct pt_regs *regs); + char up_flag); static k_handler_fn K_HANDLERS; -static k_handler_fn *k_handler[16] = { K_HANDLERS }; +k_handler_fn *k_handler[16] = { K_HANDLERS }; #define FN_HANDLERS\ fn_null, fn_enter, fn_show_ptregs, fn_show_mem,\ -@@ -100,13 +120,16 @@ +@@ -101,13 +121,16 @@ static fn_handler_fn *fn_handler[] = { F const int max_vals[] = { 255, ARRAY_SIZE(func_table) - 1, ARRAY_SIZE(fn_handler) - 1, NR_PAD - 1, NR_DEAD - 1, 255, 3, NR_SHIFT - 1, 255, NR_ASCII - 1, NR_LOCK - 1, @@ -60,9 +62,9 @@ +EXPORT_SYMBOL(kbd); +EXPORT_SYMBOL(k_handler); - int spawnpid, spawnsig; - -@@ -261,6 +284,8 @@ + struct vt_spawn_console vt_spawn_con = { + .lock = SPIN_LOCK_UNLOCKED, +@@ -266,6 +289,8 @@ void kd_mksound(unsigned int hz, unsigne kd_nosound(0); } @@ -71,7 +73,7 @@ /* * Setting the keyboard rate. */ -@@ -613,6 +638,7 @@ +@@ -623,6 +648,7 @@ static void k_spec(struct vc_data *vc, u if (up_flag) return; if (value >= ARRAY_SIZE(fn_handler)) @@ -79,34 +81,27 @@ return; if ((kbd->kbdmode == VC_RAW || kbd->kbdmode == VC_MEDIUMRAW) && -@@ -1224,6 +1250,9 @@ +@@ -1233,6 +1259,9 @@ static void kbd_keycode(unsigned int key key_map = key_maps[shift_final]; if (!key_map) { -+ if (speakup_key_call(vc, shift_final, keycode, K(KT_SHIFT,0), !down, regs )) ++ if (speakup_key_call(vc, shift_final, keycode, K(KT_SHIFT,0), !down)) + return; + compute_shiftstate(); kbd->slockstate = 0; return; -@@ -1247,6 +1276,9 @@ +@@ -1256,6 +1285,9 @@ static void kbd_keycode(unsigned int key type -= 0xf0; -+ if (speakup_key_call(vc, shift_final, keycode, keysym, !down, regs )) ++ if (speakup_key_call(vc, shift_final, keycode, keysym, !down)) + return; + if (raw_mode && type != KT_SPEC && type != KT_SHIFT) return; -@@ -1258,13 +1290,15 @@ - keysym = key_map[keycode]; - } - } -- - (*k_handler[type])(vc, keysym & 0xff, !down, regs); - - if (type != KT_SLOCK) +@@ -1274,6 +1306,9 @@ static void kbd_keycode(unsigned int key kbd->slockstate = 0; } @@ -116,7 +111,7 @@ static void kbd_event(struct input_handle *handle, unsigned int event_type, unsigned int event_code, int value) { -@@ -1302,6 +1336,7 @@ +@@ -1311,6 +1346,7 @@ static struct input_handle *kbd_connect( return NULL; handle->dev = dev; Index: diff-v26/drivers^char^vt.c.patch =================================================================== RCS file: /usr/src/CVS/speakup/diff-v26/drivers^char^vt.c.patch,v retrieving revision 1.58 diff -u -B -r1.58 drivers^char^vt.c.patch --- diff-v26/drivers^char^vt.c.patch 6 Oct 2006 18:57:07 -0000 1.58 +++ diff-v26/drivers^char^vt.c.patch 30 Nov 2006 04:49:06 -0000 @@ -1,6 +1,8 @@ ---- /usr/src/linux-2.6.18/drivers/char/vt.c.orig 2006-10-06 11:34:15.000000000 -0400 -+++ drivers/char/vt.c 2006-10-06 11:34:15.000000000 -0400 -@@ -96,6 +96,11 @@ +Index: drivers/char/vt.c +=================================================================== +--- drivers/char/vt.c.orig ++++ drivers/char/vt.c +@@ -103,6 +103,11 @@ #include #include @@ -12,7 +14,7 @@ #define MAX_NR_CON_DRIVER 16 #define CON_DRIVER_FLAG_MODULE 1 -@@ -738,6 +743,7 @@ +@@ -739,6 +744,7 @@ int vc_allocate(unsigned int currcons) / } vc->vc_kmalloced = 1; vc_init(vc, vc->vc_rows, vc->vc_cols, 1); @@ -20,15 +22,7 @@ } return 0; } -@@ -878,7 +884,6 @@ - return err; - } - -- - void vc_disallocate(unsigned int currcons) - { - WARN_CONSOLE_UNLOCKED(); -@@ -992,6 +997,7 @@ +@@ -1003,6 +1009,7 @@ static void lf(struct vc_data *vc) vc->vc_pos += vc->vc_size_row; } vc->vc_need_wrap = 0; @@ -36,7 +30,7 @@ } static void ri(struct vc_data *vc) -@@ -1020,6 +1026,7 @@ +@@ -1031,6 +1038,7 @@ static inline void bs(struct vc_data *vc vc->vc_pos -= 2; vc->vc_x--; vc->vc_need_wrap = 0; @@ -44,7 +38,7 @@ } } -@@ -1557,6 +1564,7 @@ +@@ -1568,6 +1576,7 @@ static void do_con_trol(struct tty_struc break; } vc->vc_pos += (vc->vc_x << 1); @@ -52,7 +46,7 @@ return; case 10: case 11: case 12: lf(vc); -@@ -2087,6 +2095,7 @@ +@@ -2107,6 +2116,7 @@ display_glyph: } if (vc->vc_decim) insert_char(vc, 1); @@ -60,7 +54,7 @@ scr_writew(himask ? ((vc->vc_attr << 8) & ~himask) + ((tc & 0x100) ? himask : 0) + (tc & 0xff) : (vc->vc_attr << 8) + tc, -@@ -2112,6 +2121,7 @@ +@@ -2141,6 +2151,7 @@ display_glyph: release_console_sem(); out: @@ -68,7 +62,7 @@ return n; #undef FLUSH } -@@ -2137,6 +2147,7 @@ +@@ -2166,6 +2177,7 @@ static void console_callback(void *ignor /* we only changed when the console had already been allocated - a new console is not created in an interrupt routine */ @@ -76,7 +70,7 @@ } want_console = -1; } -@@ -2155,6 +2166,7 @@ +@@ -2184,6 +2196,7 @@ static void console_callback(void *ignor do_blank_screen(0); blank_timer_expired = 0; } @@ -84,7 +78,7 @@ release_console_sem(); } -@@ -2200,6 +2212,7 @@ +@@ -2229,6 +2242,7 @@ static void vt_console_print(struct cons /* printk("vt_console_print: tty %d not allocated ??\n", currcons+1); */ goto quit; } @@ -92,7 +86,7 @@ if (vc->vc_mode != KD_TEXT) goto quit; -@@ -2212,6 +2225,7 @@ +@@ -2241,6 +2255,7 @@ static void vt_console_print(struct cons /* Contrived structure to try to emulate original need_wrap behaviour * Problems caused when we have need_wrap set on '\n' character */ @@ -100,7 +94,7 @@ while (count--) { c = *b++; if (c == 10 || c == 13 || c == 8 || vc->vc_need_wrap) { -@@ -2256,6 +2270,7 @@ +@@ -2285,6 +2300,7 @@ static void vt_console_print(struct cons } } set_cursor(vc); @@ -108,7 +102,7 @@ quit: clear_bit(0, &printing); -@@ -2621,6 +2636,7 @@ +@@ -2650,6 +2666,7 @@ static int __init con_init(void) master_display_fg = vc = vc_cons[currcons].d; set_origin(vc); save_screen(vc); @@ -116,7 +110,7 @@ gotoxy(vc, vc->vc_x, vc->vc_y); csi_J(vc, 0); update_screen(vc); -@@ -3773,3 +3789,4 @@ +@@ -3819,3 +3836,4 @@ EXPORT_SYMBOL(vc_cons); EXPORT_SYMBOL(take_over_console); EXPORT_SYMBOL(give_up_console); #endif Index: diff-v26/include^linux^speakup.h.copy =================================================================== RCS file: /usr/src/CVS/speakup/diff-v26/include^linux^speakup.h.copy,v retrieving revision 1.5 diff -u -B -r1.5 include^linux^speakup.h.copy --- diff-v26/include^linux^speakup.h.copy 15 Dec 2005 16:26:22 -0000 1.5 +++ diff-v26/include^linux^speakup.h.copy 30 Nov 2006 04:49:06 -0000 @@ -15,11 +15,11 @@ extern void speakup_bs(struct vc_data *); extern void speakup_con_write(struct vc_data *, const char *, int); extern void speakup_con_update(struct vc_data *); -extern int speakup_key(struct vc_data*, int, int, u_short, int, struct pt_regs *); +extern int speakup_key(struct vc_data*, int, int, u_short, int); #elif defined(CONFIG_SPEAKUP_MODULE) typedef void (*spk_con_func)(struct vc_data * ); typedef void (*spk_write_func)(struct vc_data *, const char *, int); -typedef int (*spk_key_func)(struct vc_data*, int, int, u_short, int, struct pt_regs *); +typedef int (*spk_key_func)(struct vc_data*, int, int, u_short, int); extern void spk_set_addresses( spk_con_func allocate, spk_con_func bs, spk_write_func con_write, spk_con_func con_update, spk_key_func key ); #define speakup_init(vc)