Changes in uspace/srv/hid/input/ctl/kbdev.c [3123d2a:9d58539] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/srv/hid/input/ctl/kbdev.c
r3123d2a r9d58539 68 68 /** Link to generic keyboard device */ 69 69 kbd_dev_t *kbd_dev; 70 70 71 71 /** Session with kbdev device */ 72 72 async_sess_t *sess; … … 75 75 static kbdev_t *kbdev_new(kbd_dev_t *kdev) 76 76 { 77 kbdev_t *kbdev = calloc(1, sizeof(kbdev_t)); 77 kbdev_t *kbdev; 78 79 kbdev = calloc(1, sizeof(kbdev_t)); 78 80 if (kbdev == NULL) 79 81 return NULL; 80 82 81 83 kbdev->kbd_dev = kdev; 82 84 … … 88 90 if (kbdev->sess != NULL) 89 91 async_hangup(kbdev->sess); 90 91 92 free(kbdev); 92 93 } … … 94 95 static int kbdev_ctl_init(kbd_dev_t *kdev) 95 96 { 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); 98 103 if (sess == NULL) { 99 104 printf("%s: Failed starting session with '%s.'\n", NAME, 100 105 kdev->svc_name); 101 return ENOENT;106 return -1; 102 107 } 103 104 kbdev _t *kbdev= kbdev_new(kdev);108 109 kbdev = kbdev_new(kdev); 105 110 if (kbdev == NULL) { 106 111 printf("%s: Failed allocating device structure for '%s'.\n", 107 112 NAME, kdev->svc_name); 108 113 async_hangup(sess); 109 return ENOMEM;114 return -1; 110 115 } 111 116 112 117 kbdev->sess = sess; 113 114 async_exch_t *exch = async_exchange_begin(sess);118 119 exch = async_exchange_begin(sess); 115 120 if (exch == NULL) { 116 121 printf("%s: Failed starting exchange with '%s'.\n", NAME, 117 122 kdev->svc_name); 118 123 kbdev_destroy(kbdev); 119 return ENOENT;124 return -1; 120 125 } 121 122 intrc = 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); 123 128 if (rc != EOK) { 124 129 printf("%s: Failed creating callback connection from '%s'.\n", … … 126 131 async_exchange_end(exch); 127 132 kbdev_destroy(kbdev); 128 return rc;133 return -1; 129 134 } 130 135 131 136 async_exchange_end(exch); 132 137 133 138 kdev->ctl_private = (void *) kbdev; 134 139 return 0; … … 137 142 static void kbdev_ctl_set_ind(kbd_dev_t *kdev, unsigned mods) 138 143 { 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); 141 150 if (!exch) 142 151 return; 143 152 144 153 async_msg_1(exch, KBDEV_SET_IND, mods); 145 154 async_exchange_end(exch);
Note:
See TracChangeset
for help on using the changeset viewer.