Changes in uspace/lib/usbdev/src/pipes.c [9f7276d:56bdd9a4] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/usbdev/src/pipes.c
r9f7276d r56bdd9a4 52 52 * @return USB address or error code. 53 53 */ 54 static usb_address_t get_my_address(async_sess_t *sess, ddf_dev_t *dev) 55 { 54 static usb_address_t get_my_address(async_sess_t *sess, const ddf_dev_t *dev) 55 { 56 assert(sess); 56 57 async_exch_t *exch = async_exchange_begin(sess); 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 58 if (!exch) 59 return ENOMEM; 60 61 usb_address_t address; 62 const int ret = usb_get_my_address(exch, &address); 63 67 64 async_exchange_end(exch); 68 69 if (rc != EOK) 70 return rc; 71 72 return (usb_address_t) address; 65 66 return (ret == EOK) ? address : ret; 73 67 } 74 68 … … 76 70 * 77 71 * @param device Device in question. 78 * @return Interface number (negative code means any). 79 */ 80 int usb_device_get_assigned_interface(ddf_dev_t *device) 81 { 72 * @return Error code (ENOTSUP means any). 73 */ 74 int usb_device_get_assigned_interface(const ddf_dev_t *device) 75 { 76 assert(device); 82 77 async_sess_t *parent_sess = 83 78 devman_parent_device_connect(EXCHANGE_ATOMIC, device->handle, 84 79 IPC_FLAG_BLOCKING); 85 80 if (!parent_sess) 86 return -1;87 81 return ENOMEM; 82 88 83 async_exch_t *exch = async_exchange_begin(parent_sess); 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; 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; 101 93 } 102 94 … … 108 100 */ 109 101 int usb_device_connection_initialize_from_device( 110 usb_device_connection_t *connection, ddf_dev_t *dev)102 usb_device_connection_t *connection, const ddf_dev_t *dev) 111 103 { 112 104 assert(connection);
Note:
See TracChangeset
for help on using the changeset viewer.