Rev 1569 | Rev 1649 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 1569 | Rev 1645 | ||
---|---|---|---|
Line 75... | Line 75... | ||
75 | 75 | ||
76 | int kbd_arch_process(keybuffer_t *keybuffer, int scan_code) |
76 | int kbd_arch_process(keybuffer_t *keybuffer, int scan_code) |
77 | { |
77 | { |
78 | static unsigned long long buf=0; |
78 | static unsigned long long buf=0; |
79 | static int count=0; |
79 | static int count=0; |
- | 80 | static int esc_count=0; |
|
80 | 81 | ||
81 | 82 | ||
82 | /* |
83 | /* |
83 | * Please preserve this code (it can be used to determine scancodes) |
84 | * Please preserve this code (it can be used to determine scancodes) |
84 | * |
- | |
85 | keybuffer_push(keybuffer, to_hex((scan_code>>4)&0xf)); |
- | |
86 | keybuffer_push(keybuffer, to_hex(scan_code&0xf)); |
- | |
87 | keybuffer_push(keybuffer, ' '); |
- | |
88 | keybuffer_push(keybuffer, ' '); |
- | |
89 | */ |
85 | */ |
- | 86 | //keybuffer_push(keybuffer, to_hex((scan_code>>4)&0xf)); |
|
- | 87 | //keybuffer_push(keybuffer, to_hex(scan_code&0xf)); |
|
- | 88 | //keybuffer_push(keybuffer, ' '); |
|
- | 89 | //keybuffer_push(keybuffer, ' '); |
|
- | 90 | //*/ |
|
90 | 91 | ||
91 | 92 | ||
92 | if (scan_code){ |
93 | if (scan_code){ |
93 | buf|=(unsigned long long) scan_code<<(8*(count++)); |
94 | buf|=(unsigned long long) scan_code<<(8*(count++)); |
94 | } else { |
95 | } else { |
- | 96 | ||
- | 97 | ||
- | 98 | if ( buf == 0x1b ) { |
|
- | 99 | esc_count++; |
|
- | 100 | if ( esc_count == 3 ) { |
|
- | 101 | __SYSCALL0(SYS_DEBUG_ENABLE_CONSOLE); |
|
- | 102 | } |
|
- | 103 | } else { |
|
- | 104 | esc_count=0; |
|
95 | 105 | } |
|
- | 106 | ||
96 | if ( ! ( buf & 0xff00 )) |
107 | if ( ! ( buf & 0xff00 )) |
97 | keybuffer_push(keybuffer, buf); |
108 | keybuffer_push(keybuffer, buf); |
98 | else { |
109 | else { |
99 | switch (buf){ |
110 | switch (buf){ |
100 | case KEY_F1: |
111 | case KEY_F1: |