Changes in uspace/lib/usbdev/src/pipes.c [56bdd9a4:8e5ce07] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/usbdev/src/pipes.c
r56bdd9a4 r8e5ce07 54 54 static usb_address_t get_my_address(async_sess_t *sess, const ddf_dev_t *dev) 55 55 { 56 assert(sess);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 (ENOTSUPmeans any).78 * @return Interface number (negative code means any). 73 79 */ 74 80 int usb_device_get_assigned_interface(const ddf_dev_t *device) 75 81 { 76 assert(device);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
Note:
See TracChangeset
for help on using the changeset viewer.