Changeset bc117a5 in mainline for kernel/generic/src/ipc/sysipc.c
- Timestamp:
- 2016-08-29T12:43:10Z (8 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- c32b6f0
- Parents:
- 6d351e6
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/generic/src/ipc/sysipc.c
r6d351e6 rbc117a5 257 257 { 258 258 return SYSIPC_OP(request_process, call, box); 259 } 260 261 /** Make a call over IPC and wait for reply. 262 * 263 * @param phoneid Phone handle for the call. 264 * @param data[inout] Structure with request/reply data. 265 * 266 * @return EOK on success. 267 * @return ENOENT if there is no such phone handle. 268 * 269 */ 270 int ipc_req_internal(int phoneid, ipc_data_t *data) 271 { 272 phone_t *phone; 273 if (phone_get(phoneid, &phone) != EOK) 274 return ENOENT; 275 276 call_t *call = ipc_call_alloc(0); 277 memcpy(call->data.args, data->args, sizeof(data->args)); 278 279 int rc = request_preprocess(call, phone); 280 if (!rc) { 281 #ifdef CONFIG_UDEBUG 282 udebug_stoppable_begin(); 283 #endif 284 285 rc = ipc_call_sync(phone, call); 286 287 #ifdef CONFIG_UDEBUG 288 udebug_stoppable_end(); 289 #endif 290 291 if (rc != EOK) 292 return EINTR; 293 294 process_answer(call); 295 } else 296 IPC_SET_RETVAL(call->data, rc); 297 298 memcpy(data->args, call->data.args, sizeof(data->args)); 299 ipc_call_free(call); 300 301 return EOK; 259 302 } 260 303
Note:
See TracChangeset
for help on using the changeset viewer.