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 
9 enum {
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 */
36 struct 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