|
@@ -20,10 +20,12 @@ static struct usbip_imported_device *imported_device_init(struct usbip_imported_
|
|
|
sysfs_close_device(sudev);
|
|
|
|
|
|
/* add class devices of this imported device */
|
|
|
- struct class_device *cdev;
|
|
|
- dlist_for_each_data(vhci_driver->cdev_list, cdev, struct class_device) {
|
|
|
- if (!strncmp(cdev->devpath, idev->udev.path, strlen(idev->udev.path))) {
|
|
|
- struct class_device *new_cdev;
|
|
|
+ struct usbip_class_device *cdev;
|
|
|
+ dlist_for_each_data(vhci_driver->cdev_list, cdev,
|
|
|
+ struct usbip_class_device) {
|
|
|
+ if (!strncmp(cdev->dev_path, idev->udev.path,
|
|
|
+ strlen(idev->udev.path))) {
|
|
|
+ struct usbip_class_device *new_cdev;
|
|
|
|
|
|
/* alloc and copy because dlist is linked from only one list */
|
|
|
new_cdev = calloc(1, sizeof(*new_cdev));
|
|
@@ -87,7 +89,7 @@ static int parse_status(char *value)
|
|
|
idev->busnum = (devid >> 16);
|
|
|
idev->devnum = (devid & 0x0000ffff);
|
|
|
|
|
|
- idev->cdev_list = dlist_new(sizeof(struct class_device));
|
|
|
+ idev->cdev_list = dlist_new(sizeof(struct usbip_class_device));
|
|
|
if (!idev->cdev_list) {
|
|
|
err("init new device");
|
|
|
return -1;
|
|
@@ -115,29 +117,29 @@ static int parse_status(char *value)
|
|
|
|
|
|
static int check_usbip_device(struct sysfs_class_device *cdev)
|
|
|
{
|
|
|
- char clspath[SYSFS_PATH_MAX]; /* /sys/class/video4linux/video0/device */
|
|
|
- char devpath[SYSFS_PATH_MAX]; /* /sys/devices/platform/vhci_hcd/usb6/6-1:1.1 */
|
|
|
-
|
|
|
+ char class_path[SYSFS_PATH_MAX]; /* /sys/class/video4linux/video0/device */
|
|
|
+ char dev_path[SYSFS_PATH_MAX]; /* /sys/devices/platform/vhci_hcd/usb6/6-1:1.1 */
|
|
|
int ret;
|
|
|
+ struct usbip_class_device *usbip_cdev;
|
|
|
|
|
|
- snprintf(clspath, sizeof(clspath), "%s/device", cdev->path);
|
|
|
+ snprintf(class_path, sizeof(class_path), "%s/device", cdev->path);
|
|
|
|
|
|
- ret = sysfs_get_link(clspath, devpath, SYSFS_PATH_MAX);
|
|
|
- if (!ret) {
|
|
|
- if (!strncmp(devpath, vhci_driver->hc_device->path,
|
|
|
- strlen(vhci_driver->hc_device->path))) {
|
|
|
+ ret = sysfs_get_link(class_path, dev_path, sizeof(dev_path));
|
|
|
+ if (ret == 0) {
|
|
|
+ if (!strncmp(dev_path, vhci_driver->hc_device->path,
|
|
|
+ strlen(vhci_driver->hc_device->path))) {
|
|
|
/* found usbip device */
|
|
|
- struct class_device *cdev;
|
|
|
-
|
|
|
- cdev = calloc(1, sizeof(*cdev));
|
|
|
+ usbip_cdev = calloc(1, sizeof(*usbip_cdev));
|
|
|
if (!cdev) {
|
|
|
- err("calloc cdev");
|
|
|
+ err("calloc usbip_cdev");
|
|
|
return -1;
|
|
|
}
|
|
|
- dlist_unshift(vhci_driver->cdev_list, (void*) cdev);
|
|
|
- strncpy(cdev->clspath, clspath, sizeof(cdev->clspath));
|
|
|
- strncpy(cdev->devpath, devpath, sizeof(cdev->clspath));
|
|
|
- dbg(" found %s %s", clspath, devpath);
|
|
|
+ dlist_unshift(vhci_driver->cdev_list, usbip_cdev);
|
|
|
+ strncpy(usbip_cdev->class_path, class_path,
|
|
|
+ sizeof(usbip_cdev->class_path));
|
|
|
+ strncpy(usbip_cdev->dev_path, dev_path,
|
|
|
+ sizeof(usbip_cdev->dev_path));
|
|
|
+ dbg(" found %s %s", class_path, dev_path);
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -341,7 +343,7 @@ int usbip_vhci_driver_open(void)
|
|
|
|
|
|
info("%d ports available\n", vhci_driver->nports);
|
|
|
|
|
|
- vhci_driver->cdev_list = dlist_new(sizeof(struct class_device));
|
|
|
+ vhci_driver->cdev_list = dlist_new(sizeof(struct usbip_class_device));
|
|
|
if (!vhci_driver->cdev_list)
|
|
|
goto err;
|
|
|
|
|
@@ -400,7 +402,7 @@ int usbip_vhci_refresh_device_list(void)
|
|
|
dlist_destroy(vhci_driver->idev[i].cdev_list);
|
|
|
}
|
|
|
|
|
|
- vhci_driver->cdev_list = dlist_new(sizeof(struct class_device));
|
|
|
+ vhci_driver->cdev_list = dlist_new(sizeof(struct usbip_class_device));
|
|
|
if (!vhci_driver->cdev_list)
|
|
|
goto err;
|
|
|
|