Changeset 41811af in mainline for uspace/srv/devman/devman.c
- Timestamp:
- 2011-06-10T10:14:26Z (14 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- ab547063
- Parents:
- 9536e6e (diff), 390d80d (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the(diff)
links above to see all the changes relative to each parent. - File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/srv/devman/devman.c
r9536e6e r41811af 564 564 dev_node_t *dev; 565 565 link_t *link; 566 int phone;567 566 568 567 log_msg(LVL_DEBUG, "pass_devices_to_driver(driver=\"%s\")", … … 570 569 571 570 fibril_mutex_lock(&driver->driver_mutex); 572 573 phone = async_connect_me_to(driver->phone, DRIVER_DEVMAN, 0, 0); 574 575 if (phone < 0) { 571 572 async_exch_t *exch = async_exchange_begin(driver->sess); 573 async_sess_t *sess = async_connect_me_to(EXCHANGE_SERIALIZE, exch, 574 DRIVER_DEVMAN, 0, 0); 575 async_exchange_end(exch); 576 577 if (!sess) { 576 578 fibril_mutex_unlock(&driver->driver_mutex); 577 579 return; … … 602 604 fibril_mutex_unlock(&driver->driver_mutex); 603 605 604 add_device( phone, driver, dev, tree);606 add_device(sess, driver, dev, tree); 605 607 606 608 /* … … 623 625 } 624 626 625 async_hangup( phone);627 async_hangup(sess); 626 628 627 629 /* … … 673 675 list_initialize(&drv->devices); 674 676 fibril_mutex_initialize(&drv->driver_mutex); 675 drv-> phone = -1;677 drv->sess = NULL; 676 678 } 677 679 … … 737 739 * @param node The device's node in the device tree. 738 740 */ 739 void add_device(int phone, driver_t *drv, dev_node_t *dev, dev_tree_t *tree) 741 void add_device(async_sess_t *sess, driver_t *drv, dev_node_t *dev, 742 dev_tree_t *tree) 740 743 { 741 744 /* … … 746 749 drv->name, dev->pfun->name); 747 750 748 sysarg_t rc;749 ipc_call_t answer;750 751 751 /* Send the device to the driver. */ 752 752 devman_handle_t parent_handle; … … 756 756 parent_handle = 0; 757 757 } 758 759 aid_t req = async_send_2(phone, DRIVER_ADD_DEVICE, dev->handle, 758 759 async_exch_t *exch = async_exchange_begin(sess); 760 761 ipc_call_t answer; 762 aid_t req = async_send_2(exch, DRIVER_ADD_DEVICE, dev->handle, 760 763 parent_handle, &answer); 761 764 762 /* Send the device 'sname to the driver. */763 rc = async_data_write_start(phone, dev->pfun->name,765 /* Send the device name to the driver. */ 766 sysarg_t rc = async_data_write_start(exch, dev->pfun->name, 764 767 str_size(dev->pfun->name) + 1); 768 769 async_exchange_end(exch); 770 765 771 if (rc != EOK) { 766 772 /* TODO handle error */ … … 823 829 if (is_running) { 824 830 /* Notify the driver about the new device. */ 825 int phone = async_connect_me_to(drv->phone, DRIVER_DEVMAN, 0, 0); 826 if (phone >= 0) { 827 add_device(phone, drv, dev, tree); 828 async_hangup(phone); 831 async_exch_t *exch = async_exchange_begin(drv->sess); 832 async_sess_t *sess = async_connect_me_to(EXCHANGE_SERIALIZE, exch, 833 DRIVER_DEVMAN, 0, 0); 834 async_exchange_end(exch); 835 836 if (sess) { 837 add_device(sess, drv, dev, tree); 838 async_hangup(sess); 829 839 } 830 840 }
Note:
See TracChangeset
for help on using the changeset viewer.