Linux Audio

Check our new training course

Loading...
v3.1
 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/*
20 * FIXME: explain key_maps tricks.
21 */
22
23struct 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;
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);
39int kbd_ioctl(struct kbd_data *, unsigned int, unsigned long);
40
41/*
42 * Helper Functions.
43 */
44static inline void
45kbd_put_queue(struct tty_struct *tty, int ch)
46{
47	tty_insert_flip_char(tty, ch, 0);
48	tty_schedule_flip(tty);
49}
50
51static inline void
52kbd_puts_queue(struct tty_struct *tty, char *cp)
53{
54	while (*cp)
55		tty_insert_flip_char(tty, *cp++, 0);
56	tty_schedule_flip(tty);
57}
v4.6
 1/*
 
 2 *    ebcdic keycode functions for s390 console drivers
 3 *
 4 *    Copyright IBM Corp. 2003
 5 *    Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com),
 6 */
 7
 8#include <linux/tty.h>
 9#include <linux/tty_flip.h>
10#include <linux/keyboard.h>
11
12#define NR_FN_HANDLER	20
13
14struct kbd_data;
15
16typedef void (fn_handler_fn)(struct kbd_data *);
17
18/*
19 * FIXME: explain key_maps tricks.
20 */
21
22struct kbd_data {
23	struct tty_port *port;
24	unsigned short **key_maps;
25	char **func_table;
26	fn_handler_fn **fn_handler;
27	struct kbdiacruc *accent_table;
28	unsigned int accent_table_size;
29	unsigned int diacr;
30	unsigned short sysrq;
31};
32
33struct kbd_data *kbd_alloc(void);
34void kbd_free(struct kbd_data *);
35void kbd_ascebc(struct kbd_data *, unsigned char *);
36
37void kbd_keycode(struct kbd_data *, unsigned int);
38int kbd_ioctl(struct kbd_data *, unsigned int, unsigned long);
39
40/*
41 * Helper Functions.
42 */
43static inline void
44kbd_put_queue(struct tty_port *port, int ch)
45{
46	tty_insert_flip_char(port, ch, 0);
47	tty_schedule_flip(port);
48}
49
50static inline void
51kbd_puts_queue(struct tty_port *port, char *cp)
52{
53	while (*cp)
54		tty_insert_flip_char(port, *cp++, 0);
55	tty_schedule_flip(port);
56}