Changeset 02fc5c4 in mainline for uspace/lib/usbdev/src/hub.c
- Timestamp:
- 2011-11-25T17:41:23Z (13 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 095bddfc
- Parents:
- 56bdd9a4
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/usbdev/src/hub.c
r56bdd9a4 r02fc5c4 76 76 { 77 77 CHECK_CONNECTION(connection); 78 78 79 79 async_exch_t *exch = async_exchange_begin(connection->hc_sess); 80 81 sysarg_t address; 82 int rc = async_req_4_1(exch, DEV_IFACE_ID(USBHC_DEV_IFACE), 83 IPC_M_USBHC_REQUEST_ADDRESS, preferred, strict, speed, &address); 84 80 if (!exch) 81 return (usb_address_t)ENOMEM; 82 83 usb_address_t address = preferred; 84 const int ret = usbhc_request_address(exch, &address, strict, speed); 85 85 86 async_exchange_end(exch); 86 87 if (rc != EOK) 88 return (usb_address_t) rc; 89 90 return (usb_address_t) address; 87 return ret == EOK ? address : ret; 91 88 } 92 89 … … 97 94 * @return Error code. 98 95 */ 99 int usb_hc_register_device(usb_hc_connection_t * 96 int usb_hc_register_device(usb_hc_connection_t *connection, 100 97 const usb_hub_attached_device_t *attached_device) 101 98 { 102 99 CHECK_CONNECTION(connection); 103 104 if (attached_device == NULL) 105 return EBADMEM; 106 100 if (attached_device == NULL || attached_device->fun == NULL) 101 return EINVAL; 102 107 103 async_exch_t *exch = async_exchange_begin(connection->hc_sess); 108 int rc = async_req_3_0(exch, DEV_IFACE_ID(USBHC_DEV_IFACE), 109 IPC_M_USBHC_BIND_ADDRESS, 104 if (!exch) 105 return ENOMEM; 106 const int ret = usbhc_bind_address(exch, 110 107 attached_device->address, attached_device->fun->handle); 111 108 async_exchange_end(exch); 112 113 return r c;109 110 return ret; 114 111 } 115 112 … … 124 121 { 125 122 CHECK_CONNECTION(connection); 126 123 127 124 async_exch_t *exch = async_exchange_begin(connection->hc_sess); 128 int rc = async_req_2_0(exch, DEV_IFACE_ID(USBHC_DEV_IFACE), 129 IPC_M_USBHC_RELEASE_ADDRESS, address); 125 if (!exch) 126 return ENOMEM; 127 const int ret = usbhc_release_address(exch, address); 130 128 async_exchange_end(exch); 131 132 return r c;129 130 return ret; 133 131 } 134 132
Note:
See TracChangeset
for help on using the changeset viewer.