Changes in uspace/srv/devman/main.c [de2c901:228e490] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/srv/devman/main.c
rde2c901 r228e490 281 281 * handle. 282 282 */ 283 devmap_device_register_with_iface(devmap_pathname, 284 &cli->devmap_handle, DEVMAN_CONNECT_FROM_DEVMAP); 283 devmap_device_register(devmap_pathname, &cli->devmap_handle); 285 284 286 285 /* … … 458 457 459 458 if (driver == NULL) { 460 printf(NAME ": devman_forward error - the device %" PRIun \ 461 " (%s) is not in usable state.\n", 462 handle, dev->pathname); 459 printf(NAME ": devman_forward error - the device is not in %" PRIun 460 " usable state.\n", handle); 463 461 ipc_answer_0(iid, ENOENT); 464 462 return; … … 488 486 static void devman_connection_devmapper(ipc_callid_t iid, ipc_call_t *icall) 489 487 { 490 devmap_handle_t devmap_handle = IPC_GET_ ARG2(*icall);488 devmap_handle_t devmap_handle = IPC_GET_IMETHOD(*icall); 491 489 node_t *dev; 492 490 … … 505 503 } 506 504 505 printf(NAME ": devman_connection_devmapper: forward connection to " 506 "device %s to driver %s.\n", dev->pathname, dev->drv->name); 507 507 ipc_forward_fast(iid, dev->drv->phone, DRIVER_CLIENT, dev->handle, 0, 508 508 IPC_FF_NONE); 509 printf(NAME ": devman_connection_devmapper: forwarded connection to "510 "device %s to driver %s.\n", dev->pathname, dev->drv->name);511 509 } 512 510 … … 514 512 static void devman_connection(ipc_callid_t iid, ipc_call_t *icall) 515 513 { 514 /* 515 * Silly hack to enable the device manager to register as a driver by 516 * the device mapper. If the ipc method is not IPC_M_CONNECT_ME_TO, this 517 * is not the forwarded connection from naming service, so it must be a 518 * connection from the devmapper which thinks this is a devmapper-style 519 * driver. So pretend this is a devmapper-style driver. (This does not 520 * work for device with handle == IPC_M_CONNECT_ME_TO, because devmapper 521 * passes device handle to the driver as an ipc method.) 522 */ 523 if (IPC_GET_IMETHOD(*icall) != IPC_M_CONNECT_ME_TO) 524 devman_connection_devmapper(iid, icall); 525 526 /* 527 * ipc method is IPC_M_CONNECT_ME_TO, so this is forwarded connection 528 * from naming service by which we registered as device manager, so be 529 * device manager. 530 */ 531 516 532 /* Select interface. */ 517 533 switch ((sysarg_t) (IPC_GET_ARG1(*icall))) { … … 526 542 devman_forward(iid, icall, false); 527 543 break; 528 case DEVMAN_CONNECT_FROM_DEVMAP:529 /* Someone connected through devmap node. */530 devman_connection_devmapper(iid, icall);531 break;532 544 case DEVMAN_CONNECT_TO_PARENTS_DEVICE: 533 545 /* Connect client to selected device. */
Note:
See TracChangeset
for help on using the changeset viewer.