Changeset 45059d6b in mainline
- Timestamp:
- 2011-08-19T16:31:47Z (13 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 107f2e0, 16f9782, 1c99eae
- Parents:
- 0fe52ef
- Location:
- uspace
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/c/generic/devman.c
r0fe52ef r45059d6b 195 195 196 196 exch = devman_exchange_begin(DEVMAN_DRIVER); 197 async_connect_to_me(exch, 0, 0, 0, NULL, NULL);197 async_connect_to_me(exch, 0, 0, 0, conn, NULL); 198 198 devman_exchange_end(exch); 199 199 -
uspace/lib/drv/generic/driver.c
r0fe52ef r45059d6b 428 428 static void driver_connection(ipc_callid_t iid, ipc_call_t *icall, void *arg) 429 429 { 430 sysarg_t conn_type; 431 432 if (iid == 0) { 433 /* Callback connection from devman */ 434 /* XXX Use separate handler for this type of connection */ 435 conn_type = DRIVER_DEVMAN; 436 } else { 437 conn_type = IPC_GET_ARG1(*icall); 438 } 439 430 440 /* Select interface */ 431 switch ( (sysarg_t) (IPC_GET_ARG1(*icall))) {441 switch (conn_type) { 432 442 case DRIVER_DEVMAN: 433 443 /* Handle request from device manager */ -
uspace/srv/devman/devman.c
r0fe52ef r45059d6b 548 548 549 549 fibril_mutex_lock(&driver->driver_mutex); 550 551 async_exch_t *exch = async_exchange_begin(driver->sess);552 async_sess_t *sess = async_connect_me_to(EXCHANGE_SERIALIZE, exch,553 DRIVER_DEVMAN, 0, 0);554 async_exchange_end(exch);555 556 if (!sess) {557 fibril_mutex_unlock(&driver->driver_mutex);558 return;559 }560 550 561 551 /* … … 583 573 fibril_mutex_unlock(&driver->driver_mutex); 584 574 585 add_device( sess,driver, dev, tree);575 add_device(driver, dev, tree); 586 576 587 577 /* … … 603 593 link = driver->devices.head.next; 604 594 } 605 606 async_hangup(sess);607 595 608 596 /* … … 718 706 * @param node The device's node in the device tree. 719 707 */ 720 void add_device(async_sess_t *sess, driver_t *drv, dev_node_t *dev, 721 dev_tree_t *tree) 708 void add_device(driver_t *drv, dev_node_t *dev, dev_tree_t *tree) 722 709 { 723 710 /* … … 736 723 } 737 724 738 async_exch_t *exch = async_exchange_begin( sess);725 async_exch_t *exch = async_exchange_begin(drv->sess); 739 726 740 727 ipc_call_t answer; … … 806 793 fibril_mutex_unlock(&drv->driver_mutex); 807 794 808 if (is_running) { 809 /* Notify the driver about the new device. */ 810 async_exch_t *exch = async_exchange_begin(drv->sess); 811 async_sess_t *sess = async_connect_me_to(EXCHANGE_SERIALIZE, exch, 812 DRIVER_DEVMAN, 0, 0); 813 async_exchange_end(exch); 814 815 if (sess) { 816 add_device(sess, drv, dev, tree); 817 async_hangup(sess); 818 } 819 } 795 /* Notify the driver about the new device. */ 796 if (is_running) 797 add_device(drv, dev, tree); 820 798 821 799 return true; -
uspace/srv/devman/devman.h
r0fe52ef r45059d6b 235 235 extern void add_driver(driver_list_t *, driver_t *); 236 236 extern void attach_driver(dev_node_t *, driver_t *); 237 extern void add_device( async_sess_t *,driver_t *, dev_node_t *, dev_tree_t *);237 extern void add_device(driver_t *, dev_node_t *, dev_tree_t *); 238 238 extern bool start_driver(driver_t *); 239 239
Note:
See TracChangeset
for help on using the changeset viewer.