Ignore:
File:
1 edited

Legend:

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

    rd9fae235 r57d129e  
    3636 */
    3737
    38 #include <ipc/ipc.h>
    3938#include <ipc/services.h>
    4039#include <ipc/kbd.h>
     
    6867static unsigned lock_keys;
    6968
    70 int cir_service = 0;
    71 int cir_phone = -1;
     69bool irc_service = false;
     70int irc_phone = -1;
    7271
    7372#define NUM_LAYOUTS 3
     
    173172        int retval;
    174173
    175         ipc_answer_0(iid, EOK);
     174        async_answer_0(iid, EOK);
    176175
    177176        while (1) {
    178177                callid = async_get_call(&call);
    179                 switch (IPC_GET_METHOD(call)) {
     178                switch (IPC_GET_IMETHOD(call)) {
    180179                case IPC_M_PHONE_HUNGUP:
    181180                        if (client_phone != -1) {
    182                                 ipc_hangup(client_phone);
     181                                async_hangup(client_phone);
    183182                                client_phone = -1;
    184183                        }
    185184                       
    186                         ipc_answer_0(callid, EOK);
     185                        async_answer_0(callid, EOK);
    187186                        return;
    188187                case IPC_M_CONNECT_TO_ME:
     
    205204                        retval = EINVAL;
    206205                }
    207                 ipc_answer_0(callid, retval);
     206                async_answer_0(callid, retval);
    208207        }       
    209208}
     
    217216        sysarg_t obio;
    218217       
    219         if ((sysinfo_get_value("kbd.cir.fhc", &fhc) == EOK) && (fhc))
    220                 cir_service = SERVICE_FHC;
    221         else if ((sysinfo_get_value("kbd.cir.obio", &obio) == EOK) && (obio))
    222                 cir_service = SERVICE_OBIO;
    223        
    224         if (cir_service) {
    225                 while (cir_phone < 0) {
    226                         cir_phone = ipc_connect_me_to_blocking(PHONE_NS, cir_service,
    227                             0, 0);
    228                 }
     218        if (((sysinfo_get_value("kbd.cir.fhc", &fhc) == EOK) && (fhc))
     219            || ((sysinfo_get_value("kbd.cir.obio", &obio) == EOK) && (obio)))
     220                irc_service = true;
     221       
     222        if (irc_service) {
     223                while (irc_phone < 0)
     224                        irc_phone = service_connect_blocking(SERVICE_IRC, 0, 0);
    229225        }
    230226       
     
    250246        snprintf(kbd, DEVMAP_NAME_MAXLEN, "%s/%s", NAMESPACE, NAME);
    251247       
    252         dev_handle_t dev_handle;
    253         if (devmap_device_register(kbd, &dev_handle) != EOK) {
     248        devmap_handle_t devmap_handle;
     249        if (devmap_device_register(kbd, &devmap_handle) != EOK) {
    254250                printf("%s: Unable to register device %s\n", NAME, kbd);
    255251                return -1;
Note: See TracChangeset for help on using the changeset viewer.