Changes in uspace/lib/c/generic/devman.c [431d6d6:e72fb34] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/c/generic/devman.c
r431d6d6 re72fb34 374 374 } 375 375 376 int devman_get_device_path(devman_handle_t handle, char *path, size_t path_size)377 {378 int phone = devman_get_phone(DEVMAN_CLIENT, 0);379 380 if (phone < 0)381 return phone;382 383 async_serialize_start();384 385 ipc_call_t answer;386 aid_t req = async_send_1(phone, DEVMAN_DEVICE_GET_DEVICE_PATH,387 handle, &answer);388 389 ipc_call_t data_request_call;390 aid_t data_request = async_data_read(phone, path, path_size,391 &data_request_call);392 if (data_request == 0) {393 async_wait_for(req, NULL);394 async_serialize_end();395 return ENOMEM;396 }397 398 sysarg_t data_request_rc;399 sysarg_t opening_request_rc;400 async_wait_for(data_request, &data_request_rc);401 async_wait_for(req, &opening_request_rc);402 403 async_serialize_end();404 405 if (data_request_rc != EOK) {406 /* Prefer the return code of the opening request. */407 if (opening_request_rc != EOK) {408 return (int) opening_request_rc;409 } else {410 return (int) data_request_rc;411 }412 }413 if (opening_request_rc != EOK) {414 return (int) opening_request_rc;415 }416 417 path[path_size - 1] = 0;418 419 if (IPC_GET_ARG2(data_request_call) >= path_size) {420 return ELIMIT;421 }422 423 return EOK;424 }425 426 376 427 377 /** @}
Note:
See TracChangeset
for help on using the changeset viewer.