Changeset d73942c in mainline for libipc/generic/ipc.c
- Timestamp:
- 2006-03-15T11:45:03Z (19 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 55cff86
- Parents:
- 936351c1
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
libipc/generic/ipc.c
r936351c1 rd73942c 83 83 IPC_SET_ARG3(data, arg3); 84 84 85 callres = __SYSCALL2(SYS_IPC_CALL_SYNC, phoneid, (sysarg_t)&data); 85 callres = __SYSCALL3(SYS_IPC_CALL_SYNC, phoneid, (sysarg_t)&data, 86 (sysarg_t)&data); 86 87 if (callres) 87 88 return callres; … … 122 123 if (callid == IPC_CALLRET_FATAL) { 123 124 /* Call asynchronous handler with error code */ 124 IPC_SET_RETVAL(call->u.msg.data, ENOENT);125 125 callback(private, ENOENT, NULL); 126 126 free(call); … … 151 151 ipcarg_t arg2) 152 152 { 153 __SYSCALL4(SYS_IPC_ANSWER , callid, retval, arg1, arg2);153 __SYSCALL4(SYS_IPC_ANSWER_FAST, callid, retval, arg1, arg2); 154 154 } 155 155 156 156 157 157 /** Call syscall function sys_ipc_wait_for_call */ 158 static inline ipc_callid_t _ipc_wait_for_call(ipc_data_t *data, int flags) 159 { 160 return __SYSCALL2(SYS_IPC_WAIT, (sysarg_t)data, flags); 158 static inline ipc_callid_t _ipc_wait_for_call(ipc_call_t *call, int flags) 159 { 160 return __SYSCALL3(SYS_IPC_WAIT, (sysarg_t)&call->data, 161 (sysarg_t)&call->taskid, flags); 161 162 } 162 163 … … 221 222 * IPC_WAIT_NONBLOCKING 222 223 */ 223 int ipc_wait_for_call(ipc_ data_t *data, int flags)224 int ipc_wait_for_call(ipc_call_t *call, int flags) 224 225 { 225 226 ipc_callid_t callid; … … 228 229 try_dispatch_queued_calls(); 229 230 230 callid = _ipc_wait_for_call( data, flags);231 callid = _ipc_wait_for_call(call, flags); 231 232 /* Handle received answers */ 232 233 if (callid & IPC_CALLID_ANSWERED) 233 handle_answer(callid, data);234 handle_answer(callid, &call->data); 234 235 } while (callid & IPC_CALLID_ANSWERED); 235 236
Note:
See TracChangeset
for help on using the changeset viewer.