Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/srv/hid/input/ctl/kbdev.c

    r3123d2a r9d58539  
    6868        /** Link to generic keyboard device */
    6969        kbd_dev_t *kbd_dev;
    70        
     70
    7171        /** Session with kbdev device */
    7272        async_sess_t *sess;
     
    7575static kbdev_t *kbdev_new(kbd_dev_t *kdev)
    7676{
    77         kbdev_t *kbdev = calloc(1, sizeof(kbdev_t));
     77        kbdev_t *kbdev;
     78
     79        kbdev = calloc(1, sizeof(kbdev_t));
    7880        if (kbdev == NULL)
    7981                return NULL;
    80        
     82
    8183        kbdev->kbd_dev = kdev;
    8284
     
    8890        if (kbdev->sess != NULL)
    8991                async_hangup(kbdev->sess);
    90        
    9192        free(kbdev);
    9293}
     
    9495static int kbdev_ctl_init(kbd_dev_t *kdev)
    9596{
    96         async_sess_t *sess = loc_service_connect(EXCHANGE_SERIALIZE,
    97             kdev->svc_id, 0);
     97        async_sess_t *sess;
     98        async_exch_t *exch;
     99        kbdev_t *kbdev;
     100        int rc;
     101
     102        sess = loc_service_connect(EXCHANGE_SERIALIZE, kdev->svc_id, 0);
    98103        if (sess == NULL) {
    99104                printf("%s: Failed starting session with '%s.'\n", NAME,
    100105                    kdev->svc_name);
    101                 return ENOENT;
     106                return -1;
    102107        }
    103        
    104         kbdev_t *kbdev = kbdev_new(kdev);
     108
     109        kbdev = kbdev_new(kdev);
    105110        if (kbdev == NULL) {
    106111                printf("%s: Failed allocating device structure for '%s'.\n",
    107112                    NAME, kdev->svc_name);
    108113                async_hangup(sess);
    109                 return ENOMEM;
     114                return -1;
    110115        }
    111        
     116
    112117        kbdev->sess = sess;
    113        
    114         async_exch_t *exch = async_exchange_begin(sess);
     118
     119        exch = async_exchange_begin(sess);
    115120        if (exch == NULL) {
    116121                printf("%s: Failed starting exchange with '%s'.\n", NAME,
    117122                    kdev->svc_name);
    118123                kbdev_destroy(kbdev);
    119                 return ENOENT;
     124                return -1;
    120125        }
    121        
    122         int rc = async_connect_to_me(exch, 0, 0, 0, kbdev_callback_conn, kbdev);
     126
     127        rc = async_connect_to_me(exch, 0, 0, 0, kbdev_callback_conn, kbdev);
    123128        if (rc != EOK) {
    124129                printf("%s: Failed creating callback connection from '%s'.\n",
     
    126131                async_exchange_end(exch);
    127132                kbdev_destroy(kbdev);
    128                 return rc;
     133                return -1;
    129134        }
    130        
     135
    131136        async_exchange_end(exch);
    132        
     137
    133138        kdev->ctl_private = (void *) kbdev;
    134139        return 0;
     
    137142static void kbdev_ctl_set_ind(kbd_dev_t *kdev, unsigned mods)
    138143{
    139         async_sess_t *sess = ((kbdev_t *) kdev->ctl_private)->sess;
    140         async_exch_t *exch = async_exchange_begin(sess);
     144        async_sess_t *sess;
     145        async_exch_t *exch;
     146
     147        sess = ((kbdev_t *) kdev->ctl_private)->sess;
     148
     149        exch = async_exchange_begin(sess);
    141150        if (!exch)
    142151                return;
    143        
     152
    144153        async_msg_1(exch, KBDEV_SET_IND, mods);
    145154        async_exchange_end(exch);
Note: See TracChangeset for help on using the changeset viewer.