Changes in kernel/generic/src/ipc/sysipc.c [072607b:09024119] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/generic/src/ipc/sysipc.c
r072607b r09024119 106 106 { 107 107 switch (imethod) { 108 case IPC_M_PAGE_IN:109 108 case IPC_M_SHARE_OUT: 110 109 case IPC_M_SHARE_IN: … … 138 137 case IPC_M_CONNECT_TO_ME: 139 138 case IPC_M_CONNECT_ME_TO: 140 case IPC_M_PAGE_IN:141 139 case IPC_M_SHARE_OUT: 142 140 case IPC_M_SHARE_IN: … … 259 257 { 260 258 return SYSIPC_OP(request_process, call, box); 261 }262 263 /** Make a call over IPC and wait for reply.264 *265 * @param phoneid Phone handle for the call.266 * @param data[inout] Structure with request/reply data.267 *268 * @return EOK on success.269 * @return ENOENT if there is no such phone handle.270 *271 */272 int ipc_req_internal(int phoneid, ipc_data_t *data)273 {274 phone_t *phone;275 if (phone_get(phoneid, &phone) != EOK)276 return ENOENT;277 278 call_t *call = ipc_call_alloc(0);279 memcpy(call->data.args, data->args, sizeof(data->args));280 281 int rc = request_preprocess(call, phone);282 if (!rc) {283 #ifdef CONFIG_UDEBUG284 udebug_stoppable_begin();285 #endif286 287 rc = ipc_call_sync(phone, call);288 289 #ifdef CONFIG_UDEBUG290 udebug_stoppable_end();291 #endif292 293 if (rc != EOK)294 return EINTR;295 296 process_answer(call);297 } else298 IPC_SET_RETVAL(call->data, rc);299 300 memcpy(data->args, call->data.args, sizeof(data->args));301 ipc_call_free(call);302 303 return EOK;304 259 } 305 260
Note:
See TracChangeset
for help on using the changeset viewer.