Changeset fa09449 in mainline for uspace/srv/kbd/generic/kbd.c


Ignore:
Timestamp:
2009-02-15T22:31:07Z (15 years ago)
Author:
Jiri Svoboda <jirik.svoboda@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
6cd9aa6
Parents:
76dd25b
Message:

Keycodes, keyboard events, kbd_event_get(). Keyboard driver now (formally) produces kbd events (press/release, keycode, mods, char) instead of just characters. In reality, the driver and client are only hacked to work with the new interface atm.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/srv/kbd/generic/kbd.c

    r76dd25b rfa09449  
    4343#include <stdio.h>
    4444#include <ipc/ns.h>
     45#include <async.h>
    4546#include <errno.h>
     47#include <libadt/fifo.h>
     48#include <kbd/kbd.h>
     49
    4650#include <arch/kbd.h>
    4751#include <kbd.h>
    48 #include <libadt/fifo.h>
    4952#include <key_buffer.h>
    50 #include <async.h>
    5153#include <keys.h>
    5254
     
    5961static void irq_handler(ipc_callid_t iid, ipc_call_t *call)
    6062{
    61         int chr;
     63        kbd_event_t ev;
    6264
    6365#ifdef MOUSE_ENABLED
     
    7072        if (cons_connected && phone2cons != -1) {
    7173                /*
    72                  * recode to ASCII - one interrupt can produce more than one
    73                  * code so result is stored in fifo
     74                 * One interrupt can produce more than one event so the result
     75                 * is stored in a FIFO.
    7476                 */
    7577                while (!keybuffer_empty(&keybuffer)) {
    76                         if (!keybuffer_pop(&keybuffer, (int *)&chr))
     78                        if (!keybuffer_pop(&keybuffer, &ev))
    7779                                break;
    7880
    79                         async_msg_1(phone2cons, KBD_PUSHCHAR, chr);
     81                        async_msg_4(phone2cons, KBD_EVENT, ev.type, ev.key,
     82                            ev.mods, ev.c);
    8083                }
    8184        }
Note: See TracChangeset for help on using the changeset viewer.