Subversion Repositories HelenOS

Rev

Rev 1896 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1896 Rev 1911
Line 88... Line 88...
88
    stdin = &kbrd;
88
    stdin = &kbrd;
89
   
89
   
90
    sysinfo_set_item_val("kbd", NULL, true);
90
    sysinfo_set_item_val("kbd", NULL, true);
91
    sysinfo_set_item_val("kbd.irq", NULL, 0);
91
    sysinfo_set_item_val("kbd.irq", NULL, 0);
92
    sysinfo_set_item_val("kbd.address.virtual", NULL, (uintptr_t) kbd_virt_address);
92
    sysinfo_set_item_val("kbd.address.virtual", NULL, (uintptr_t) kbd_virt_address);
-
 
93
   
-
 
94
    ns16550_ier_write(IER_ERBFI);               /* enable receiver interrupt */
-
 
95
   
-
 
96
    while (ns16550_lsr_read() & LSR_DATA_READY)
-
 
97
        (void) ns16550_rbr_read();
93
}
98
}
94
 
99
 
95
/** Process ns16550 interrupt.
100
/** Process ns16550 interrupt.
96
 *
101
 *
97
 * @param n Interrupt vector.
102
 * @param n Interrupt vector.
Line 142... Line 147...
142
 */
147
 */
143
void ns16550_poll(void)
148
void ns16550_poll(void)
144
{
149
{
145
    uint8_t x;
150
    uint8_t x;
146
 
151
 
147
    while (((x = ns16550_lsr_read() & LSR_DATA_READY))) {
152
    while (ns16550_lsr_read() & LSR_DATA_READY) {
148
        x = ns16550_rbr_read();
153
        x = ns16550_rbr_read();
149
        if (x != IGNORE_CODE) {
154
        if (x != IGNORE_CODE) {
150
            if (x & KEY_RELEASE)
155
            if (x & KEY_RELEASE)
151
                key_released(x ^ KEY_RELEASE);
156
                key_released(x ^ KEY_RELEASE);
152
            else
157
            else