1 #ifndef __LINUX_KEYBOARD_H
2 #define __LINUX_KEYBOARD_H
3
4 #define KG_SHIFT 0
5 #define KG_CTRL 2
6 #define KG_ALT 3
7 #define KG_ALTGR 1
8
9 #define NR_KEYS 128
10 #define NR_KEYMAPS 16
11 extern const int NR_TYPES;
12 extern const int max_vals[];
13 extern unsigned short key_map[NR_KEYMAPS][NR_KEYS];
14
15 #define NR_FUNC 36
16 #define FUNC_BUFSIZE 512
17 extern char func_buf[FUNC_BUFSIZE];
18 extern char *func_table[NR_FUNC];
19
20 #define KT_LATIN 0
21 #define KT_LETTER 11
22 #define KT_FN 1
23 #define KT_SPEC 2
24 #define KT_PAD 3
25 #define KT_DEAD 4
26 #define KT_CONS 5
27 #define KT_CUR 6
28 #define KT_SHIFT 7
29 #define KT_META 8
30 #define KT_ASCII 9
31 #define KT_LOCK 10
32
33 #define K(t,v) (((t)<<8)|(v))
34 #define KTYP(x) ((x) >> 8)
35 #define KVAL(x) ((x) & 0xff)
36
37 #define K_F1 K(KT_FN,0)
38 #define K_F2 K(KT_FN,1)
39 #define K_F3 K(KT_FN,2)
40 #define K_F4 K(KT_FN,3)
41 #define K_F5 K(KT_FN,4)
42 #define K_F6 K(KT_FN,5)
43 #define K_F7 K(KT_FN,6)
44 #define K_F8 K(KT_FN,7)
45 #define K_F9 K(KT_FN,8)
46 #define K_F10 K(KT_FN,9)
47 #define K_F11 K(KT_FN,10)
48 #define K_F12 K(KT_FN,11)
49 #define K_F13 K(KT_FN,12)
50 #define K_F14 K(KT_FN,13)
51 #define K_F15 K(KT_FN,14)
52 #define K_F16 K(KT_FN,15)
53 #define K_F17 K(KT_FN,16)
54 #define K_F18 K(KT_FN,17)
55 #define K_F19 K(KT_FN,18)
56 #define K_F20 K(KT_FN,19)
57 #define K_FIND K(KT_FN,20)
58 #define K_INSERT K(KT_FN,21)
59 #define K_REMOVE K(KT_FN,22)
60 #define K_SELECT K(KT_FN,23)
61 #define K_PGUP K(KT_FN,24)
62 #define K_PGDN K(KT_FN,25)
63 #define K_MACRO K(KT_FN,26)
64 #define K_HELP K(KT_FN,27)
65 #define K_DO K(KT_FN,28)
66 #define K_PAUSE K(KT_FN,29)
67
68 #define K_HOLE K(KT_SPEC,0)
69 #define K_ENTER K(KT_SPEC,1)
70 #define K_SH_REGS K(KT_SPEC,2)
71 #define K_SH_MEM K(KT_SPEC,3)
72 #define K_SH_STAT K(KT_SPEC,4)
73 #define K_BREAK K(KT_SPEC,5)
74 #define K_CONS K(KT_SPEC,6)
75 #define K_CAPS K(KT_SPEC,7)
76 #define K_NUM K(KT_SPEC,8)
77 #define K_HOLD K(KT_SPEC,9)
78 #define K_SCROLLFORW K(KT_SPEC,10)
79 #define K_SCROLLBACK K(KT_SPEC,11)
80 #define K_BOOT K(KT_SPEC,12)
81 #define K_CAPSON K(KT_SPEC,13)
82 #define K_COMPOSE K(KT_SPEC,14)
83
84 #define K_P0 K(KT_PAD,0)
85 #define K_P1 K(KT_PAD,1)
86 #define K_P2 K(KT_PAD,2)
87 #define K_P3 K(KT_PAD,3)
88 #define K_P4 K(KT_PAD,4)
89 #define K_P5 K(KT_PAD,5)
90 #define K_P6 K(KT_PAD,6)
91 #define K_P7 K(KT_PAD,7)
92 #define K_P8 K(KT_PAD,8)
93 #define K_P9 K(KT_PAD,9)
94 #define K_PPLUS K(KT_PAD,10)
95 #define K_PMINUS K(KT_PAD,11)
96 #define K_PSTAR K(KT_PAD,12)
97 #define K_PSLASH K(KT_PAD,13)
98 #define K_PENTER K(KT_PAD,14)
99 #define K_PCOMMA K(KT_PAD,15)
100 #define K_PDOT K(KT_PAD,16)
101 #define K_PPLUSMINUS K(KT_PAD,17)
102
103 #define K_DGRAVE K(KT_DEAD,0)
104 #define K_DACUTE K(KT_DEAD,1)
105 #define K_DCIRCM K(KT_DEAD,2)
106 #define K_DTILDE K(KT_DEAD,3)
107 #define K_DDIERE K(KT_DEAD,4)
108
109 #define K_DOWN K(KT_CUR,0)
110 #define K_LEFT K(KT_CUR,1)
111 #define K_RIGHT K(KT_CUR,2)
112 #define K_UP K(KT_CUR,3)
113
114 #define K_SHIFT K(KT_SHIFT,KG_SHIFT)
115 #define K_CTRL K(KT_SHIFT,KG_CTRL)
116 #define K_ALT K(KT_SHIFT,KG_ALT)
117 #define K_ALTGR K(KT_SHIFT,KG_ALTGR)
118
119 #define NR_SHIFT 4
120
121 #define K_CAPSSHIFT K(KT_SHIFT,NR_SHIFT)
122
123 #define K_ASC0 K(KT_ASCII,0)
124 #define K_ASC1 K(KT_ASCII,1)
125 #define K_ASC2 K(KT_ASCII,2)
126 #define K_ASC3 K(KT_ASCII,3)
127 #define K_ASC4 K(KT_ASCII,4)
128 #define K_ASC5 K(KT_ASCII,5)
129 #define K_ASC6 K(KT_ASCII,6)
130 #define K_ASC7 K(KT_ASCII,7)
131 #define K_ASC8 K(KT_ASCII,8)
132 #define K_ASC9 K(KT_ASCII,9)
133
134 #define K_SHIFTLOCK K(KT_LOCK,KG_SHIFT)
135 #define K_CTRLLOCK K(KT_LOCK,KG_CTRL)
136 #define K_ALTLOCK K(KT_LOCK,KG_ALT)
137 #define K_ALTGRLOCK K(KT_LOCK,KG_ALTGR)
138
139 #define MAX_DIACR 256
140 #endif