1#ifndef __LINUX_KBIO_H
2#define __LINUX_KBIO_H
3
4/* Return keyboard type */
5#define KIOCTYPE    _IOR('k', 9, int)
6/* Return Keyboard layout */
7#define KIOCLAYOUT  _IOR('k', 20, int)
8
9enum {
10    TR_NONE,
11    TR_ASCII,			/* keyboard is in regular state */
12    TR_EVENT,			/* keystrokes sent as firm events */
13    TR_UNTRANS_EVENT		/* EVENT+up and down+no translation */
14};
15
16/* Return the current keyboard translation */
17#define KIOCGTRANS  _IOR('k', 5, int)
18/* Set the keyboard translation */
19#define KIOCTRANS   _IOW('k', 0, int)
20
21/* Send a keyboard command */
22#define KIOCCMD     _IOW('k', 8, int)
23
24/* Return if keystrokes are being sent to /dev/kbd */
25
26/* Set routing of keystrokes to /dev/kbd */
27#define KIOCSDIRECT _IOW('k', 10, int)
28
29/* Set keyboard leds */
30#define KIOCSLED    _IOW('k', 14, unsigned char)
31
32/* Get keyboard leds */
33#define KIOCGLED    _IOR('k', 15, unsigned char)
34
35/* Used by KIOC[GS]RATE */
36struct kbd_rate {
37	unsigned char delay;	/* Delay in Hz before first repeat.	*/
38	unsigned char rate;	/* In characters per second (0..50).	*/
39};
40
41/* Set keyboard rate */
42#define KIOCSRATE   _IOW('k', 40, struct kbd_rate)
43
44/* Get keyboard rate */
45#define KIOCGRATE   _IOW('k', 41, struct kbd_rate)
46
47/* Top bit records if the key is up or down */
48#define KBD_UP      0x80
49
50/* Usable information */
51#define KBD_KEYMASK 0x7f
52
53/* All keys up */
54#define KBD_IDLE    0x75
55
56#endif /* __LINUX_KBIO_H */
57