Changes in uspace/lib/usbdev/src/pipes.c [56bdd9a4:9f7276d] in mainline
- File:
-
- 1 edited
-
uspace/lib/usbdev/src/pipes.c (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/usbdev/src/pipes.c
r56bdd9a4 r9f7276d 52 52 * @return USB address or error code. 53 53 */ 54 static usb_address_t get_my_address(async_sess_t *sess, const ddf_dev_t *dev) 55 { 56 assert(sess); 54 static usb_address_t get_my_address(async_sess_t *sess, ddf_dev_t *dev) 55 { 57 56 async_exch_t *exch = async_exchange_begin(sess); 58 if (!exch) 59 return ENOMEM; 60 61 usb_address_t address; 62 const int ret = usb_get_my_address(exch, &address); 63 57 58 /* 59 * We are sending special value as a handle - zero - to get 60 * handle of the parent function (that handle was used 61 * when registering our device @p dev. 62 */ 63 sysarg_t address; 64 int rc = async_req_2_1(exch, DEV_IFACE_ID(USB_DEV_IFACE), 65 IPC_M_USB_GET_ADDRESS, 0, &address); 66 64 67 async_exchange_end(exch); 65 66 return (ret == EOK) ? address : ret; 68 69 if (rc != EOK) 70 return rc; 71 72 return (usb_address_t) address; 67 73 } 68 74 … … 70 76 * 71 77 * @param device Device in question. 72 * @return Error code (ENOTSUP means any). 73 */ 74 int usb_device_get_assigned_interface(const ddf_dev_t *device) 75 { 76 assert(device); 78 * @return Interface number (negative code means any). 79 */ 80 int usb_device_get_assigned_interface(ddf_dev_t *device) 81 { 77 82 async_sess_t *parent_sess = 78 83 devman_parent_device_connect(EXCHANGE_ATOMIC, device->handle, 79 84 IPC_FLAG_BLOCKING); 80 85 if (!parent_sess) 81 return ENOMEM;82 86 return -1; 87 83 88 async_exch_t *exch = async_exchange_begin(parent_sess); 84 if (!exch) { 85 async_hangup(parent_sess); 86 return ENOMEM; 87 } 88 89 int iface_no; 90 const int ret = usb_get_my_interface(exch, &iface_no); 91 92 return ret == EOK ? iface_no : ret; 89 90 sysarg_t iface_no; 91 int rc = async_req_2_1(exch, DEV_IFACE_ID(USB_DEV_IFACE), 92 IPC_M_USB_GET_INTERFACE, device->handle, &iface_no); 93 94 async_exchange_end(exch); 95 async_hangup(parent_sess); 96 97 if (rc != EOK) 98 return -1; 99 100 return (int) iface_no; 93 101 } 94 102 … … 100 108 */ 101 109 int usb_device_connection_initialize_from_device( 102 usb_device_connection_t *connection, constddf_dev_t *dev)110 usb_device_connection_t *connection, ddf_dev_t *dev) 103 111 { 104 112 assert(connection);
Note:
See TracChangeset
for help on using the changeset viewer.
