int usbip_vhci_imported_device_dump(struct usbip_imported_device *idev) { char product_name[100]; char host[NI_MAXHOST] = "unknown host"; char serv[NI_MAXSERV] = "unknown port"; char remote_busid[SYSFS_BUS_ID_SIZE]; int ret; int i; if (idev->status == VDEV_ST_NULL || idev->status == VDEV_ST_NOTASSIGNED) { info("Port %02d: <%s>", idev->port, usbip_status_string(idev->status)); return 0; } ret = read_record(idev->port, host, serv, remote_busid); if (ret) { err("read_record"); return -1; } info("Port %02d: <%s> at %s", idev->port, usbip_status_string(idev->status), usbip_speed_string(idev->udev.speed)); usbip_names_get_product(product_name, sizeof(product_name), idev->udev.idVendor, idev->udev.idProduct); info(" %s", product_name); info("%10s -> usbip://%s:%s/%s (remote devid %08x (bus/dev %03d/%03d))", idev->udev.busid, host, serv, remote_busid, idev->devid, idev->busnum, idev->devnum); for (i=0; i < idev->udev.bNumInterfaces; i++) { /* show interface information */ struct sysfs_device *suinf; suinf = open_usb_interface(&idev->udev, i); if (!suinf) continue; info(" %6s used by %-17s", suinf->bus_id, suinf->driver_name); sysfs_close_device(suinf); /* show class device information */ struct class_device *cdev; dlist_for_each_data(idev->cdev_list, cdev, struct class_device) { int ifnum = get_interface_number(cdev->devpath); if (ifnum == i) { info(" %s", cdev->clspath); } } } return 0; }
int usbip_vhci_imported_device_dump(struct usbip_imported_device *idev) { char product_name[100]; char host[NI_MAXHOST] = "unknown host"; char serv[NI_MAXSERV] = "unknown port"; char remote_busid[SYSFS_BUS_ID_SIZE]; int ret; int read_record_error = 0; if (idev->status == VDEV_ST_NULL || idev->status == VDEV_ST_NOTASSIGNED) return 0; ret = read_record(idev->port, host, sizeof(host), serv, sizeof(serv), remote_busid); if (ret) { err("read_record"); read_record_error = 1; } printf("Port %02d: <%s> at %s\n", idev->port, usbip_status_string(idev->status), usbip_speed_string(idev->udev.speed)); usbip_names_get_product(product_name, sizeof(product_name), idev->udev.idVendor, idev->udev.idProduct); printf(" %s\n", product_name); if (!read_record_error) { printf("%10s -> usbip://%s:%s/%s\n", idev->udev.busid, host, serv, remote_busid); printf("%10s -> remote bus/dev %03d/%03d\n", " ", idev->busnum, idev->devnum); } else { printf("%10s -> unknown host, remote port and remote busid\n", idev->udev.busid); printf("%10s -> remote bus/dev %03d/%03d\n", " ", idev->busnum, idev->devnum); } return 0; }