Rev 1500 | Rev 1552 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 1500 | Rev 1547 | ||
---|---|---|---|
Line 44... | Line 44... | ||
44 | return async_get_call_timeout(data, 0); |
44 | return async_get_call_timeout(data, 0); |
45 | } |
45 | } |
46 | 46 | ||
47 | aid_t async_send_2(int phoneid, ipcarg_t method, ipcarg_t arg1, ipcarg_t arg2, |
47 | aid_t async_send_2(int phoneid, ipcarg_t method, ipcarg_t arg1, ipcarg_t arg2, |
48 | ipc_call_t *dataptr); |
48 | ipc_call_t *dataptr); |
- | 49 | aid_t async_send_3(int phoneid, ipcarg_t method, ipcarg_t arg1, ipcarg_t arg2, |
|
- | 50 | ipcarg_t arg3, ipc_call_t *dataptr); |
|
49 | void async_wait_for(aid_t amsgid, ipcarg_t *result); |
51 | void async_wait_for(aid_t amsgid, ipcarg_t *result); |
50 | int async_wait_timeout(aid_t amsgid, ipcarg_t *retval, suseconds_t timeout); |
52 | int async_wait_timeout(aid_t amsgid, ipcarg_t *retval, suseconds_t timeout); |
51 | 53 | ||
52 | /** Pseudo-synchronous message sending |
54 | /** Pseudo-synchronous message sending |
53 | * |
55 | * |
Line 66... | Line 68... | ||
66 | *r1 = IPC_GET_ARG1(result); |
68 | *r1 = IPC_GET_ARG1(result); |
67 | if (r2) |
69 | if (r2) |
68 | *r2 = IPC_GET_ARG2(result); |
70 | *r2 = IPC_GET_ARG2(result); |
69 | return rc; |
71 | return rc; |
70 | } |
72 | } |
- | 73 | static inline ipcarg_t sync_send_3(int phoneid, ipcarg_t method, ipcarg_t arg1, |
|
- | 74 | ipcarg_t arg2, ipcarg_t arg3, ipcarg_t *r1, |
|
- | 75 | ipcarg_t *r2, ipcarg_t *r3) |
|
- | 76 | { |
|
- | 77 | ipc_call_t result; |
|
- | 78 | ipcarg_t rc; |
|
- | 79 | ||
- | 80 | aid_t eid = async_send_3(phoneid, method, arg1, arg2, arg3, &result); |
|
- | 81 | async_wait_for(eid, &rc); |
|
- | 82 | if (r1) |
|
- | 83 | *r1 = IPC_GET_ARG1(result); |
|
- | 84 | if (r2) |
|
- | 85 | *r2 = IPC_GET_ARG2(result); |
|
- | 86 | if (r3) |
|
- | 87 | *r3 = IPC_GET_ARG3(result); |
|
- | 88 | return rc; |
|
- | 89 | } |
|
71 | 90 | ||
72 | 91 | ||
73 | pstid_t async_new_connection(ipcarg_t in_phone_hash,ipc_callid_t callid, |
92 | pstid_t async_new_connection(ipcarg_t in_phone_hash,ipc_callid_t callid, |
74 | ipc_call_t *call, |
93 | ipc_call_t *call, |
75 | void (*cthread)(ipc_callid_t,ipc_call_t *)); |
94 | void (*cthread)(ipc_callid_t,ipc_call_t *)); |