Changes in uspace/lib/c/generic/devman.c [1db5669:4c9b28a] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/c/generic/devman.c
r1db5669 r4c9b28a 1 1 /* 2 2 * Copyright (c) 2007 Josef Cejka 3 * Copyright (c) 201 1Jiri Svoboda3 * Copyright (c) 2013 Jiri Svoboda 4 4 * Copyright (c) 2010 Lenka Trochtova 5 5 * All rights reserved. … … 401 401 } 402 402 403 static int devman_get_str_internal(sysarg_t method, sysarg_t arg1, char *buf,404 s ize_t buf_size)403 static int devman_get_str_internal(sysarg_t method, sysarg_t arg1, 404 sysarg_t arg2, sysarg_t *r1, char *buf, size_t buf_size) 405 405 { 406 406 async_exch_t *exch; … … 412 412 413 413 ipc_call_t answer; 414 aid_t req = async_send_ 1(exch, method, arg1, &answer);414 aid_t req = async_send_2(exch, method, arg1, arg2, &answer); 415 415 aid_t dreq = async_data_read(exch, buf, buf_size - 1, &dreply); 416 416 async_wait_for(dreq, &dretval); … … 430 430 } 431 431 432 if (r1 != NULL) 433 *r1 = IPC_GET_ARG1(answer); 432 434 act_size = IPC_GET_ARG2(dreply); 433 435 assert(act_size <= buf_size - 1); … … 439 441 int devman_fun_get_path(devman_handle_t handle, char *buf, size_t buf_size) 440 442 { 441 return devman_get_str_internal(DEVMAN_FUN_GET_PATH, handle, buf, 442 buf_size); 443 return devman_get_str_internal(DEVMAN_FUN_GET_PATH, handle, 0, NULL, 444 buf, buf_size); 445 } 446 447 int devman_fun_get_match_id(devman_handle_t handle, size_t index, char *buf, 448 size_t buf_size, unsigned int *rscore) 449 { 450 int rc; 451 sysarg_t score = 0; 452 453 rc = devman_get_str_internal(DEVMAN_FUN_GET_MATCH_ID, handle, index, 454 &score, buf, buf_size); 455 if (rc != EOK) 456 return rc; 457 458 *rscore = score; 459 return rc; 443 460 } 444 461 445 462 int devman_fun_get_name(devman_handle_t handle, char *buf, size_t buf_size) 446 463 { 447 return devman_get_str_internal(DEVMAN_FUN_GET_NAME, handle, buf,448 buf _size);464 return devman_get_str_internal(DEVMAN_FUN_GET_NAME, handle, 0, NULL, 465 buf, buf_size); 449 466 } 450 467 451 468 int devman_fun_get_driver_name(devman_handle_t handle, char *buf, size_t buf_size) 452 469 { 453 return devman_get_str_internal(DEVMAN_FUN_GET_DRIVER_NAME, handle, buf,454 buf_size);470 return devman_get_str_internal(DEVMAN_FUN_GET_DRIVER_NAME, handle, 0, 471 NULL, buf, buf_size); 455 472 } 456 473 … … 653 670 } 654 671 672 int devman_driver_get_match_id(devman_handle_t handle, size_t index, char *buf, 673 size_t buf_size, unsigned int *rscore) 674 { 675 int rc; 676 sysarg_t score = 0; 677 678 rc = devman_get_str_internal(DEVMAN_DRIVER_GET_MATCH_ID, handle, index, 679 &score, buf, buf_size); 680 if (rc != EOK) 681 return rc; 682 683 *rscore = score; 684 return rc; 685 } 686 655 687 int devman_driver_get_name(devman_handle_t handle, char *buf, size_t buf_size) 656 688 { 657 return devman_get_str_internal(DEVMAN_DRIVER_GET_NAME, handle, buf,658 buf _size);689 return devman_get_str_internal(DEVMAN_DRIVER_GET_NAME, handle, 0, NULL, 690 buf, buf_size); 659 691 } 660 692
Note:
See TracChangeset
for help on using the changeset viewer.