M7350/kernel/drivers/s390/char/keyboard.h

57 lines
1.1 KiB
C
Raw Normal View History

2024-09-09 08:52:07 +00:00
/*
* ebcdic keycode functions for s390 console drivers
*
2024-09-09 08:57:42 +00:00
* Copyright IBM Corp. 2003
2024-09-09 08:52:07 +00:00
* Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com),
*/
#include <linux/tty.h>
#include <linux/tty_flip.h>
#include <linux/keyboard.h>
#define NR_FN_HANDLER 20
struct kbd_data;
typedef void (fn_handler_fn)(struct kbd_data *);
/*
* FIXME: explain key_maps tricks.
*/
struct kbd_data {
2024-09-09 08:57:42 +00:00
struct tty_port *port;
2024-09-09 08:52:07 +00:00
unsigned short **key_maps;
char **func_table;
fn_handler_fn **fn_handler;
struct kbdiacruc *accent_table;
unsigned int accent_table_size;
unsigned int diacr;
unsigned short sysrq;
};
struct kbd_data *kbd_alloc(void);
void kbd_free(struct kbd_data *);
void kbd_ascebc(struct kbd_data *, unsigned char *);
void kbd_keycode(struct kbd_data *, unsigned int);
int kbd_ioctl(struct kbd_data *, unsigned int, unsigned long);
/*
* Helper Functions.
*/
static inline void
2024-09-09 08:57:42 +00:00
kbd_put_queue(struct tty_port *port, int ch)
2024-09-09 08:52:07 +00:00
{
2024-09-09 08:57:42 +00:00
tty_insert_flip_char(port, ch, 0);
tty_schedule_flip(port);
2024-09-09 08:52:07 +00:00
}
static inline void
2024-09-09 08:57:42 +00:00
kbd_puts_queue(struct tty_port *port, char *cp)
2024-09-09 08:52:07 +00:00
{
while (*cp)
2024-09-09 08:57:42 +00:00
tty_insert_flip_char(port, *cp++, 0);
tty_schedule_flip(port);
2024-09-09 08:52:07 +00:00
}