Changes in uspace/lib/usb/src/usbdrv.c [71ed4849:97e660e] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/usb/src/usbdrv.c
r71ed4849 r97e660e 35 35 #include <usb/usbdrv.h> 36 36 #include <usbhc_iface.h> 37 #include <usb_iface.h>38 37 #include <errno.h> 39 38 #include <str_error.h> … … 55 54 } transfer_info_t; 56 55 57 /** Find handle of host controller the device is physically attached to.58 *59 * @param[in] dev Device looking for its host controller.60 * @param[out] handle Host controller devman handle.61 * @return Error code.62 */63 int usb_drv_find_hc(device_t *dev, devman_handle_t *handle)64 {65 if (dev == NULL) {66 return EBADMEM;67 }68 if (handle == NULL) {69 return EBADMEM;70 }71 72 int parent_phone = devman_parent_device_connect(dev->handle,73 IPC_FLAG_BLOCKING);74 if (parent_phone < 0) {75 return parent_phone;76 }77 78 devman_handle_t h;79 int rc = async_req_1_1(parent_phone, DEV_IFACE_ID(USB_DEV_IFACE),80 IPC_M_USB_GET_HOST_CONTROLLER_HANDLE, &h);81 82 ipc_hangup(parent_phone);83 84 if (rc != EOK) {85 return rc;86 }87 88 *handle = h;89 90 return EOK;91 }92 93 /** Connect to host controller the device is physically attached to.94 *95 * @param dev Device asking for connection.96 * @param hc_handle Devman handle of the host controller.97 * @param flags Connection flags (blocking connection).98 * @return Phone to the HC or error code.99 */100 int usb_drv_hc_connect(device_t *dev, devman_handle_t hc_handle,101 unsigned int flags)102 {103 return devman_device_connect(hc_handle, flags);104 }105 106 56 /** Connect to host controller the device is physically attached to. 107 57 * … … 110 60 * @return Phone to corresponding HC or error code. 111 61 */ 112 int usb_drv_hc_connect_auto(device_t *dev, unsigned int flags) 113 { 114 int rc; 115 devman_handle_t hc_handle; 116 62 int usb_drv_hc_connect(device_t *dev, unsigned int flags) 63 { 117 64 /* 118 65 * Call parent hub to obtain device handle of respective HC. 119 66 */ 120 rc = usb_drv_find_hc(dev, &hc_handle); 67 68 /* 69 * FIXME: currently we connect always to virtual host controller. 70 */ 71 int rc; 72 devman_handle_t handle; 73 74 rc = devman_device_get_handle("/virt/usbhc", &handle, flags); 121 75 if (rc != EOK) { 122 76 return rc; 123 77 } 124 78 125 return usb_drv_hc_connect(dev, hc_handle, flags); 79 int phone = devman_device_connect(handle, flags); 80 81 return phone; 126 82 } 127 83 … … 134 90 usb_address_t usb_drv_get_my_address(int phone, device_t *dev) 135 91 { 136 sysarg_t address;92 ipcarg_t address; 137 93 int rc = async_req_2_1(phone, DEV_IFACE_ID(USBHC_DEV_IFACE), 138 94 IPC_M_USBHC_GET_ADDRESS, … … 176 132 usb_address_t usb_drv_request_address(int phone) 177 133 { 178 sysarg_t address;134 ipcarg_t address; 179 135 int rc = async_req_1_1(phone, DEV_IFACE_ID(USBHC_DEV_IFACE), 180 136 IPC_M_USBHC_REQUEST_ADDRESS, &address); … … 342 298 * @return Error status. 343 299 */ 344 static int read_buffer_in(int phone, sysarg_t hash,300 static int read_buffer_in(int phone, ipcarg_t hash, 345 301 void *buffer, size_t size, size_t *actual_size) 346 302 { 347 303 ipc_call_t answer_data; 348 sysarg_t answer_rc;304 ipcarg_t answer_rc; 349 305 aid_t req; 350 306 int rc; … … 394 350 transfer_info_t *transfer = (transfer_info_t *) handle; 395 351 396 sysarg_t answer_rc;352 ipcarg_t answer_rc; 397 353 async_wait_for(transfer->request, &answer_rc); 398 354 … … 411 367 * We will use it when actually reading-in the data. 412 368 */ 413 sysarg_t buffer_hash = IPC_GET_ARG1(transfer->reply);369 ipcarg_t buffer_hash = IPC_GET_ARG1(transfer->reply); 414 370 if (buffer_hash == 0) { 415 371 rc = ENOENT;
Note:
See TracChangeset
for help on using the changeset viewer.