Rev 3896 | Rev 3908 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 3896 | Rev 3904 | ||
|---|---|---|---|
| Line 93... | Line 93... | ||
| 93 | 93 | ||
| 94 | /** Request for connection to a clonable service. */ |
94 | /** Request for connection to a clonable service. */ |
| 95 | typedef struct { |
95 | typedef struct { |
| 96 | link_t link; |
96 | link_t link; |
| 97 | ipcarg_t service; |
97 | ipcarg_t service; |
| 98 | ipc_call_t *call; |
98 | ipc_call_t call; |
| 99 | ipc_callid_t callid; |
99 | ipc_callid_t callid; |
| 100 | } cs_req_t; |
100 | } cs_req_t; |
| 101 | 101 | ||
| 102 | /** List of clonable-service connection requests. */ |
102 | /** List of clonable-service connection requests. */ |
| 103 | static link_t cs_req; |
103 | static link_t cs_req; |
| Line 286... | Line 286... | ||
| 286 | /* Currently we can only handle a single type of clonable service. */ |
286 | /* Currently we can only handle a single type of clonable service. */ |
| 287 | assert(csr->service == SERVICE_LOAD); |
287 | assert(csr->service == SERVICE_LOAD); |
| 288 | 288 | ||
| 289 | ipc_answer_0(callid, EOK); |
289 | ipc_answer_0(callid, EOK); |
| 290 | 290 | ||
| 291 | rc = ipc_forward_fast(csr->callid, phone, IPC_GET_ARG2(*csr->call), |
291 | rc = ipc_forward_fast(csr->callid, phone, IPC_GET_ARG2(csr->call), |
| 292 | IPC_GET_ARG3(*csr->call), 0, IPC_FF_NONE); |
292 | IPC_GET_ARG3(csr->call), 0, IPC_FF_NONE); |
| 293 | 293 | ||
| 294 | free(csr); |
294 | free(csr); |
| 295 | } |
295 | } |
| 296 | 296 | ||
| 297 | /** Connect client to clonable service. |
297 | /** Connect client to clonable service. |
| Line 324... | Line 324... | ||
| 324 | ipc_answer_0(callid, rc); |
324 | ipc_answer_0(callid, rc); |
| 325 | return; |
325 | return; |
| 326 | } |
326 | } |
| 327 | 327 | ||
| 328 | csr->service = service; |
328 | csr->service = service; |
| 329 | csr->call = call; |
329 | csr->call = *call; |
| 330 | csr->callid = callid; |
330 | csr->callid = callid; |
| 331 | 331 | ||
| 332 | /* |
332 | /* |
| 333 | * We can forward the call only after the server we spawned connects |
333 | * We can forward the call only after the server we spawned connects |
| 334 | * to us. Meanwhile we might need to service more connection requests. |
334 | * to us. Meanwhile we might need to service more connection requests. |