Changeset 984a9ba in mainline for uspace/srv/devman/client_conn.c
- Timestamp:
- 2018-07-05T09:34:09Z (6 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 63d46341
- Parents:
- 76f566d
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/srv/devman/client_conn.c
r76f566d r984a9ba 62 62 * device tree. 63 63 */ 64 static void devman_function_get_handle( cap_call_handle_t icall_handle,ipc_call_t *icall)64 static void devman_function_get_handle(ipc_call_t *icall) 65 65 { 66 66 char *pathname; … … 69 69 errno_t rc = async_data_write_accept((void **) &pathname, true, 0, 0, 0, 0); 70 70 if (rc != EOK) { 71 async_answer_0(icall _handle, rc);71 async_answer_0(icall, rc); 72 72 return; 73 73 } … … 78 78 79 79 if (fun == NULL) { 80 async_answer_0(icall _handle, ENOENT);80 async_answer_0(icall, ENOENT); 81 81 return; 82 82 } … … 87 87 if (fun->state == FUN_REMOVED) { 88 88 fibril_rwlock_read_unlock(&device_tree.rwlock); 89 async_answer_0(icall _handle, ENOENT);89 async_answer_0(icall, ENOENT); 90 90 return; 91 91 } … … 97 97 fun_del_ref(fun); 98 98 99 async_answer_1(icall _handle, EOK, handle);99 async_answer_1(icall, EOK, handle); 100 100 } 101 101 102 102 /** Get device match ID. */ 103 static void devman_fun_get_match_id( cap_call_handle_t icall_handle,ipc_call_t *icall)103 static void devman_fun_get_match_id(ipc_call_t *icall) 104 104 { 105 105 devman_handle_t handle = IPC_GET_ARG1(*icall); … … 109 109 fun_node_t *fun = find_fun_node(&device_tree, handle); 110 110 if (fun == NULL) { 111 async_answer_0(icall _handle, ENOMEM);112 return; 113 } 114 115 cap_call_handle_t data_chandle;111 async_answer_0(icall, ENOMEM); 112 return; 113 } 114 115 ipc_call_t data; 116 116 size_t data_len; 117 if (!async_data_read_receive(&data _chandle, &data_len)) {118 async_answer_0(icall _handle, EINVAL);117 if (!async_data_read_receive(&data, &data_len)) { 118 async_answer_0(icall, EINVAL); 119 119 fun_del_ref(fun); 120 120 return; … … 123 123 buffer = malloc(data_len); 124 124 if (buffer == NULL) { 125 async_answer_0( data_chandle, ENOMEM);126 async_answer_0(icall _handle, ENOMEM);125 async_answer_0(&data, ENOMEM); 126 async_answer_0(icall, ENOMEM); 127 127 fun_del_ref(fun); 128 128 return; … … 146 146 } 147 147 148 async_data_read_finalize( data_chandle, mid->id, sent_length);149 async_answer_1(icall _handle, EOK, mid->score);148 async_data_read_finalize(&data, mid->id, sent_length); 149 async_answer_1(icall, EOK, mid->score); 150 150 151 151 fibril_rwlock_read_unlock(&device_tree.rwlock); … … 158 158 free(buffer); 159 159 160 async_answer_0( data_chandle, ENOENT);161 async_answer_0(icall _handle, ENOENT);160 async_answer_0(&data, ENOENT); 161 async_answer_0(icall, ENOENT); 162 162 fun_del_ref(fun); 163 163 } 164 164 165 165 /** Get device name. */ 166 static void devman_fun_get_name( cap_call_handle_t icall_handle,ipc_call_t *icall)166 static void devman_fun_get_name(ipc_call_t *icall) 167 167 { 168 168 devman_handle_t handle = IPC_GET_ARG1(*icall); … … 170 170 fun_node_t *fun = find_fun_node(&device_tree, handle); 171 171 if (fun == NULL) { 172 async_answer_0(icall _handle, ENOMEM);173 return; 174 } 175 176 cap_call_handle_t data_chandle;172 async_answer_0(icall, ENOMEM); 173 return; 174 } 175 176 ipc_call_t data; 177 177 size_t data_len; 178 if (!async_data_read_receive(&data _chandle, &data_len)) {179 async_answer_0(icall _handle, EINVAL);178 if (!async_data_read_receive(&data, &data_len)) { 179 async_answer_0(icall, EINVAL); 180 180 fun_del_ref(fun); 181 181 return; … … 184 184 void *buffer = malloc(data_len); 185 185 if (buffer == NULL) { 186 async_answer_0( data_chandle, ENOMEM);187 async_answer_0(icall _handle, ENOMEM);186 async_answer_0(&data, ENOMEM); 187 async_answer_0(icall, ENOMEM); 188 188 fun_del_ref(fun); 189 189 return; … … 197 197 free(buffer); 198 198 199 async_answer_0( data_chandle, ENOENT);200 async_answer_0(icall _handle, ENOENT);199 async_answer_0(&data, ENOENT); 200 async_answer_0(icall, ENOENT); 201 201 fun_del_ref(fun); 202 202 return; … … 208 208 } 209 209 210 async_data_read_finalize( data_chandle, fun->name, sent_length);211 async_answer_0(icall _handle, EOK);210 async_data_read_finalize(&data, fun->name, sent_length); 211 async_answer_0(icall, EOK); 212 212 213 213 fibril_rwlock_read_unlock(&device_tree.rwlock); … … 217 217 218 218 /** Get function driver name. */ 219 static void devman_fun_get_driver_name( cap_call_handle_t icall_handle,ipc_call_t *icall)219 static void devman_fun_get_driver_name(ipc_call_t *icall) 220 220 { 221 221 devman_handle_t handle = IPC_GET_ARG1(*icall); … … 223 223 fun_node_t *fun = find_fun_node(&device_tree, handle); 224 224 if (fun == NULL) { 225 async_answer_0(icall _handle, ENOMEM);226 return; 227 } 228 229 cap_call_handle_t data_chandle;225 async_answer_0(icall, ENOMEM); 226 return; 227 } 228 229 ipc_call_t data; 230 230 size_t data_len; 231 if (!async_data_read_receive(&data _chandle, &data_len)) {232 async_answer_0(icall _handle, EINVAL);231 if (!async_data_read_receive(&data, &data_len)) { 232 async_answer_0(icall, EINVAL); 233 233 fun_del_ref(fun); 234 234 return; … … 237 237 void *buffer = malloc(data_len); 238 238 if (buffer == NULL) { 239 async_answer_0( data_chandle, ENOMEM);240 async_answer_0(icall _handle, ENOMEM);239 async_answer_0(&data, ENOMEM); 240 async_answer_0(icall, ENOMEM); 241 241 fun_del_ref(fun); 242 242 return; … … 250 250 free(buffer); 251 251 252 async_answer_0( data_chandle, ENOENT);253 async_answer_0(icall _handle, ENOENT);252 async_answer_0(&data, ENOENT); 253 async_answer_0(icall, ENOENT); 254 254 fun_del_ref(fun); 255 255 return; … … 261 261 free(buffer); 262 262 263 async_answer_0( data_chandle, EINVAL);264 async_answer_0(icall _handle, EINVAL);263 async_answer_0(&data, EINVAL); 264 async_answer_0(icall, EINVAL); 265 265 fun_del_ref(fun); 266 266 return; … … 272 272 } 273 273 274 async_data_read_finalize( data_chandle, fun->child->drv->name,274 async_data_read_finalize(&data, fun->child->drv->name, 275 275 sent_length); 276 async_answer_0(icall _handle, EOK);276 async_answer_0(icall, EOK); 277 277 278 278 fibril_rwlock_read_unlock(&device_tree.rwlock); … … 282 282 283 283 /** Get device path. */ 284 static void devman_fun_get_path( cap_call_handle_t icall_handle,ipc_call_t *icall)284 static void devman_fun_get_path(ipc_call_t *icall) 285 285 { 286 286 devman_handle_t handle = IPC_GET_ARG1(*icall); … … 288 288 fun_node_t *fun = find_fun_node(&device_tree, handle); 289 289 if (fun == NULL) { 290 async_answer_0(icall _handle, ENOMEM);291 return; 292 } 293 294 cap_call_handle_t data_chandle;290 async_answer_0(icall, ENOMEM); 291 return; 292 } 293 294 ipc_call_t data; 295 295 size_t data_len; 296 if (!async_data_read_receive(&data _chandle, &data_len)) {297 async_answer_0(icall _handle, EINVAL);296 if (!async_data_read_receive(&data, &data_len)) { 297 async_answer_0(icall, EINVAL); 298 298 fun_del_ref(fun); 299 299 return; … … 302 302 void *buffer = malloc(data_len); 303 303 if (buffer == NULL) { 304 async_answer_0( data_chandle, ENOMEM);305 async_answer_0(icall _handle, ENOMEM);304 async_answer_0(&data, ENOMEM); 305 async_answer_0(icall, ENOMEM); 306 306 fun_del_ref(fun); 307 307 return; … … 315 315 free(buffer); 316 316 317 async_answer_0( data_chandle, ENOENT);318 async_answer_0(icall _handle, ENOENT);317 async_answer_0(&data, ENOENT); 318 async_answer_0(icall, ENOENT); 319 319 fun_del_ref(fun); 320 320 return; … … 326 326 } 327 327 328 async_data_read_finalize( data_chandle, fun->pathname, sent_length);329 async_answer_0(icall _handle, EOK);328 async_data_read_finalize(&data, fun->pathname, sent_length); 329 async_answer_0(icall, EOK); 330 330 331 331 fibril_rwlock_read_unlock(&device_tree.rwlock); … … 335 335 336 336 /** Get handle for parent function of a device. */ 337 static void devman_dev_get_parent( cap_call_handle_t icall_handle,ipc_call_t *icall)337 static void devman_dev_get_parent(ipc_call_t *icall) 338 338 { 339 339 dev_node_t *dev; … … 344 344 if (dev == NULL || dev->state == DEVICE_REMOVED) { 345 345 fibril_rwlock_read_unlock(&device_tree.rwlock); 346 async_answer_0(icall _handle, ENOENT);346 async_answer_0(icall, ENOENT); 347 347 return; 348 348 } … … 350 350 if (dev->pfun == NULL) { 351 351 fibril_rwlock_read_unlock(&device_tree.rwlock); 352 async_answer_0(icall _handle, ENOENT);353 return; 354 } 355 356 async_answer_1(icall _handle, EOK, dev->pfun->handle);357 358 fibril_rwlock_read_unlock(&device_tree.rwlock); 359 } 360 361 static void devman_dev_get_functions( cap_call_handle_t icall_handle,ipc_call_t *icall)362 { 363 cap_call_handle_t chandle;352 async_answer_0(icall, ENOENT); 353 return; 354 } 355 356 async_answer_1(icall, EOK, dev->pfun->handle); 357 358 fibril_rwlock_read_unlock(&device_tree.rwlock); 359 } 360 361 static void devman_dev_get_functions(ipc_call_t *icall) 362 { 363 ipc_call_t call; 364 364 size_t size; 365 365 size_t act_size; 366 366 errno_t rc; 367 367 368 if (!async_data_read_receive(&c handle, &size)) {369 async_answer_0( chandle, EREFUSED);370 async_answer_0(icall _handle, EREFUSED);368 if (!async_data_read_receive(&call, &size)) { 369 async_answer_0(&call, EREFUSED); 370 async_answer_0(icall, EREFUSED); 371 371 return; 372 372 } … … 378 378 if (dev == NULL || dev->state == DEVICE_REMOVED) { 379 379 fibril_rwlock_read_unlock(&device_tree.rwlock); 380 async_answer_0( chandle, ENOENT);381 async_answer_0(icall _handle, ENOENT);380 async_answer_0(&call, ENOENT); 381 async_answer_0(icall, ENOENT); 382 382 return; 383 383 } … … 386 386 if (hdl_buf == NULL) { 387 387 fibril_rwlock_read_unlock(&device_tree.rwlock); 388 async_answer_0( chandle, ENOMEM);389 async_answer_0(icall _handle, ENOMEM);388 async_answer_0(&call, ENOMEM); 389 async_answer_0(icall, ENOMEM); 390 390 return; 391 391 } … … 394 394 if (rc != EOK) { 395 395 fibril_rwlock_read_unlock(&device_tree.rwlock); 396 async_answer_0( chandle, rc);397 async_answer_0(icall _handle, rc);398 return; 399 } 400 401 fibril_rwlock_read_unlock(&device_tree.rwlock); 402 403 errno_t retval = async_data_read_finalize( chandle, hdl_buf, size);396 async_answer_0(&call, rc); 397 async_answer_0(icall, rc); 398 return; 399 } 400 401 fibril_rwlock_read_unlock(&device_tree.rwlock); 402 403 errno_t retval = async_data_read_finalize(&call, hdl_buf, size); 404 404 free(hdl_buf); 405 405 406 async_answer_1(icall _handle, retval, act_size);406 async_answer_1(icall, retval, act_size); 407 407 } 408 408 409 409 /** Get handle for child device of a function. */ 410 static void devman_fun_get_child( cap_call_handle_t icall_handle,ipc_call_t *icall)410 static void devman_fun_get_child(ipc_call_t *icall) 411 411 { 412 412 fun_node_t *fun; … … 417 417 if (fun == NULL || fun->state == FUN_REMOVED) { 418 418 fibril_rwlock_read_unlock(&device_tree.rwlock); 419 async_answer_0(icall _handle, ENOENT);419 async_answer_0(icall, ENOENT); 420 420 return; 421 421 } … … 423 423 if (fun->child == NULL) { 424 424 fibril_rwlock_read_unlock(&device_tree.rwlock); 425 async_answer_0(icall _handle, ENOENT);426 return; 427 } 428 429 async_answer_1(icall _handle, EOK, fun->child->handle);425 async_answer_0(icall, ENOENT); 426 return; 427 } 428 429 async_answer_1(icall, EOK, fun->child->handle); 430 430 431 431 fibril_rwlock_read_unlock(&device_tree.rwlock); … … 438 438 * of this function is linked to state of another function somehow). 439 439 */ 440 static void devman_fun_online( cap_call_handle_t icall_handle,ipc_call_t *icall)440 static void devman_fun_online(ipc_call_t *icall) 441 441 { 442 442 fun_node_t *fun; … … 445 445 fun = find_fun_node(&device_tree, IPC_GET_ARG1(*icall)); 446 446 if (fun == NULL) { 447 async_answer_0(icall _handle, ENOENT);447 async_answer_0(icall, ENOENT); 448 448 return; 449 449 } … … 452 452 fun_del_ref(fun); 453 453 454 async_answer_0(icall _handle, rc);454 async_answer_0(icall, rc); 455 455 } 456 456 … … 463 463 * function somehow). 464 464 */ 465 static void devman_fun_offline( cap_call_handle_t icall_handle,ipc_call_t *icall)465 static void devman_fun_offline(ipc_call_t *icall) 466 466 { 467 467 fun_node_t *fun; … … 470 470 fun = find_fun_node(&device_tree, IPC_GET_ARG1(*icall)); 471 471 if (fun == NULL) { 472 async_answer_0(icall _handle, ENOENT);472 async_answer_0(icall, ENOENT); 473 473 return; 474 474 } … … 477 477 fun_del_ref(fun); 478 478 479 async_answer_0(icall _handle, rc);479 async_answer_0(icall, rc); 480 480 } 481 481 482 482 /** Find handle for the function instance identified by its service ID. */ 483 static void devman_fun_sid_to_handle( cap_call_handle_t icall_handle,ipc_call_t *icall)483 static void devman_fun_sid_to_handle(ipc_call_t *icall) 484 484 { 485 485 fun_node_t *fun; … … 488 488 489 489 if (fun == NULL) { 490 async_answer_0(icall _handle, ENOENT);490 async_answer_0(icall, ENOENT); 491 491 return; 492 492 } … … 497 497 if (fun->state == FUN_REMOVED) { 498 498 fibril_rwlock_read_unlock(&device_tree.rwlock); 499 async_answer_0(icall _handle, ENOENT);500 return; 501 } 502 503 async_answer_1(icall _handle, EOK, fun->handle);499 async_answer_0(icall, ENOENT); 500 return; 501 } 502 503 async_answer_1(icall, EOK, fun->handle); 504 504 fibril_rwlock_read_unlock(&device_tree.rwlock); 505 505 fun_del_ref(fun); … … 507 507 508 508 /** Get list of all registered drivers. */ 509 static void devman_get_drivers( cap_call_handle_t icall_handle,ipc_call_t *icall)510 { 511 cap_call_handle_t chandle;509 static void devman_get_drivers(ipc_call_t *icall) 510 { 511 ipc_call_t call; 512 512 size_t size; 513 513 size_t act_size; 514 514 errno_t rc; 515 515 516 if (!async_data_read_receive(&c handle, &size)) {517 async_answer_0(icall _handle, EREFUSED);516 if (!async_data_read_receive(&call, &size)) { 517 async_answer_0(icall, EREFUSED); 518 518 return; 519 519 } … … 521 521 devman_handle_t *hdl_buf = (devman_handle_t *) malloc(size); 522 522 if (hdl_buf == NULL) { 523 async_answer_0( chandle, ENOMEM);524 async_answer_0(icall _handle, ENOMEM);523 async_answer_0(&call, ENOMEM); 524 async_answer_0(icall, ENOMEM); 525 525 return; 526 526 } … … 528 528 rc = driver_get_list(&drivers_list, hdl_buf, size, &act_size); 529 529 if (rc != EOK) { 530 async_answer_0( chandle, rc);531 async_answer_0(icall _handle, rc);532 return; 533 } 534 535 errno_t retval = async_data_read_finalize( chandle, hdl_buf, size);530 async_answer_0(&call, rc); 531 async_answer_0(icall, rc); 532 return; 533 } 534 535 errno_t retval = async_data_read_finalize(&call, hdl_buf, size); 536 536 free(hdl_buf); 537 537 538 async_answer_1(icall _handle, retval, act_size);539 } 540 541 static void devman_driver_get_devices( cap_call_handle_t icall_handle,ipc_call_t *icall)542 { 543 cap_call_handle_t chandle;538 async_answer_1(icall, retval, act_size); 539 } 540 541 static void devman_driver_get_devices(ipc_call_t *icall) 542 { 543 ipc_call_t call; 544 544 size_t size; 545 545 size_t act_size; 546 546 errno_t rc; 547 547 548 if (!async_data_read_receive(&c handle, &size)) {549 async_answer_0(icall _handle, EREFUSED);548 if (!async_data_read_receive(&call, &size)) { 549 async_answer_0(icall, EREFUSED); 550 550 return; 551 551 } … … 553 553 driver_t *drv = driver_find(&drivers_list, IPC_GET_ARG1(*icall)); 554 554 if (drv == NULL) { 555 async_answer_0( chandle, ENOENT);556 async_answer_0(icall _handle, ENOENT);555 async_answer_0(&call, ENOENT); 556 async_answer_0(icall, ENOENT); 557 557 return; 558 558 } … … 560 560 devman_handle_t *hdl_buf = (devman_handle_t *) malloc(size); 561 561 if (hdl_buf == NULL) { 562 async_answer_0( chandle, ENOMEM);563 async_answer_0(icall _handle, ENOMEM);562 async_answer_0(&call, ENOMEM); 563 async_answer_0(icall, ENOMEM); 564 564 return; 565 565 } … … 568 568 if (rc != EOK) { 569 569 fibril_rwlock_read_unlock(&device_tree.rwlock); 570 async_answer_0( chandle, rc);571 async_answer_0(icall _handle, rc);572 return; 573 } 574 575 errno_t retval = async_data_read_finalize( chandle, hdl_buf, size);570 async_answer_0(&call, rc); 571 async_answer_0(icall, rc); 572 return; 573 } 574 575 errno_t retval = async_data_read_finalize(&call, hdl_buf, size); 576 576 free(hdl_buf); 577 577 578 async_answer_1(icall _handle, retval, act_size);578 async_answer_1(icall, retval, act_size); 579 579 } 580 580 581 581 582 582 /** Find driver by name. */ 583 static void devman_driver_get_handle( cap_call_handle_t icall_handle,ipc_call_t *icall)583 static void devman_driver_get_handle(ipc_call_t *icall) 584 584 { 585 585 char *drvname; … … 587 587 errno_t rc = async_data_write_accept((void **) &drvname, true, 0, 0, 0, 0); 588 588 if (rc != EOK) { 589 async_answer_0(icall _handle, rc);589 async_answer_0(icall, rc); 590 590 return; 591 591 } … … 596 596 597 597 if (driver == NULL) { 598 async_answer_0(icall _handle, ENOENT);599 return; 600 } 601 602 async_answer_1(icall _handle, EOK, driver->handle);598 async_answer_0(icall, ENOENT); 599 return; 600 } 601 602 async_answer_1(icall, EOK, driver->handle); 603 603 } 604 604 605 605 /** Get driver match ID. */ 606 static void devman_driver_get_match_id( cap_call_handle_t icall_handle,ipc_call_t *icall)606 static void devman_driver_get_match_id(ipc_call_t *icall) 607 607 { 608 608 devman_handle_t handle = IPC_GET_ARG1(*icall); … … 611 611 driver_t *drv = driver_find(&drivers_list, handle); 612 612 if (drv == NULL) { 613 async_answer_0(icall _handle, ENOMEM);614 return; 615 } 616 617 cap_call_handle_t data_chandle;613 async_answer_0(icall, ENOMEM); 614 return; 615 } 616 617 ipc_call_t data; 618 618 size_t data_len; 619 if (!async_data_read_receive(&data _chandle, &data_len)) {620 async_answer_0(icall _handle, EINVAL);619 if (!async_data_read_receive(&data, &data_len)) { 620 async_answer_0(icall, EINVAL); 621 621 return; 622 622 } … … 624 624 void *buffer = malloc(data_len); 625 625 if (buffer == NULL) { 626 async_answer_0( data_chandle, ENOMEM);627 async_answer_0(icall _handle, ENOMEM);626 async_answer_0(&data, ENOMEM); 627 async_answer_0(icall, ENOMEM); 628 628 return; 629 629 } … … 634 634 fibril_mutex_unlock(&drv->driver_mutex); 635 635 free(buffer); 636 async_answer_0( data_chandle, ENOMEM);637 async_answer_0(icall _handle, ENOMEM);636 async_answer_0(&data, ENOMEM); 637 async_answer_0(icall, ENOMEM); 638 638 return; 639 639 } … … 646 646 } 647 647 648 async_data_read_finalize( data_chandle, mid->id, sent_length);649 async_answer_1(icall _handle, EOK, mid->score);648 async_data_read_finalize(&data, mid->id, sent_length); 649 async_answer_1(icall, EOK, mid->score); 650 650 651 651 fibril_mutex_unlock(&drv->driver_mutex); … … 655 655 656 656 /** Get driver name. */ 657 static void devman_driver_get_name( cap_call_handle_t icall_handle,ipc_call_t *icall)657 static void devman_driver_get_name(ipc_call_t *icall) 658 658 { 659 659 devman_handle_t handle = IPC_GET_ARG1(*icall); … … 661 661 driver_t *drv = driver_find(&drivers_list, handle); 662 662 if (drv == NULL) { 663 async_answer_0(icall _handle, ENOMEM);664 return; 665 } 666 667 cap_call_handle_t data_chandle;663 async_answer_0(icall, ENOMEM); 664 return; 665 } 666 667 ipc_call_t data; 668 668 size_t data_len; 669 if (!async_data_read_receive(&data _chandle, &data_len)) {670 async_answer_0(icall _handle, EINVAL);669 if (!async_data_read_receive(&data, &data_len)) { 670 async_answer_0(icall, EINVAL); 671 671 return; 672 672 } … … 674 674 void *buffer = malloc(data_len); 675 675 if (buffer == NULL) { 676 async_answer_0( data_chandle, ENOMEM);677 async_answer_0(icall _handle, ENOMEM);676 async_answer_0(&data, ENOMEM); 677 async_answer_0(icall, ENOMEM); 678 678 return; 679 679 } … … 686 686 } 687 687 688 async_data_read_finalize( data_chandle, drv->name, sent_length);689 async_answer_0(icall _handle, EOK);688 async_data_read_finalize(&data, drv->name, sent_length); 689 async_answer_0(icall, EOK); 690 690 691 691 fibril_mutex_unlock(&drv->driver_mutex); … … 695 695 696 696 /** Get driver state. */ 697 static void devman_driver_get_state( cap_call_handle_t icall_handle,ipc_call_t *icall)697 static void devman_driver_get_state(ipc_call_t *icall) 698 698 { 699 699 driver_t *drv; … … 701 701 drv = driver_find(&drivers_list, IPC_GET_ARG1(*icall)); 702 702 if (drv == NULL) { 703 async_answer_0(icall _handle, ENOENT);704 return; 705 } 706 707 async_answer_1(icall _handle, EOK, (sysarg_t) drv->state);703 async_answer_0(icall, ENOENT); 704 return; 705 } 706 707 async_answer_1(icall, EOK, (sysarg_t) drv->state); 708 708 } 709 709 710 710 /** Forcibly load a driver. */ 711 static void devman_driver_load( cap_call_handle_t icall_handle,ipc_call_t *icall)711 static void devman_driver_load(ipc_call_t *icall) 712 712 { 713 713 driver_t *drv; … … 716 716 drv = driver_find(&drivers_list, IPC_GET_ARG1(*icall)); 717 717 if (drv == NULL) { 718 async_answer_0(icall _handle, ENOENT);718 async_answer_0(icall, ENOENT); 719 719 return; 720 720 } … … 724 724 fibril_mutex_unlock(&drv->driver_mutex); 725 725 726 async_answer_0(icall _handle, rc);726 async_answer_0(icall, rc); 727 727 } 728 728 729 729 /** Unload a driver by user request. */ 730 static void devman_driver_unload( cap_call_handle_t icall_handle,ipc_call_t *icall)730 static void devman_driver_unload(ipc_call_t *icall) 731 731 { 732 732 driver_t *drv; … … 735 735 drv = driver_find(&drivers_list, IPC_GET_ARG1(*icall)); 736 736 if (drv == NULL) { 737 async_answer_0(icall _handle, ENOENT);737 async_answer_0(icall, ENOENT); 738 738 return; 739 739 } … … 743 743 fibril_mutex_unlock(&drv->driver_mutex); 744 744 745 async_answer_0(icall _handle, rc);745 async_answer_0(icall, rc); 746 746 } 747 747 748 748 /** Function for handling connections from a client to the device manager. */ 749 void devman_connection_client( cap_call_handle_t icall_handle,ipc_call_t *icall, void *arg)749 void devman_connection_client(ipc_call_t *icall, void *arg) 750 750 { 751 751 /* Accept connection. */ 752 async_answer_0(icall _handle, EOK);752 async_answer_0(icall, EOK); 753 753 754 754 while (true) { 755 755 ipc_call_t call; 756 cap_call_handle_t chandle =async_get_call(&call);756 async_get_call(&call); 757 757 758 758 if (!IPC_GET_IMETHOD(call)) … … 761 761 switch (IPC_GET_IMETHOD(call)) { 762 762 case DEVMAN_DEVICE_GET_HANDLE: 763 devman_function_get_handle( chandle,&call);763 devman_function_get_handle(&call); 764 764 break; 765 765 case DEVMAN_DEV_GET_PARENT: 766 devman_dev_get_parent( chandle,&call);766 devman_dev_get_parent(&call); 767 767 break; 768 768 case DEVMAN_DEV_GET_FUNCTIONS: 769 devman_dev_get_functions( chandle,&call);769 devman_dev_get_functions(&call); 770 770 break; 771 771 case DEVMAN_FUN_GET_CHILD: 772 devman_fun_get_child( chandle,&call);772 devman_fun_get_child(&call); 773 773 break; 774 774 case DEVMAN_FUN_GET_MATCH_ID: 775 devman_fun_get_match_id( chandle,&call);775 devman_fun_get_match_id(&call); 776 776 break; 777 777 case DEVMAN_FUN_GET_NAME: 778 devman_fun_get_name( chandle,&call);778 devman_fun_get_name(&call); 779 779 break; 780 780 case DEVMAN_FUN_GET_DRIVER_NAME: 781 devman_fun_get_driver_name( chandle,&call);781 devman_fun_get_driver_name(&call); 782 782 break; 783 783 case DEVMAN_FUN_GET_PATH: 784 devman_fun_get_path( chandle,&call);784 devman_fun_get_path(&call); 785 785 break; 786 786 case DEVMAN_FUN_ONLINE: 787 devman_fun_online( chandle,&call);787 devman_fun_online(&call); 788 788 break; 789 789 case DEVMAN_FUN_OFFLINE: 790 devman_fun_offline( chandle,&call);790 devman_fun_offline(&call); 791 791 break; 792 792 case DEVMAN_FUN_SID_TO_HANDLE: 793 devman_fun_sid_to_handle( chandle,&call);793 devman_fun_sid_to_handle(&call); 794 794 break; 795 795 case DEVMAN_GET_DRIVERS: 796 devman_get_drivers( chandle,&call);796 devman_get_drivers(&call); 797 797 break; 798 798 case DEVMAN_DRIVER_GET_DEVICES: 799 devman_driver_get_devices( chandle,&call);799 devman_driver_get_devices(&call); 800 800 break; 801 801 case DEVMAN_DRIVER_GET_HANDLE: 802 devman_driver_get_handle( chandle,&call);802 devman_driver_get_handle(&call); 803 803 break; 804 804 case DEVMAN_DRIVER_GET_MATCH_ID: 805 devman_driver_get_match_id( chandle,&call);805 devman_driver_get_match_id(&call); 806 806 break; 807 807 case DEVMAN_DRIVER_GET_NAME: 808 devman_driver_get_name( chandle,&call);808 devman_driver_get_name(&call); 809 809 break; 810 810 case DEVMAN_DRIVER_GET_STATE: 811 devman_driver_get_state( chandle,&call);811 devman_driver_get_state(&call); 812 812 break; 813 813 case DEVMAN_DRIVER_LOAD: 814 devman_driver_load( chandle,&call);814 devman_driver_load(&call); 815 815 break; 816 816 case DEVMAN_DRIVER_UNLOAD: 817 devman_driver_unload( chandle,&call);817 devman_driver_unload(&call); 818 818 break; 819 819 default: 820 async_answer_0( chandle, ENOENT);820 async_answer_0(&call, ENOENT); 821 821 } 822 822 } 823 823 } 824 825 824 826 825 /** @}
Note:
See TracChangeset
for help on using the changeset viewer.