Linux Kernel
3.7.1
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
drivers
s390
char
keyboard.h
Go to the documentation of this file.
1
/*
2
* ebcdic keycode functions for s390 console drivers
3
*
4
* Copyright IBM Corp. 2003
5
* Author(s): Martin Schwidefsky (
[email protected]
),
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
14
struct
kbd_data
;
15
16
typedef
void
(
fn_handler_fn
)(
struct
kbd_data
*);
17
18
/*
19
* FIXME: explain key_maps tricks.
20
*/
21
22
struct
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
33
struct
kbd_data
*
kbd_alloc
(
void
);
34
void
kbd_free
(
struct
kbd_data
*);
35
void
kbd_ascebc
(
struct
kbd_data
*,
unsigned
char
*);
36
37
void
kbd_keycode
(
struct
kbd_data
*,
unsigned
int
);
38
int
kbd_ioctl
(
struct
kbd_data
*,
unsigned
int
,
unsigned
long
);
39
40
/*
41
* Helper Functions.
42
*/
43
static
inline
void
44
kbd_put_queue(
struct
tty_port
*
port
,
int
ch)
45
{
46
struct
tty_struct
*tty =
tty_port_tty_get
(port);
47
if
(!tty)
48
return
;
49
tty_insert_flip_char(tty, ch, 0);
50
tty_schedule_flip
(tty);
51
tty_kref_put
(tty);
52
}
53
54
static
inline
void
55
kbd_puts_queue(
struct
tty_port
*port,
char
*
cp
)
56
{
57
struct
tty_struct
*tty =
tty_port_tty_get
(port);
58
if
(!tty)
59
return
;
60
while
(*cp)
61
tty_insert_flip_char(tty, *cp++, 0);
62
tty_schedule_flip
(tty);
63
tty_kref_put
(tty);
64
}
Generated on Thu Jan 10 2013 14:17:23 for Linux Kernel by
1.8.2