Rev 1518 | Rev 1610 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 1518 | Rev 1560 | ||
---|---|---|---|
Line 89... | Line 89... | ||
89 | retval = 0; |
89 | retval = 0; |
90 | break; |
90 | break; |
91 | 91 | ||
92 | case IPC_M_INTERRUPT: |
92 | case IPC_M_INTERRUPT: |
93 | if (connected) { |
93 | if (connected) { |
- | 94 | int chr; |
|
94 | /* recode to ASCII - one interrupt can produce more than one code so result is stored in fifo */ |
95 | /* recode to ASCII - one interrupt can produce more than one code so result is stored in fifo */ |
95 | kbd_arch_process(&keybuffer, IPC_GET_ARG2(call)); |
96 | kbd_arch_process(&keybuffer, IPC_GET_ARG2(call)); |
96 | 97 | ||
97 | retval = 0; |
98 | retval = 0; |
- | 99 | ||
98 | 100 | ||
99 | while (!keybuffer_empty(&keybuffer)) { |
101 | while (!keybuffer_empty(&keybuffer)) { |
100 | if (!keybuffer_pop(&keybuffer, (char *)&arg1)) { |
102 | if (!keybuffer_pop(&keybuffer, (int *)&chr)) { |
101 | break; |
103 | break; |
102 | } |
104 | } |
- | 105 | { |
|
- | 106 | arg1=chr; |
|
103 | send_call(phoneid, KBD_PUSHCHAR, arg1); |
107 | send_call(phoneid, KBD_PUSHCHAR, arg1); |
- | 108 | } |
|
104 | } |
109 | } |
105 | 110 | ||
106 | } |
111 | } |
107 | break; |
112 | break; |
108 | default: |
113 | default: |