Changes in uspace/srv/ns/service.c [8a637a4:7b616e2] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/srv/ns/service.c
r8a637a4 r7b616e2 31 31 */ 32 32 33 #include <ipc/ipc.h>34 33 #include <adt/hash_table.h> 35 34 #include <assert.h> 35 #include <async.h> 36 36 #include <errno.h> 37 37 #include <stdio.h> … … 47 47 service_t service; 48 48 49 /** Phone registered with the interface */ 50 sysarg_t phone; 51 52 /** Incoming phone hash */ 53 sysarg_t in_phone_hash; 49 /** Session to the service */ 50 async_sess_t *sess; 54 51 } hashed_service_t; 55 52 … … 121 118 122 119 hashed_service_t *hashed_service = hash_table_get_inst(link, hashed_service_t, link); 123 (void) ipc_forward_fast(pending->callid, hashed_service->phone, 124 pending->iface, pending->arg3, 0, IPC_FF_NONE); 120 async_exch_t *exch = async_exchange_begin(hashed_service->sess); 121 async_forward_fast(pending->callid, exch, pending->iface, 122 pending->arg3, 0, IPC_FF_NONE); 123 async_exchange_end(exch); 125 124 126 125 list_remove(&pending->link); … … 151 150 152 151 hashed_service->service = service; 153 hashed_service->phone = phone; 154 hashed_service->in_phone_hash = call->in_phone_hash; 152 hashed_service->sess = async_callback_receive(EXCHANGE_SERIALIZE); 153 if (hashed_service->sess == NULL) 154 return EIO; 155 155 156 156 hash_table_insert(&service_hash_table, &hashed_service->link); 157 158 157 return EOK; 159 158 } … … 202 201 203 202 hashed_service_t *hashed_service = hash_table_get_inst(link, hashed_service_t, link); 204 (void) ipc_forward_fast(callid, hashed_service->phone, iface, arg3, 205 0, IPC_FF_NONE); 203 async_exch_t *exch = async_exchange_begin(hashed_service->sess); 204 async_forward_fast(callid, exch, iface, arg3, 0, IPC_FF_NONE); 205 async_exchange_end(exch); 206 206 return; 207 207 208 208 out: 209 if (!(callid & IPC_CALLID_NOTIFICATION)) 210 ipc_answer_0(callid, retval); 209 async_answer_0(callid, retval); 211 210 } 212 211
Note:
See TracChangeset
for help on using the changeset viewer.