Changes in uspace/srv/hid/input/generic/input.c [5da7199:99ac5cf] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/srv/hid/input/generic/input.c
r5da7199 r99ac5cf 47 47 #include <stdio.h> 48 48 #include <ns.h> 49 #include <ns_obsolete.h> 49 50 #include <async.h> 51 #include <async_obsolete.h> 50 52 #include <errno.h> 51 53 #include <adt/fifo.h> … … 61 63 #include <mouse.h> 62 64 65 // FIXME: remove this header 66 #include <abi/ipc/methods.h> 67 63 68 #define NUM_LAYOUTS 3 64 69 … … 72 77 static void kbd_devs_reclaim(void); 73 78 74 async_sess_t *client_sess = NULL;79 int client_phone = -1; 75 80 76 81 /** List of keyboard devices */ … … 81 86 82 87 bool irc_service = false; 83 async_sess_t *irc_sess = NULL;88 int irc_phone = -1; 84 89 85 90 void kbd_push_data(kbd_dev_t *kdev, sysarg_t data) … … 165 170 166 171 ev.c = layout_parse_ev(kdev->active_layout, &ev); 167 168 async_exch_t *exch = async_exchange_begin(client_sess); 169 async_msg_4(exch, INPUT_EVENT_KEY, ev.type, ev.key, ev.mods, ev.c); 170 async_exchange_end(exch); 172 async_obsolete_msg_4(client_phone, INPUT_EVENT_KEY, ev.type, ev.key, 173 ev.mods, ev.c); 171 174 } 172 175 … … 174 177 void mouse_push_event_move(mouse_dev_t *mdev, int dx, int dy) 175 178 { 176 async_exch_t *exch = async_exchange_begin(client_sess); 177 async_msg_2(exch, INPUT_EVENT_MOVE, dx, dy); 178 async_exchange_end(exch); 179 async_obsolete_msg_2(client_phone, INPUT_EVENT_MOVE, dx, dy); 179 180 } 180 181 … … 182 183 void mouse_push_event_button(mouse_dev_t *mdev, int bnum, int press) 183 184 { 184 async_exch_t *exch = async_exchange_begin(client_sess); 185 async_msg_2(exch, INPUT_EVENT_BUTTON, bnum, press); 186 async_exchange_end(exch); 185 async_obsolete_msg_2(client_phone, INPUT_EVENT_BUTTON, bnum, press); 187 186 } 188 187 189 188 static void client_connection(ipc_callid_t iid, ipc_call_t *icall, void *arg) 190 189 { 190 ipc_callid_t callid; 191 ipc_call_t call; 192 int retval; 193 191 194 async_answer_0(iid, EOK); 192 195 193 196 while (true) { 194 ipc_call_t call; 195 ipc_callid_t callid = async_get_call(&call); 197 callid = async_get_call(&call); 196 198 197 199 if (!IPC_GET_IMETHOD(call)) { 198 if (client_ sess != NULL) {199 async_ hangup(client_sess);200 client_ sess = NULL;200 if (client_phone != -1) { 201 async_obsolete_hangup(client_phone); 202 client_phone = -1; 201 203 } 202 204 … … 205 207 } 206 208 207 async_sess_t *sess = 208 async_callback_receive_start(EXCHANGE_SERIALIZE, &call); 209 if (sess != NULL) { 210 if (client_sess == NULL) { 211 client_sess = sess; 212 async_answer_0(callid, EOK); 213 } else 214 async_answer_0(callid, ELIMIT); 215 } else { 216 switch (IPC_GET_IMETHOD(call)) { 217 case INPUT_YIELD: 218 kbd_devs_yield(); 219 async_answer_0(callid, EOK); 209 switch (IPC_GET_IMETHOD(call)) { 210 case IPC_M_CONNECT_TO_ME: 211 if (client_phone != -1) { 212 retval = ELIMIT; 220 213 break; 221 case INPUT_RECLAIM:222 kbd_devs_reclaim();223 async_answer_0(callid, EOK);224 break;225 default:226 async_answer_0(callid, EINVAL);227 214 } 215 client_phone = IPC_GET_ARG5(call); 216 retval = 0; 217 break; 218 case INPUT_YIELD: 219 kbd_devs_yield(); 220 retval = 0; 221 break; 222 case INPUT_RECLAIM: 223 kbd_devs_reclaim(); 224 retval = 0; 225 break; 226 default: 227 retval = EINVAL; 228 228 } 229 230 async_answer_0(callid, retval); 229 231 } 230 232 } … … 646 648 647 649 if (irc_service) { 648 while (irc_sess == NULL) 649 irc_sess = service_connect_blocking(EXCHANGE_SERIALIZE, 650 SERVICE_IRC, 0, 0); 650 while (irc_phone < 0) 651 irc_phone = service_obsolete_connect_blocking(SERVICE_IRC, 0, 0); 651 652 } 652 653
Note:
See TracChangeset
for help on using the changeset viewer.