Rev 1787 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 1787 | Rev 1874 | ||
---|---|---|---|
Line 50... | Line 50... | ||
50 | #define MSIM_KEY_F9 0x30325b1bL |
50 | #define MSIM_KEY_F9 0x30325b1bL |
51 | #define MSIM_KEY_F10 0x31325b1bL |
51 | #define MSIM_KEY_F10 0x31325b1bL |
52 | #define MSIM_KEY_F11 0x33325b1bL |
52 | #define MSIM_KEY_F11 0x33325b1bL |
53 | #define MSIM_KEY_F12 0x34325b1bL |
53 | #define MSIM_KEY_F12 0x34325b1bL |
54 | 54 | ||
55 | - | ||
56 | #define GXEMUL_KEY_F1 0x504f5b1bL |
55 | #define GXEMUL_KEY_F1 0x504f5b1bL |
57 | #define GXEMUL_KEY_F2 0x514f5b1bL |
56 | #define GXEMUL_KEY_F2 0x514f5b1bL |
58 | #define GXEMUL_KEY_F3 0x524f5b1bL |
57 | #define GXEMUL_KEY_F3 0x524f5b1bL |
59 | #define GXEMUL_KEY_F4 0x534f5b1bL |
58 | #define GXEMUL_KEY_F4 0x534f5b1bL |
60 | #define GXEMUL_KEY_F5 0x35315b1bL |
59 | #define GXEMUL_KEY_F5 0x35315b1bL |
Line 64... | Line 63... | ||
64 | #define GXEMUL_KEY_F9 0x38325b1bL |
63 | #define GXEMUL_KEY_F9 0x38325b1bL |
65 | #define GXEMUL_KEY_F10 0x39325b1bL |
64 | #define GXEMUL_KEY_F10 0x39325b1bL |
66 | #define GXEMUL_KEY_F11 0x33325b1bL |
65 | #define GXEMUL_KEY_F11 0x33325b1bL |
67 | #define GXEMUL_KEY_F12 0x34325b1bL |
66 | #define GXEMUL_KEY_F12 0x34325b1bL |
68 | 67 | ||
69 | - | ||
70 | #define FUNCTION_KEYS 0x100 |
68 | #define FUNCTION_KEYS 0x100 |
71 | 69 | ||
72 | - | ||
73 | irq_cmd_t msim_cmds[1] = { |
70 | irq_cmd_t msim_cmds[1] = { |
74 | { CMD_MEM_READ_1, (void *)0xB0000000, 0, 2 } |
71 | { CMD_MEM_READ_1, (void *)0xB0000000, 0, 2 } |
75 | }; |
72 | }; |
76 | 73 | ||
77 | irq_code_t msim_kbd = { |
74 | irq_code_t msim_kbd = { |
Line 83... | Line 80... | ||
83 | static int fb_fb; |
80 | static int fb_fb; |
84 | 81 | ||
85 | 82 | ||
86 | int kbd_arch_init(void) |
83 | int kbd_arch_init(void) |
87 | { |
84 | { |
88 | fb_fb=sysinfo_value("fb.kind")==1; |
85 | fb_fb = (sysinfo_value("fb.kind") == 1); |
89 | ipc_register_irq(2, &msim_kbd); |
86 | ipc_register_irq(2, &msim_kbd); |
90 | return 0; |
87 | return 0; |
91 | } |
88 | } |
92 | 89 | ||
93 | 90 | ||
Line 102... | Line 99... | ||
102 | */ |
99 | */ |
103 | 100 | ||
104 | static int kbd_arch_process_no_fb(keybuffer_t *keybuffer, int scan_code) |
101 | static int kbd_arch_process_no_fb(keybuffer_t *keybuffer, int scan_code) |
105 | { |
102 | { |
106 | 103 | ||
107 | static unsigned long buf=0; |
104 | static unsigned long buf = 0; |
108 | static int count=0; |
105 | static int count = 0; |
109 | - | ||
110 | 106 | ||
111 | /* Please preserve this code (it can be used to determine scancodes) |
107 | /* Please preserve this code (it can be used to determine scancodes) |
112 | |
108 | |
113 | keybuffer_push(keybuffer, to_hex((scan_code>>4)&0xf)); |
109 | keybuffer_push(keybuffer, to_hex((scan_code>>4)&0xf)); |
114 | keybuffer_push(keybuffer, to_hex(scan_code&0xf)); |
110 | keybuffer_push(keybuffer, to_hex(scan_code&0xf)); |
Line 116... | Line 112... | ||
116 | keybuffer_push(keybuffer, ' '); |
112 | keybuffer_push(keybuffer, ' '); |
117 | |
113 | |
118 | return 1; |
114 | return 1; |
119 | */ |
115 | */ |
120 | 116 | ||
121 | if(scan_code==0x7e) |
117 | if(scan_code == 0x7e) { |
122 | { |
- | |
123 | switch (buf){ |
118 | switch (buf) { |
124 | case MSIM_KEY_F5: |
119 | case MSIM_KEY_F5: |
125 | keybuffer_push(keybuffer,FUNCTION_KEYS | 5 ); |
120 | keybuffer_push(keybuffer,FUNCTION_KEYS | 5); |
126 | buf=count=0; |
121 | buf = count = 0; |
127 | return 1; |
122 | return 1; |
128 | case MSIM_KEY_F6: |
123 | case MSIM_KEY_F6: |
129 | keybuffer_push(keybuffer,FUNCTION_KEYS | 6 ); |
124 | keybuffer_push(keybuffer,FUNCTION_KEYS | 6); |
130 | buf=count=0; |
125 | buf = count = 0; |
131 | return 1; |
126 | return 1; |
132 | case MSIM_KEY_F7: |
127 | case MSIM_KEY_F7: |
133 | keybuffer_push(keybuffer,FUNCTION_KEYS | 7 ); |
128 | keybuffer_push(keybuffer,FUNCTION_KEYS | 7); |
134 | buf=count=0; |
129 | buf = count = 0; |
135 | return 1; |
130 | return 1; |
136 | case MSIM_KEY_F8: |
131 | case MSIM_KEY_F8: |
137 | keybuffer_push(keybuffer,FUNCTION_KEYS | 8 ); |
132 | keybuffer_push(keybuffer,FUNCTION_KEYS | 8); |
138 | buf=count=0; |
133 | buf = count = 0; |
139 | return 1; |
134 | return 1; |
140 | - | ||
141 | case MSIM_KEY_F9: |
135 | case MSIM_KEY_F9: |
142 | keybuffer_push(keybuffer,FUNCTION_KEYS | 9 ); |
136 | keybuffer_push(keybuffer,FUNCTION_KEYS | 9); |
143 | buf=count=0; |
137 | buf = count = 0; |
144 | return 1; |
138 | return 1; |
145 | case MSIM_KEY_F10: |
139 | case MSIM_KEY_F10: |
146 | keybuffer_push(keybuffer,FUNCTION_KEYS | 10 ); |
140 | keybuffer_push(keybuffer,FUNCTION_KEYS | 10); |
147 | buf=count=0; |
141 | buf = count = 0; |
148 | return 1; |
142 | return 1; |
149 | - | ||
150 | case MSIM_KEY_F11: |
143 | case MSIM_KEY_F11: |
151 | keybuffer_push(keybuffer,FUNCTION_KEYS | 11 ); |
144 | keybuffer_push(keybuffer,FUNCTION_KEYS | 11); |
152 | buf=count=0; |
145 | buf = count = 0; |
153 | return 1; |
146 | return 1; |
154 | case MSIM_KEY_F12: |
147 | case MSIM_KEY_F12: |
155 | keybuffer_push(keybuffer,FUNCTION_KEYS | 12 ); |
148 | keybuffer_push(keybuffer,FUNCTION_KEYS | 12); |
156 | buf=count=0; |
149 | buf = count = 0; |
157 | return 1; |
150 | return 1; |
158 | default: |
151 | default: |
159 | keybuffer_push(keybuffer, buf & 0xff ); |
152 | keybuffer_push(keybuffer, buf & 0xff); |
160 | keybuffer_push(keybuffer, (buf >> 8) &0xff ); |
153 | keybuffer_push(keybuffer, (buf >> 8) &0xff); |
161 | keybuffer_push(keybuffer, (buf >> 16) &0xff ); |
154 | keybuffer_push(keybuffer, (buf >> 16) &0xff); |
162 | keybuffer_push(keybuffer, (buf >> 24) &0xff ); |
155 | keybuffer_push(keybuffer, (buf >> 24) &0xff); |
163 | keybuffer_push(keybuffer, scan_code ); |
156 | keybuffer_push(keybuffer, scan_code); |
164 | buf=count=0; |
157 | buf = count = 0; |
165 | return 1; |
158 | return 1; |
166 | - | ||
167 | } |
159 | } |
168 | } |
160 | } |
169 | 161 | ||
170 | buf|=((unsigned long) scan_code)<<(8*(count++)); |
162 | buf |= ((unsigned long) scan_code)<<(8*(count++)); |
171 | - | ||
172 | 163 | ||
173 | if((buf & 0xff)!= (MSIM_KEY_F1 & 0xff)) { |
164 | if((buf & 0xff) != (MSIM_KEY_F1 & 0xff)) { |
174 | - | ||
175 | keybuffer_push(keybuffer,buf ); |
165 | keybuffer_push(keybuffer, buf); |
176 | buf=count=0; |
166 | buf = count = 0; |
177 | return 1; |
167 | return 1; |
178 | } |
168 | } |
179 | 169 | ||
180 | if ( count <= 1 ) |
170 | if (count <= 1) |
181 | return 1; |
171 | return 1; |
182 | 172 | ||
183 | if( (buf & 0xffff) != (MSIM_KEY_F1 & 0xffff) |
173 | if ((buf & 0xffff) != (MSIM_KEY_F1 & 0xffff) |
184 | && (buf & 0xffff) != (MSIM_KEY_F5 & 0xffff) ) { |
174 | && (buf & 0xffff) != (MSIM_KEY_F5 & 0xffff) ) { |
185 | 175 | ||
186 | keybuffer_push(keybuffer, buf & 0xff ); |
176 | keybuffer_push(keybuffer, buf & 0xff); |
187 | keybuffer_push(keybuffer, (buf >> 8) &0xff ); |
177 | keybuffer_push(keybuffer, (buf >> 8) &0xff); |
188 | buf=count=0; |
178 | buf = count = 0; |
189 | return 1; |
179 | return 1; |
190 | } |
180 | } |
191 | 181 | ||
192 | if ( count <= 2) |
182 | if (count <= 2) |
193 | return 1; |
183 | return 1; |
194 | 184 | ||
195 | switch (buf){ |
185 | switch (buf) { |
196 | case MSIM_KEY_F1: |
186 | case MSIM_KEY_F1: |
197 | keybuffer_push(keybuffer,FUNCTION_KEYS | 1 ); |
187 | keybuffer_push(keybuffer,FUNCTION_KEYS | 1); |
198 | buf=count=0; |
188 | buf = count = 0; |
199 | return 1; |
189 | return 1; |
200 | case MSIM_KEY_F2: |
190 | case MSIM_KEY_F2: |
201 | keybuffer_push(keybuffer,FUNCTION_KEYS | 2 ); |
191 | keybuffer_push(keybuffer,FUNCTION_KEYS | 2); |
202 | buf=count=0; |
192 | buf = count = 0; |
203 | return 1; |
193 | return 1; |
204 | case MSIM_KEY_F3: |
194 | case MSIM_KEY_F3: |
205 | keybuffer_push(keybuffer,FUNCTION_KEYS | 3 ); |
195 | keybuffer_push(keybuffer,FUNCTION_KEYS | 3); |
206 | buf=count=0; |
196 | buf = count = 0; |
207 | return 1; |
197 | return 1; |
208 | case MSIM_KEY_F4: |
198 | case MSIM_KEY_F4: |
209 | keybuffer_push(keybuffer,FUNCTION_KEYS | 4 ); |
199 | keybuffer_push(keybuffer,FUNCTION_KEYS | 4); |
210 | buf=count=0; |
200 | buf = count = 0; |
211 | return 1; |
201 | return 1; |
212 | } |
202 | } |
213 | 203 | ||
214 | 204 | ||
215 | if( (buf & 0xffffff) != (MSIM_KEY_F5 & 0xffffff) |
205 | if((buf & 0xffffff) != (MSIM_KEY_F5 & 0xffffff) |
216 | && (buf & 0xffffff) != (MSIM_KEY_F9 & 0xffffff) ) { |
206 | && (buf & 0xffffff) != (MSIM_KEY_F9 & 0xffffff)) { |
217 | 207 | ||
218 | keybuffer_push(keybuffer, buf & 0xff ); |
208 | keybuffer_push(keybuffer, buf & 0xff); |
219 | keybuffer_push(keybuffer, (buf >> 8) &0xff ); |
209 | keybuffer_push(keybuffer, (buf >> 8) & 0xff); |
220 | keybuffer_push(keybuffer, (buf >> 16) &0xff ); |
210 | keybuffer_push(keybuffer, (buf >> 16) & 0xff); |
221 | buf=count=0; |
211 | buf=count=0; |
222 | return 1; |
212 | return 1; |
223 | } |
213 | } |
224 | 214 | ||
225 | if ( count <= 3 ) |
215 | if (count <= 3) |
226 | return 1; |
216 | return 1; |
227 | 217 | ||
228 | - | ||
229 | - | ||
230 | - | ||
231 | switch (buf){ |
218 | switch (buf) { |
232 | case MSIM_KEY_F5: |
219 | case MSIM_KEY_F5: |
233 | case MSIM_KEY_F6: |
220 | case MSIM_KEY_F6: |
234 | case MSIM_KEY_F7: |
221 | case MSIM_KEY_F7: |
235 | case MSIM_KEY_F8: |
222 | case MSIM_KEY_F8: |
236 | case MSIM_KEY_F9: |
223 | case MSIM_KEY_F9: |
237 | case MSIM_KEY_F10: |
224 | case MSIM_KEY_F10: |
238 | case MSIM_KEY_F11: |
225 | case MSIM_KEY_F11: |
239 | case MSIM_KEY_F12: |
226 | case MSIM_KEY_F12: |
240 | return 1; |
227 | return 1; |
241 | default: |
228 | default: |
242 | keybuffer_push(keybuffer, buf & 0xff ); |
229 | keybuffer_push(keybuffer, buf & 0xff); |
243 | keybuffer_push(keybuffer, (buf >> 8) &0xff ); |
230 | keybuffer_push(keybuffer, (buf >> 8) &0xff); |
244 | keybuffer_push(keybuffer, (buf >> 16) &0xff ); |
231 | keybuffer_push(keybuffer, (buf >> 16) &0xff); |
245 | keybuffer_push(keybuffer, (buf >> 24) &0xff ); |
232 | keybuffer_push(keybuffer, (buf >> 24) &0xff); |
246 | buf=count=0; |
233 | buf = count = 0; |
247 | return 1; |
234 | return 1; |
248 | - | ||
249 | } |
235 | } |
250 | return 1; |
236 | return 1; |
251 | } |
237 | } |
252 | 238 | ||
253 | 239 | ||
254 | 240 | ||
255 | static int kbd_arch_process_fb(keybuffer_t *keybuffer, int scan_code) |
241 | static int kbd_arch_process_fb(keybuffer_t *keybuffer, int scan_code) |
256 | { |
242 | { |
257 | - | ||
258 | static unsigned long buf=0; |
243 | static unsigned long buf = 0; |
259 | static int count=0; |
244 | static int count = 0; |
260 | - | ||
261 | 245 | ||
262 | /* Please preserve this code (it can be used to determine scancodes) |
246 | /* Please preserve this code (it can be used to determine scancodes) |
263 | |
247 | |
264 | keybuffer_push(keybuffer, to_hex((scan_code>>4)&0xf)); |
248 | keybuffer_push(keybuffer, to_hex((scan_code>>4)&0xf)); |
265 | keybuffer_push(keybuffer, to_hex(scan_code&0xf)); |
249 | keybuffer_push(keybuffer, to_hex(scan_code&0xf)); |
Line 267... | Line 251... | ||
267 | keybuffer_push(keybuffer, ' '); |
251 | keybuffer_push(keybuffer, ' '); |
268 | |
252 | |
269 | return 1; |
253 | return 1; |
270 | */ |
254 | */ |
271 | 255 | ||
272 | if ( scan_code == '\r' ) |
256 | if (scan_code == '\r') |
273 | scan_code = '\n' ; |
257 | scan_code = '\n'; |
274 | 258 | ||
275 | buf|=((unsigned long) scan_code)<<(8*(count++)); |
259 | buf |= ((unsigned long) scan_code)<<(8*(count++)); |
276 | 260 | ||
277 | 261 | ||
278 | if((buf & 0xff)!= (GXEMUL_KEY_F1 & 0xff)) { |
262 | if ((buf & 0xff) != (GXEMUL_KEY_F1 & 0xff)) { |
279 | - | ||
280 | keybuffer_push(keybuffer,buf ); |
263 | keybuffer_push(keybuffer, buf); |
281 | buf=count=0; |
264 | buf = count = 0; |
282 | return 1; |
265 | return 1; |
283 | } |
266 | } |
284 | 267 | ||
285 | if ( count <= 1 ) |
268 | if (count <= 1) |
286 | return 1; |
269 | return 1; |
287 | 270 | ||
288 | if( (buf & 0xffff) != (GXEMUL_KEY_F1 & 0xffff) ) { |
271 | if ((buf & 0xffff) != (GXEMUL_KEY_F1 & 0xffff)) { |
289 | - | ||
290 | keybuffer_push(keybuffer, buf & 0xff ); |
272 | keybuffer_push(keybuffer, buf & 0xff); |
291 | keybuffer_push(keybuffer, (buf >> 8) &0xff ); |
273 | keybuffer_push(keybuffer, (buf >> 8) &0xff); |
292 | buf=count=0; |
274 | buf = count = 0; |
293 | return 1; |
275 | return 1; |
294 | } |
276 | } |
295 | 277 | ||
296 | if ( count <= 2) |
278 | if (count <= 2) |
297 | return 1; |
279 | return 1; |
298 | 280 | ||
299 | 281 | ||
300 | if( (buf & 0xffffff) != (GXEMUL_KEY_F1 & 0xffffff) |
282 | if ((buf & 0xffffff) != (GXEMUL_KEY_F1 & 0xffffff) |
301 | && (buf & 0xffffff) != (GXEMUL_KEY_F5 & 0xffffff) |
283 | && (buf & 0xffffff) != (GXEMUL_KEY_F5 & 0xffffff) |
302 | && (buf & 0xffffff) != (GXEMUL_KEY_F9 & 0xffffff) ) { |
284 | && (buf & 0xffffff) != (GXEMUL_KEY_F9 & 0xffffff)) { |
303 | 285 | ||
304 | keybuffer_push(keybuffer, buf & 0xff ); |
286 | keybuffer_push(keybuffer, buf & 0xff); |
305 | keybuffer_push(keybuffer, (buf >> 8) &0xff ); |
287 | keybuffer_push(keybuffer, (buf >> 8) & 0xff); |
306 | keybuffer_push(keybuffer, (buf >> 16) &0xff ); |
288 | keybuffer_push(keybuffer, (buf >> 16) & 0xff); |
307 | buf=count=0; |
289 | buf = count = 0; |
308 | return 1; |
290 | return 1; |
309 | } |
291 | } |
310 | 292 | ||
311 | if ( count <= 3 ) |
293 | if ( count <= 3 ) |
312 | return 1; |
294 | return 1; |
313 | 295 | ||
314 | 296 | ||
315 | switch (buf){ |
297 | switch (buf) { |
316 | - | ||
317 | case GXEMUL_KEY_F1: |
298 | case GXEMUL_KEY_F1: |
318 | keybuffer_push(keybuffer,FUNCTION_KEYS | 1 ); |
299 | keybuffer_push(keybuffer,FUNCTION_KEYS | 1 ); |
319 | buf=count=0; |
300 | buf=count=0; |
320 | return 1; |
301 | return 1; |
321 | case GXEMUL_KEY_F2: |
302 | case GXEMUL_KEY_F2: |
322 | keybuffer_push(keybuffer,FUNCTION_KEYS | 2 ); |
303 | keybuffer_push(keybuffer,FUNCTION_KEYS | 2 ); |
323 | buf=count=0; |
304 | buf=count=0; |
324 | return 1; |
305 | return 1; |
325 | case GXEMUL_KEY_F3: |
306 | case GXEMUL_KEY_F3: |
326 | keybuffer_push(keybuffer,FUNCTION_KEYS | 3 ); |
307 | keybuffer_push(keybuffer,FUNCTION_KEYS | 3 ); |
327 | buf=count=0; |
308 | buf=count=0; |
328 | return 1; |
309 | return 1; |
329 | case GXEMUL_KEY_F4: |
310 | case GXEMUL_KEY_F4: |
330 | keybuffer_push(keybuffer,FUNCTION_KEYS | 4 ); |
311 | keybuffer_push(keybuffer,FUNCTION_KEYS | 4 ); |
331 | buf=count=0; |
312 | buf=count=0; |
332 | return 1; |
313 | return 1; |
333 | case GXEMUL_KEY_F5: |
314 | case GXEMUL_KEY_F5: |
334 | keybuffer_push(keybuffer,FUNCTION_KEYS | 5 ); |
315 | keybuffer_push(keybuffer,FUNCTION_KEYS | 5 ); |
335 | buf=count=0; |
316 | buf=count=0; |
336 | return 1; |
317 | return 1; |
337 | case GXEMUL_KEY_F6: |
318 | case GXEMUL_KEY_F6: |
338 | keybuffer_push(keybuffer,FUNCTION_KEYS | 6 ); |
319 | keybuffer_push(keybuffer,FUNCTION_KEYS | 6 ); |
339 | buf=count=0; |
320 | buf=count=0; |
340 | return 1; |
321 | return 1; |
341 | case GXEMUL_KEY_F7: |
322 | case GXEMUL_KEY_F7: |
342 | keybuffer_push(keybuffer,FUNCTION_KEYS | 7 ); |
323 | keybuffer_push(keybuffer,FUNCTION_KEYS | 7 ); |
343 | buf=count=0; |
324 | buf=count=0; |
344 | return 1; |
325 | return 1; |
345 | case GXEMUL_KEY_F8: |
326 | case GXEMUL_KEY_F8: |
346 | keybuffer_push(keybuffer,FUNCTION_KEYS | 8 ); |
327 | keybuffer_push(keybuffer,FUNCTION_KEYS | 8 ); |
347 | buf=count=0; |
328 | buf=count=0; |
348 | return 1; |
329 | return 1; |
349 | case GXEMUL_KEY_F9: |
330 | case GXEMUL_KEY_F9: |
350 | keybuffer_push(keybuffer,FUNCTION_KEYS | 9 ); |
331 | keybuffer_push(keybuffer,FUNCTION_KEYS | 9 ); |
351 | buf=count=0; |
332 | buf=count=0; |
352 | return 1; |
333 | return 1; |
353 | case GXEMUL_KEY_F10: |
334 | case GXEMUL_KEY_F10: |
354 | keybuffer_push(keybuffer,FUNCTION_KEYS | 10 ); |
335 | keybuffer_push(keybuffer,FUNCTION_KEYS | 10 ); |
355 | buf=count=0; |
336 | buf=count=0; |
356 | return 1; |
337 | return 1; |
357 | case GXEMUL_KEY_F11: |
338 | case GXEMUL_KEY_F11: |
358 | keybuffer_push(keybuffer,FUNCTION_KEYS | 11 ); |
339 | keybuffer_push(keybuffer,FUNCTION_KEYS | 11 ); |
359 | buf=count=0; |
340 | buf=count=0; |
360 | return 1; |
341 | return 1; |
361 | case GXEMUL_KEY_F12: |
342 | case GXEMUL_KEY_F12: |
362 | keybuffer_push(keybuffer,FUNCTION_KEYS | 12 ); |
343 | keybuffer_push(keybuffer,FUNCTION_KEYS | 12 ); |
363 | buf=count=0; |
344 | buf=count=0; |
364 | return 1; |
345 | return 1; |
365 | - | ||
366 | default: |
346 | default: |
367 | keybuffer_push(keybuffer, buf & 0xff ); |
347 | keybuffer_push(keybuffer, buf & 0xff ); |
368 | keybuffer_push(keybuffer, (buf >> 8) &0xff ); |
348 | keybuffer_push(keybuffer, (buf >> 8) &0xff ); |
369 | keybuffer_push(keybuffer, (buf >> 16) &0xff ); |
349 | keybuffer_push(keybuffer, (buf >> 16) &0xff ); |
370 | keybuffer_push(keybuffer, (buf >> 24) &0xff ); |
350 | keybuffer_push(keybuffer, (buf >> 24) &0xff ); |
371 | buf=count=0; |
351 | buf=count=0; |
372 | return 1; |
352 | return 1; |
373 | - | ||
374 | } |
353 | } |
375 | return 1; |
354 | return 1; |
376 | } |
355 | } |
377 | 356 | ||
378 | int kbd_arch_process(keybuffer_t *keybuffer, ipc_call_t *call) |
357 | int kbd_arch_process(keybuffer_t *keybuffer, ipc_call_t *call) |
379 | { |
358 | { |
380 | int scan_code = IPC_GET_ARG2(*call); |
359 | int scan_code = IPC_GET_ARG2(*call); |
381 | static int esc_count=0; |
360 | static int esc_count=0; |
382 | 361 | ||
383 | - | ||
384 | if ( scan_code == 0x1b ) { |
362 | if (scan_code == 0x1b) { |
385 | esc_count++; |
363 | esc_count++; |
386 | if ( esc_count == 3 ) { |
364 | if (esc_count == 3) |
387 | __SYSCALL0(SYS_DEBUG_ENABLE_CONSOLE); |
365 | __SYSCALL0(SYS_DEBUG_ENABLE_CONSOLE); |
388 | } |
- | |
389 | } else { |
366 | } else { |
390 | esc_count=0; |
367 | esc_count=0; |
391 | } |
368 | } |
392 | 369 | ||
393 | if(fb_fb) return kbd_arch_process_fb(keybuffer, scan_code); |
370 | if (fb_fb) |
394 | return kbd_arch_process_no_fb(keybuffer, scan_code); |
371 | return kbd_arch_process_fb(keybuffer, scan_code); |
395 | 372 | ||
396 | return 0; |
373 | return kbd_arch_process_no_fb(keybuffer, scan_code); |
397 | } |
374 | } |
398 | /** @} |
375 | /** @} |
399 | */ |
376 | */ |