• Home
  • History
  • Annotate
  • Line#
  • Navigate
  • Raw
  • Download
  • only in /asuswrt-rt-n18u-9.0.0.4.380.2695/release/src-rt-6.x.4708/linux/linux-2.6/drivers/s390/char/
1/*
2 *  drivers/s390/char/keyboard.h
3 *    ebcdic keycode functions for s390 console drivers
4 *
5 *    Copyright (C) 2003 IBM Deutschland Entwicklung GmbH, IBM Corporation
6 *    Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com),
7 */
8
9#include <linux/tty.h>
10#include <linux/tty_flip.h>
11#include <linux/keyboard.h>
12
13#define NR_FN_HANDLER	20
14
15struct kbd_data;
16
17typedef void (fn_handler_fn)(struct kbd_data *);
18
19
20struct kbd_data {
21	struct tty_struct *tty;
22	unsigned short **key_maps;
23	char **func_table;
24	fn_handler_fn **fn_handler;
25	struct kbdiacruc *accent_table;
26	unsigned int accent_table_size;
27	unsigned int diacr;
28	unsigned short sysrq;
29};
30
31struct kbd_data *kbd_alloc(void);
32void kbd_free(struct kbd_data *);
33void kbd_ascebc(struct kbd_data *, unsigned char *);
34
35void kbd_keycode(struct kbd_data *, unsigned int);
36int kbd_ioctl(struct kbd_data *, struct file *, unsigned int, unsigned long);
37
38/*
39 * Helper Functions.
40 */
41static inline void
42kbd_put_queue(struct tty_struct *tty, int ch)
43{
44	tty_insert_flip_char(tty, ch, 0);
45	tty_schedule_flip(tty);
46}
47
48static inline void
49kbd_puts_queue(struct tty_struct *tty, char *cp)
50{
51	while (*cp)
52		tty_insert_flip_char(tty, *cp++, 0);
53	tty_schedule_flip(tty);
54}
55