Merge tag 'v3.3.7' into 3.3/master
[zen-stable.git] / drivers / s390 / char / keyboard.h
blob7e736aaeae6ec6a79a6d766d2a2b651f8572e02b
1 /*
2 * drivers/s390/char/keyboard.h
3 * ebcdic keycode functions for s390 console drivers
5 * Copyright (C) 2003 IBM Deutschland Entwicklung GmbH, IBM Corporation
6 * Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com),
7 */
9 #include <linux/tty.h>
10 #include <linux/tty_flip.h>
11 #include <linux/keyboard.h>
13 #define NR_FN_HANDLER 20
15 struct kbd_data;
17 typedef void (fn_handler_fn)(struct kbd_data *);
20 * FIXME: explain key_maps tricks.
23 struct kbd_data {
24 struct tty_struct *tty;
25 unsigned short **key_maps;
26 char **func_table;
27 fn_handler_fn **fn_handler;
28 struct kbdiacruc *accent_table;
29 unsigned int accent_table_size;
30 unsigned int diacr;
31 unsigned short sysrq;
34 struct kbd_data *kbd_alloc(void);
35 void kbd_free(struct kbd_data *);
36 void kbd_ascebc(struct kbd_data *, unsigned char *);
38 void kbd_keycode(struct kbd_data *, unsigned int);
39 int kbd_ioctl(struct kbd_data *, unsigned int, unsigned long);
42 * Helper Functions.
44 static inline void
45 kbd_put_queue(struct tty_struct *tty, int ch)
47 tty_insert_flip_char(tty, ch, 0);
48 tty_schedule_flip(tty);
51 static inline void
52 kbd_puts_queue(struct tty_struct *tty, char *cp)
54 while (*cp)
55 tty_insert_flip_char(tty, *cp++, 0);
56 tty_schedule_flip(tty);