]> git.proxmox.com Git - mirror_ubuntu-focal-kernel.git/blame - drivers/s390/char/keyboard.h
Merge remote-tracking branches 'asoc/topic/ac97', 'asoc/topic/ac97-mfd', 'asoc/topic...
[mirror_ubuntu-focal-kernel.git] / drivers / s390 / char / keyboard.h
CommitLineData
b2441318 1/* SPDX-License-Identifier: GPL-2.0 */
1da177e4 2/*
1da177e4
LT
3 * ebcdic keycode functions for s390 console drivers
4 *
a53c8fab 5 * Copyright IBM Corp. 2003
1da177e4
LT
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/*
20 * FIXME: explain key_maps tricks.
21 */
22
23struct kbd_data {
ba186e7d 24 struct tty_port *port;
1da177e4
LT
25 unsigned short **key_maps;
26 char **func_table;
27 fn_handler_fn **fn_handler;
04c71976 28 struct kbdiacruc *accent_table;
1da177e4 29 unsigned int accent_table_size;
04c71976 30 unsigned int diacr;
1da177e4
LT
31 unsigned short sysrq;
32};
33
34struct kbd_data *kbd_alloc(void);
35void kbd_free(struct kbd_data *);
36void kbd_ascebc(struct kbd_data *, unsigned char *);
37
38void kbd_keycode(struct kbd_data *, unsigned int);
65c56e07 39int kbd_ioctl(struct kbd_data *, unsigned int, unsigned long);
1da177e4
LT
40
41/*
42 * Helper Functions.
43 */
4448aaf0 44static inline void
ba186e7d 45kbd_put_queue(struct tty_port *port, int ch)
1da177e4 46{
92a19f9c 47 tty_insert_flip_char(port, ch, 0);
6732c8bb 48 tty_schedule_flip(port);
1da177e4
LT
49}
50
4448aaf0 51static inline void
ba186e7d 52kbd_puts_queue(struct tty_port *port, char *cp)
1da177e4
LT
53{
54 while (*cp)
92a19f9c 55 tty_insert_flip_char(port, *cp++, 0);
6732c8bb 56 tty_schedule_flip(port);
1da177e4 57}