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