vt: tackle the main part of the selection logic
[linux-2.6.git] / drivers / tty / vt / defkeymap.c_shipped
1 /* Do not edit this file! It was automatically generated by   */
2 /*    loadkeys --mktable defkeymap.map > defkeymap.c          */
3
4 #include <linux/types.h>
5 #include <linux/keyboard.h>
6 #include <linux/kd.h>
7
8 u_short plain_map[NR_KEYS] = {
9         0xf200, 0xf01b, 0xf031, 0xf032, 0xf033, 0xf034, 0xf035, 0xf036,
10         0xf037, 0xf038, 0xf039, 0xf030, 0xf02d, 0xf03d, 0xf07f, 0xf009,
11         0xfb71, 0xfb77, 0xfb65, 0xfb72, 0xfb74, 0xfb79, 0xfb75, 0xfb69,
12         0xfb6f, 0xfb70, 0xf05b, 0xf05d, 0xf201, 0xf702, 0xfb61, 0xfb73,
13         0xfb64, 0xfb66, 0xfb67, 0xfb68, 0xfb6a, 0xfb6b, 0xfb6c, 0xf03b,
14         0xf027, 0xf060, 0xf700, 0xf05c, 0xfb7a, 0xfb78, 0xfb63, 0xfb76,
15         0xfb62, 0xfb6e, 0xfb6d, 0xf02c, 0xf02e, 0xf02f, 0xf700, 0xf30c,
16         0xf703, 0xf020, 0xf207, 0xf100, 0xf101, 0xf102, 0xf103, 0xf104,
17         0xf105, 0xf106, 0xf107, 0xf108, 0xf109, 0xf208, 0xf209, 0xf307,
18         0xf308, 0xf309, 0xf30b, 0xf304, 0xf305, 0xf306, 0xf30a, 0xf301,
19         0xf302, 0xf303, 0xf300, 0xf310, 0xf206, 0xf200, 0xf03c, 0xf10a,
20         0xf10b, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
21         0xf30e, 0xf702, 0xf30d, 0xf01c, 0xf701, 0xf205, 0xf114, 0xf603,
22         0xf118, 0xf601, 0xf602, 0xf117, 0xf600, 0xf119, 0xf115, 0xf116,
23         0xf11a, 0xf10c, 0xf10d, 0xf11b, 0xf11c, 0xf110, 0xf311, 0xf11d,
24         0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
25 };
26
27 u_short shift_map[NR_KEYS] = {
28         0xf200, 0xf01b, 0xf021, 0xf040, 0xf023, 0xf024, 0xf025, 0xf05e,
29         0xf026, 0xf02a, 0xf028, 0xf029, 0xf05f, 0xf02b, 0xf07f, 0xf009,
30         0xfb51, 0xfb57, 0xfb45, 0xfb52, 0xfb54, 0xfb59, 0xfb55, 0xfb49,
31         0xfb4f, 0xfb50, 0xf07b, 0xf07d, 0xf201, 0xf702, 0xfb41, 0xfb53,
32         0xfb44, 0xfb46, 0xfb47, 0xfb48, 0xfb4a, 0xfb4b, 0xfb4c, 0xf03a,
33         0xf022, 0xf07e, 0xf700, 0xf07c, 0xfb5a, 0xfb58, 0xfb43, 0xfb56,
34         0xfb42, 0xfb4e, 0xfb4d, 0xf03c, 0xf03e, 0xf03f, 0xf700, 0xf30c,
35         0xf703, 0xf020, 0xf207, 0xf10a, 0xf10b, 0xf10c, 0xf10d, 0xf10e,
36         0xf10f, 0xf110, 0xf111, 0xf112, 0xf113, 0xf213, 0xf203, 0xf307,
37         0xf308, 0xf309, 0xf30b, 0xf304, 0xf305, 0xf306, 0xf30a, 0xf301,
38         0xf302, 0xf303, 0xf300, 0xf310, 0xf206, 0xf200, 0xf03e, 0xf10a,
39         0xf10b, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
40         0xf30e, 0xf702, 0xf30d, 0xf200, 0xf701, 0xf205, 0xf114, 0xf603,
41         0xf20b, 0xf601, 0xf602, 0xf117, 0xf600, 0xf20a, 0xf115, 0xf116,
42         0xf11a, 0xf10c, 0xf10d, 0xf11b, 0xf11c, 0xf110, 0xf311, 0xf11d,
43         0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
44 };
45
46 u_short altgr_map[NR_KEYS] = {
47         0xf200, 0xf200, 0xf200, 0xf040, 0xf200, 0xf024, 0xf200, 0xf200,
48         0xf07b, 0xf05b, 0xf05d, 0xf07d, 0xf05c, 0xf200, 0xf200, 0xf200,
49         0xfb71, 0xfb77, 0xf918, 0xfb72, 0xfb74, 0xfb79, 0xfb75, 0xfb69,
50         0xfb6f, 0xfb70, 0xf200, 0xf07e, 0xf201, 0xf702, 0xf914, 0xfb73,
51         0xf917, 0xf919, 0xfb67, 0xfb68, 0xfb6a, 0xfb6b, 0xfb6c, 0xf200,
52         0xf200, 0xf200, 0xf700, 0xf200, 0xfb7a, 0xfb78, 0xf916, 0xfb76,
53         0xf915, 0xfb6e, 0xfb6d, 0xf200, 0xf200, 0xf200, 0xf700, 0xf30c,
54         0xf703, 0xf200, 0xf207, 0xf50c, 0xf50d, 0xf50e, 0xf50f, 0xf510,
55         0xf511, 0xf512, 0xf513, 0xf514, 0xf515, 0xf208, 0xf202, 0xf911,
56         0xf912, 0xf913, 0xf30b, 0xf90e, 0xf90f, 0xf910, 0xf30a, 0xf90b,
57         0xf90c, 0xf90d, 0xf90a, 0xf310, 0xf206, 0xf200, 0xf07c, 0xf516,
58         0xf517, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
59         0xf30e, 0xf702, 0xf30d, 0xf200, 0xf701, 0xf205, 0xf114, 0xf603,
60         0xf118, 0xf601, 0xf602, 0xf117, 0xf600, 0xf119, 0xf115, 0xf116,
61         0xf11a, 0xf10c, 0xf10d, 0xf11b, 0xf11c, 0xf110, 0xf311, 0xf11d,
62         0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
63 };
64
65 u_short ctrl_map[NR_KEYS] = {
66         0xf200, 0xf200, 0xf200, 0xf000, 0xf01b, 0xf01c, 0xf01d, 0xf01e,
67         0xf01f, 0xf07f, 0xf200, 0xf200, 0xf01f, 0xf200, 0xf008, 0xf200,
68         0xf011, 0xf017, 0xf005, 0xf012, 0xf014, 0xf019, 0xf015, 0xf009,
69         0xf00f, 0xf010, 0xf01b, 0xf01d, 0xf201, 0xf702, 0xf001, 0xf013,
70         0xf004, 0xf006, 0xf007, 0xf008, 0xf00a, 0xf00b, 0xf00c, 0xf200,
71         0xf007, 0xf000, 0xf700, 0xf01c, 0xf01a, 0xf018, 0xf003, 0xf016,
72         0xf002, 0xf00e, 0xf00d, 0xf200, 0xf20e, 0xf07f, 0xf700, 0xf30c,
73         0xf703, 0xf000, 0xf207, 0xf100, 0xf101, 0xf102, 0xf103, 0xf104,
74         0xf105, 0xf106, 0xf107, 0xf108, 0xf109, 0xf208, 0xf204, 0xf307,
75         0xf308, 0xf309, 0xf30b, 0xf304, 0xf305, 0xf306, 0xf30a, 0xf301,
76         0xf302, 0xf303, 0xf300, 0xf310, 0xf206, 0xf200, 0xf200, 0xf10a,
77         0xf10b, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
78         0xf30e, 0xf702, 0xf30d, 0xf01c, 0xf701, 0xf205, 0xf114, 0xf603,
79         0xf118, 0xf601, 0xf602, 0xf117, 0xf600, 0xf119, 0xf115, 0xf116,
80         0xf11a, 0xf10c, 0xf10d, 0xf11b, 0xf11c, 0xf110, 0xf311, 0xf11d,
81         0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
82 };
83
84 u_short shift_ctrl_map[NR_KEYS] = {
85         0xf200, 0xf200, 0xf200, 0xf000, 0xf200, 0xf200, 0xf200, 0xf200,
86         0xf200, 0xf200, 0xf200, 0xf200, 0xf01f, 0xf200, 0xf200, 0xf200,
87         0xf011, 0xf017, 0xf005, 0xf012, 0xf014, 0xf019, 0xf015, 0xf009,
88         0xf00f, 0xf010, 0xf200, 0xf200, 0xf201, 0xf702, 0xf001, 0xf013,
89         0xf004, 0xf006, 0xf007, 0xf008, 0xf00a, 0xf00b, 0xf00c, 0xf200,
90         0xf200, 0xf200, 0xf700, 0xf200, 0xf01a, 0xf018, 0xf003, 0xf016,
91         0xf002, 0xf00e, 0xf00d, 0xf200, 0xf200, 0xf200, 0xf700, 0xf30c,
92         0xf703, 0xf200, 0xf207, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
93         0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf208, 0xf200, 0xf307,
94         0xf308, 0xf309, 0xf30b, 0xf304, 0xf305, 0xf306, 0xf30a, 0xf301,
95         0xf302, 0xf303, 0xf300, 0xf310, 0xf206, 0xf200, 0xf200, 0xf200,
96         0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
97         0xf30e, 0xf702, 0xf30d, 0xf200, 0xf701, 0xf205, 0xf114, 0xf603,
98         0xf118, 0xf601, 0xf602, 0xf117, 0xf600, 0xf119, 0xf115, 0xf116,
99         0xf11a, 0xf10c, 0xf10d, 0xf11b, 0xf11c, 0xf110, 0xf311, 0xf11d,
100         0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
101 };
102
103 u_short alt_map[NR_KEYS] = {
104         0xf200, 0xf81b, 0xf831, 0xf832, 0xf833, 0xf834, 0xf835, 0xf836,
105         0xf837, 0xf838, 0xf839, 0xf830, 0xf82d, 0xf83d, 0xf87f, 0xf809,
106         0xf871, 0xf877, 0xf865, 0xf872, 0xf874, 0xf879, 0xf875, 0xf869,
107         0xf86f, 0xf870, 0xf85b, 0xf85d, 0xf80d, 0xf702, 0xf861, 0xf873,
108         0xf864, 0xf866, 0xf867, 0xf868, 0xf86a, 0xf86b, 0xf86c, 0xf83b,
109         0xf827, 0xf860, 0xf700, 0xf85c, 0xf87a, 0xf878, 0xf863, 0xf876,
110         0xf862, 0xf86e, 0xf86d, 0xf82c, 0xf82e, 0xf82f, 0xf700, 0xf30c,
111         0xf703, 0xf820, 0xf207, 0xf500, 0xf501, 0xf502, 0xf503, 0xf504,
112         0xf505, 0xf506, 0xf507, 0xf508, 0xf509, 0xf208, 0xf209, 0xf907,
113         0xf908, 0xf909, 0xf30b, 0xf904, 0xf905, 0xf906, 0xf30a, 0xf901,
114         0xf902, 0xf903, 0xf900, 0xf310, 0xf206, 0xf200, 0xf83c, 0xf50a,
115         0xf50b, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
116         0xf30e, 0xf702, 0xf30d, 0xf01c, 0xf701, 0xf205, 0xf114, 0xf603,
117         0xf118, 0xf210, 0xf211, 0xf117, 0xf600, 0xf119, 0xf115, 0xf116,
118         0xf11a, 0xf10c, 0xf10d, 0xf11b, 0xf11c, 0xf110, 0xf311, 0xf11d,
119         0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
120 };
121
122 u_short ctrl_alt_map[NR_KEYS] = {
123         0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
124         0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
125         0xf811, 0xf817, 0xf805, 0xf812, 0xf814, 0xf819, 0xf815, 0xf809,
126         0xf80f, 0xf810, 0xf200, 0xf200, 0xf201, 0xf702, 0xf801, 0xf813,
127         0xf804, 0xf806, 0xf807, 0xf808, 0xf80a, 0xf80b, 0xf80c, 0xf200,
128         0xf200, 0xf200, 0xf700, 0xf200, 0xf81a, 0xf818, 0xf803, 0xf816,
129         0xf802, 0xf80e, 0xf80d, 0xf200, 0xf200, 0xf200, 0xf700, 0xf30c,
130         0xf703, 0xf200, 0xf207, 0xf500, 0xf501, 0xf502, 0xf503, 0xf504,
131         0xf505, 0xf506, 0xf507, 0xf508, 0xf509, 0xf208, 0xf200, 0xf307,
132         0xf308, 0xf309, 0xf30b, 0xf304, 0xf305, 0xf306, 0xf30a, 0xf301,
133         0xf302, 0xf303, 0xf300, 0xf20c, 0xf206, 0xf200, 0xf200, 0xf50a,
134         0xf50b, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
135         0xf30e, 0xf702, 0xf30d, 0xf200, 0xf701, 0xf205, 0xf114, 0xf603,
136         0xf118, 0xf601, 0xf602, 0xf117, 0xf600, 0xf119, 0xf115, 0xf20c,
137         0xf11a, 0xf10c, 0xf10d, 0xf11b, 0xf11c, 0xf110, 0xf311, 0xf11d,
138         0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
139 };
140
141 ushort *key_maps[MAX_NR_KEYMAPS] = {
142         plain_map, shift_map, altgr_map, NULL,
143         ctrl_map, shift_ctrl_map, NULL, NULL,
144         alt_map, NULL, NULL, NULL,
145         ctrl_alt_map, NULL
146 };
147
148 unsigned int keymap_count = 7;
149
150 /*
151  * Philosophy: most people do not define more strings, but they who do
152  * often want quite a lot of string space. So, we statically allocate
153  * the default and allocate dynamically in chunks of 512 bytes.
154  */
155
156 char func_buf[] = {
157         '\033', '[', '[', 'A', 0, 
158         '\033', '[', '[', 'B', 0, 
159         '\033', '[', '[', 'C', 0, 
160         '\033', '[', '[', 'D', 0, 
161         '\033', '[', '[', 'E', 0, 
162         '\033', '[', '1', '7', '~', 0, 
163         '\033', '[', '1', '8', '~', 0, 
164         '\033', '[', '1', '9', '~', 0, 
165         '\033', '[', '2', '0', '~', 0, 
166         '\033', '[', '2', '1', '~', 0, 
167         '\033', '[', '2', '3', '~', 0, 
168         '\033', '[', '2', '4', '~', 0, 
169         '\033', '[', '2', '5', '~', 0, 
170         '\033', '[', '2', '6', '~', 0, 
171         '\033', '[', '2', '8', '~', 0, 
172         '\033', '[', '2', '9', '~', 0, 
173         '\033', '[', '3', '1', '~', 0, 
174         '\033', '[', '3', '2', '~', 0, 
175         '\033', '[', '3', '3', '~', 0, 
176         '\033', '[', '3', '4', '~', 0, 
177         '\033', '[', '1', '~', 0, 
178         '\033', '[', '2', '~', 0, 
179         '\033', '[', '3', '~', 0, 
180         '\033', '[', '4', '~', 0, 
181         '\033', '[', '5', '~', 0, 
182         '\033', '[', '6', '~', 0, 
183         '\033', '[', 'M', 0, 
184         '\033', '[', 'P', 0, 
185 };
186
187 char *funcbufptr = func_buf;
188 int funcbufsize = sizeof(func_buf);
189 int funcbufleft = 0;          /* space left */
190
191 char *func_table[MAX_NR_FUNC] = {
192         func_buf + 0,
193         func_buf + 5,
194         func_buf + 10,
195         func_buf + 15,
196         func_buf + 20,
197         func_buf + 25,
198         func_buf + 31,
199         func_buf + 37,
200         func_buf + 43,
201         func_buf + 49,
202         func_buf + 55,
203         func_buf + 61,
204         func_buf + 67,
205         func_buf + 73,
206         func_buf + 79,
207         func_buf + 85,
208         func_buf + 91,
209         func_buf + 97,
210         func_buf + 103,
211         func_buf + 109,
212         func_buf + 115,
213         func_buf + 120,
214         func_buf + 125,
215         func_buf + 130,
216         func_buf + 135,
217         func_buf + 140,
218         func_buf + 145,
219         NULL,
220         NULL,
221         func_buf + 149,
222         NULL,
223 };
224
225 struct kbdiacruc accent_table[MAX_DIACR] = {
226         {'`', 'A', 0300},       {'`', 'a', 0340},
227         {'\'', 'A', 0301},      {'\'', 'a', 0341},
228         {'^', 'A', 0302},       {'^', 'a', 0342},
229         {'~', 'A', 0303},       {'~', 'a', 0343},
230         {'"', 'A', 0304},       {'"', 'a', 0344},
231         {'O', 'A', 0305},       {'o', 'a', 0345},
232         {'0', 'A', 0305},       {'0', 'a', 0345},
233         {'A', 'A', 0305},       {'a', 'a', 0345},
234         {'A', 'E', 0306},       {'a', 'e', 0346},
235         {',', 'C', 0307},       {',', 'c', 0347},
236         {'`', 'E', 0310},       {'`', 'e', 0350},
237         {'\'', 'E', 0311},      {'\'', 'e', 0351},
238         {'^', 'E', 0312},       {'^', 'e', 0352},
239         {'"', 'E', 0313},       {'"', 'e', 0353},
240         {'`', 'I', 0314},       {'`', 'i', 0354},
241         {'\'', 'I', 0315},      {'\'', 'i', 0355},
242         {'^', 'I', 0316},       {'^', 'i', 0356},
243         {'"', 'I', 0317},       {'"', 'i', 0357},
244         {'-', 'D', 0320},       {'-', 'd', 0360},
245         {'~', 'N', 0321},       {'~', 'n', 0361},
246         {'`', 'O', 0322},       {'`', 'o', 0362},
247         {'\'', 'O', 0323},      {'\'', 'o', 0363},
248         {'^', 'O', 0324},       {'^', 'o', 0364},
249         {'~', 'O', 0325},       {'~', 'o', 0365},
250         {'"', 'O', 0326},       {'"', 'o', 0366},
251         {'/', 'O', 0330},       {'/', 'o', 0370},
252         {'`', 'U', 0331},       {'`', 'u', 0371},
253         {'\'', 'U', 0332},      {'\'', 'u', 0372},
254         {'^', 'U', 0333},       {'^', 'u', 0373},
255         {'"', 'U', 0334},       {'"', 'u', 0374},
256         {'\'', 'Y', 0335},      {'\'', 'y', 0375},
257         {'T', 'H', 0336},       {'t', 'h', 0376},
258         {'s', 's', 0337},       {'"', 'y', 0377},
259         {'s', 'z', 0337},       {'i', 'j', 0377},
260 };
261
262 unsigned int accent_table_size = 68;