|
@@ -16,7 +16,7 @@ static struct usbip_imported_device *imported_device_init(struct usbip_imported_
|
|
|
|
|
|
sudev = sysfs_open_device("usb", busid);
|
|
sudev = sysfs_open_device("usb", busid);
|
|
if (!sudev) {
|
|
if (!sudev) {
|
|
- err("sysfs_open_device %s", busid);
|
|
|
|
|
|
+ dbg("sysfs_open_device failed: %s", busid);
|
|
goto err;
|
|
goto err;
|
|
}
|
|
}
|
|
read_usb_device(sudev, &idev->udev);
|
|
read_usb_device(sudev, &idev->udev);
|
|
@@ -71,7 +71,7 @@ static int parse_status(char *value)
|
|
&devid, &socket, lbusid);
|
|
&devid, &socket, lbusid);
|
|
|
|
|
|
if (ret < 5) {
|
|
if (ret < 5) {
|
|
- err("scanf %d", ret);
|
|
|
|
|
|
+ dbg("sscanf failed: %d", ret);
|
|
BUG();
|
|
BUG();
|
|
}
|
|
}
|
|
|
|
|
|
@@ -94,14 +94,14 @@ static int parse_status(char *value)
|
|
|
|
|
|
idev->cdev_list = dlist_new(sizeof(struct usbip_class_device));
|
|
idev->cdev_list = dlist_new(sizeof(struct usbip_class_device));
|
|
if (!idev->cdev_list) {
|
|
if (!idev->cdev_list) {
|
|
- err("init new device");
|
|
|
|
|
|
+ dbg("dlist_new failed");
|
|
return -1;
|
|
return -1;
|
|
}
|
|
}
|
|
|
|
|
|
if (idev->status != VDEV_ST_NULL && idev->status != VDEV_ST_NOTASSIGNED) {
|
|
if (idev->status != VDEV_ST_NULL && idev->status != VDEV_ST_NOTASSIGNED) {
|
|
idev = imported_device_init(idev, lbusid);
|
|
idev = imported_device_init(idev, lbusid);
|
|
if (!idev) {
|
|
if (!idev) {
|
|
- err("init new device");
|
|
|
|
|
|
+ dbg("imported_device_init failed");
|
|
return -1;
|
|
return -1;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -134,7 +134,7 @@ static int check_usbip_device(struct sysfs_class_device *cdev)
|
|
/* found usbip device */
|
|
/* found usbip device */
|
|
usbip_cdev = calloc(1, sizeof(*usbip_cdev));
|
|
usbip_cdev = calloc(1, sizeof(*usbip_cdev));
|
|
if (!cdev) {
|
|
if (!cdev) {
|
|
- err("calloc usbip_cdev");
|
|
|
|
|
|
+ dbg("calloc failed");
|
|
return -1;
|
|
return -1;
|
|
}
|
|
}
|
|
dlist_unshift(vhci_driver->cdev_list, usbip_cdev);
|
|
dlist_unshift(vhci_driver->cdev_list, usbip_cdev);
|
|
@@ -142,7 +142,7 @@ static int check_usbip_device(struct sysfs_class_device *cdev)
|
|
sizeof(usbip_cdev->class_path));
|
|
sizeof(usbip_cdev->class_path));
|
|
strncpy(usbip_cdev->dev_path, dev_path,
|
|
strncpy(usbip_cdev->dev_path, dev_path,
|
|
sizeof(usbip_cdev->dev_path));
|
|
sizeof(usbip_cdev->dev_path));
|
|
- dbg(" found %s %s", class_path, dev_path);
|
|
|
|
|
|
+ dbg("found: %s %s", class_path, dev_path);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
@@ -159,11 +159,11 @@ static int search_class_for_usbip_device(char *cname)
|
|
|
|
|
|
class = sysfs_open_class(cname);
|
|
class = sysfs_open_class(cname);
|
|
if (!class) {
|
|
if (!class) {
|
|
- err("open class");
|
|
|
|
|
|
+ dbg("sysfs_open_class failed");
|
|
return -1;
|
|
return -1;
|
|
}
|
|
}
|
|
|
|
|
|
- dbg("class %s", class->name);
|
|
|
|
|
|
+ dbg("class: %s", class->name);
|
|
|
|
|
|
cdev_list = sysfs_get_class_devices(class);
|
|
cdev_list = sysfs_get_class_devices(class);
|
|
if (!cdev_list)
|
|
if (!cdev_list)
|
|
@@ -171,7 +171,7 @@ static int search_class_for_usbip_device(char *cname)
|
|
goto out;
|
|
goto out;
|
|
|
|
|
|
dlist_for_each_data(cdev_list, cdev, struct sysfs_class_device) {
|
|
dlist_for_each_data(cdev_list, cdev, struct sysfs_class_device) {
|
|
- dbg(" cdev %s", cdev->name);
|
|
|
|
|
|
+ dbg("cdev: %s", cdev->name);
|
|
ret = check_usbip_device(cdev);
|
|
ret = check_usbip_device(cdev);
|
|
if (ret < 0)
|
|
if (ret < 0)
|
|
goto out;
|
|
goto out;
|
|
@@ -194,7 +194,7 @@ static int refresh_class_device_list(void)
|
|
|
|
|
|
ret = sysfs_get_mnt_path(sysfs_mntpath, SYSFS_PATH_MAX);
|
|
ret = sysfs_get_mnt_path(sysfs_mntpath, SYSFS_PATH_MAX);
|
|
if (ret < 0) {
|
|
if (ret < 0) {
|
|
- err("sysfs must be mounted");
|
|
|
|
|
|
+ dbg("sysfs_get_mnt_path failed");
|
|
return -1;
|
|
return -1;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -204,7 +204,7 @@ static int refresh_class_device_list(void)
|
|
/* search under /sys/class */
|
|
/* search under /sys/class */
|
|
cname_list = sysfs_open_directory_list(class_path);
|
|
cname_list = sysfs_open_directory_list(class_path);
|
|
if (!cname_list) {
|
|
if (!cname_list) {
|
|
- err("open class directory");
|
|
|
|
|
|
+ dbg("sysfs_open_directory failed");
|
|
return -1;
|
|
return -1;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -234,45 +234,42 @@ static int refresh_imported_device_list(void)
|
|
|
|
|
|
attr_status = sysfs_get_device_attr(vhci_driver->hc_device, "status");
|
|
attr_status = sysfs_get_device_attr(vhci_driver->hc_device, "status");
|
|
if (!attr_status) {
|
|
if (!attr_status) {
|
|
- err("get attr %s of %s", "status", vhci_driver->hc_device->name);
|
|
|
|
|
|
+ dbg("sysfs_get_device_attr(\"status\") failed: %s",
|
|
|
|
+ vhci_driver->hc_device->name);
|
|
return -1;
|
|
return -1;
|
|
}
|
|
}
|
|
|
|
|
|
- dbg("name %s, path %s, len %d, method %d\n", attr_status->name,
|
|
|
|
- attr_status->path, attr_status->len, attr_status->method);
|
|
|
|
-
|
|
|
|
- dbg("%s", attr_status->value);
|
|
|
|
|
|
+ dbg("name: %s path: %s len: %d method: %d value: %s",
|
|
|
|
+ attr_status->name, attr_status->path, attr_status->len,
|
|
|
|
+ attr_status->method, attr_status->value);
|
|
|
|
|
|
return parse_status(attr_status->value);
|
|
return parse_status(attr_status->value);
|
|
}
|
|
}
|
|
|
|
|
|
static int get_nports(void)
|
|
static int get_nports(void)
|
|
{
|
|
{
|
|
|
|
+ char *c;
|
|
int nports = 0;
|
|
int nports = 0;
|
|
struct sysfs_attribute *attr_status;
|
|
struct sysfs_attribute *attr_status;
|
|
|
|
|
|
attr_status = sysfs_get_device_attr(vhci_driver->hc_device, "status");
|
|
attr_status = sysfs_get_device_attr(vhci_driver->hc_device, "status");
|
|
if (!attr_status) {
|
|
if (!attr_status) {
|
|
- err("get attr %s of %s", "status", vhci_driver->hc_device->name);
|
|
|
|
|
|
+ dbg("sysfs_get_device_attr(\"status\") failed: %s",
|
|
|
|
+ vhci_driver->hc_device->name);
|
|
return -1;
|
|
return -1;
|
|
}
|
|
}
|
|
|
|
|
|
- dbg("name %s, path %s, len %d, method %d\n", attr_status->name,
|
|
|
|
- attr_status->path, attr_status->len, attr_status->method);
|
|
|
|
-
|
|
|
|
- dbg("%s", attr_status->value);
|
|
|
|
|
|
+ dbg("name: %s path: %s len: %d method: %d value: %s",
|
|
|
|
+ attr_status->name, attr_status->path, attr_status->len,
|
|
|
|
+ attr_status->method, attr_status->value);
|
|
|
|
|
|
- {
|
|
|
|
- char *c;
|
|
|
|
-
|
|
|
|
- /* skip a header line */
|
|
|
|
- c = strchr(attr_status->value, '\n') + 1;
|
|
|
|
|
|
+ /* skip a header line */
|
|
|
|
+ c = strchr(attr_status->value, '\n') + 1;
|
|
|
|
|
|
- while (*c != '\0') {
|
|
|
|
- /* go to the next line */
|
|
|
|
- c = strchr(c, '\n') + 1;
|
|
|
|
- nports += 1;
|
|
|
|
- }
|
|
|
|
|
|
+ while (*c != '\0') {
|
|
|
|
+ /* go to the next line */
|
|
|
|
+ c = strchr(c, '\n') + 1;
|
|
|
|
+ nports += 1;
|
|
}
|
|
}
|
|
|
|
|
|
return nports;
|
|
return nports;
|
|
@@ -294,15 +291,15 @@ static int get_hc_busid(char *sysfs_mntpath, char *hc_busid)
|
|
|
|
|
|
sdriver = sysfs_open_driver_path(sdriver_path);
|
|
sdriver = sysfs_open_driver_path(sdriver_path);
|
|
if (!sdriver) {
|
|
if (!sdriver) {
|
|
- info("%s is not found", sdriver_path);
|
|
|
|
- info("please load " USBIP_CORE_MOD_NAME ".ko and "
|
|
|
|
- USBIP_VHCI_DRV_NAME ".ko!");
|
|
|
|
|
|
+ dbg("sysfs_open_driver_path failed: %s", sdriver_path);
|
|
|
|
+ dbg("make sure " USBIP_CORE_MOD_NAME ".ko and "
|
|
|
|
+ USBIP_VHCI_DRV_NAME ".ko are loaded!");
|
|
return -1;
|
|
return -1;
|
|
}
|
|
}
|
|
|
|
|
|
hc_devs = sysfs_get_driver_devices(sdriver);
|
|
hc_devs = sysfs_get_driver_devices(sdriver);
|
|
if (!hc_devs) {
|
|
if (!hc_devs) {
|
|
- err("get hc list");
|
|
|
|
|
|
+ dbg("sysfs_get_driver failed");
|
|
goto err;
|
|
goto err;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -318,7 +315,7 @@ err:
|
|
if (found)
|
|
if (found)
|
|
return 0;
|
|
return 0;
|
|
|
|
|
|
- err("not found usbip hc");
|
|
|
|
|
|
+ dbg("%s not found", hc_busid);
|
|
return -1;
|
|
return -1;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -332,13 +329,13 @@ int usbip_vhci_driver_open(void)
|
|
|
|
|
|
vhci_driver = (struct usbip_vhci_driver *) calloc(1, sizeof(*vhci_driver));
|
|
vhci_driver = (struct usbip_vhci_driver *) calloc(1, sizeof(*vhci_driver));
|
|
if (!vhci_driver) {
|
|
if (!vhci_driver) {
|
|
- err("alloc vhci_driver");
|
|
|
|
|
|
+ dbg("calloc failed");
|
|
return -1;
|
|
return -1;
|
|
}
|
|
}
|
|
|
|
|
|
ret = sysfs_get_mnt_path(vhci_driver->sysfs_mntpath, SYSFS_PATH_MAX);
|
|
ret = sysfs_get_mnt_path(vhci_driver->sysfs_mntpath, SYSFS_PATH_MAX);
|
|
if (ret < 0) {
|
|
if (ret < 0) {
|
|
- err("sysfs must be mounted");
|
|
|
|
|
|
+ dbg("sysfs_get_mnt_path failed");
|
|
goto err;
|
|
goto err;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -350,13 +347,13 @@ int usbip_vhci_driver_open(void)
|
|
vhci_driver->hc_device = sysfs_open_device(USBIP_VHCI_BUS_TYPE,
|
|
vhci_driver->hc_device = sysfs_open_device(USBIP_VHCI_BUS_TYPE,
|
|
hc_busid);
|
|
hc_busid);
|
|
if (!vhci_driver->hc_device) {
|
|
if (!vhci_driver->hc_device) {
|
|
- err("get sysfs vhci_driver");
|
|
|
|
|
|
+ dbg("sysfs_open_device failed");
|
|
goto err;
|
|
goto err;
|
|
}
|
|
}
|
|
|
|
|
|
vhci_driver->nports = get_nports();
|
|
vhci_driver->nports = get_nports();
|
|
|
|
|
|
- info("%d ports available\n", vhci_driver->nports);
|
|
|
|
|
|
+ dbg("available ports: %d", vhci_driver->nports);
|
|
|
|
|
|
vhci_driver->cdev_list = dlist_new(sizeof(struct usbip_class_device));
|
|
vhci_driver->cdev_list = dlist_new(sizeof(struct usbip_class_device));
|
|
if (!vhci_driver->cdev_list)
|
|
if (!vhci_driver->cdev_list)
|
|
@@ -437,7 +434,7 @@ err:
|
|
dlist_destroy(vhci_driver->idev[i].cdev_list);
|
|
dlist_destroy(vhci_driver->idev[i].cdev_list);
|
|
}
|
|
}
|
|
|
|
|
|
- err("refresh device list");
|
|
|
|
|
|
+ dbg("failed to refresh device list");
|
|
return -1;
|
|
return -1;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -460,7 +457,8 @@ int usbip_vhci_attach_device2(uint8_t port, int sockfd, uint32_t devid,
|
|
|
|
|
|
attr_attach = sysfs_get_device_attr(vhci_driver->hc_device, "attach");
|
|
attr_attach = sysfs_get_device_attr(vhci_driver->hc_device, "attach");
|
|
if (!attr_attach) {
|
|
if (!attr_attach) {
|
|
- err("get attach");
|
|
|
|
|
|
+ dbg("sysfs_get_device_attr(\"attach\") failed: %s",
|
|
|
|
+ vhci_driver->hc_device->name);
|
|
return -1;
|
|
return -1;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -470,11 +468,11 @@ int usbip_vhci_attach_device2(uint8_t port, int sockfd, uint32_t devid,
|
|
|
|
|
|
ret = sysfs_write_attribute(attr_attach, buff, strlen(buff));
|
|
ret = sysfs_write_attribute(attr_attach, buff, strlen(buff));
|
|
if (ret < 0) {
|
|
if (ret < 0) {
|
|
- err("write to attach failed");
|
|
|
|
|
|
+ dbg("sysfs_write_attribute failed");
|
|
return -1;
|
|
return -1;
|
|
}
|
|
}
|
|
|
|
|
|
- info("port %d attached", port);
|
|
|
|
|
|
+ dbg("attached port: %d", port);
|
|
|
|
|
|
return 0;
|
|
return 0;
|
|
}
|
|
}
|
|
@@ -501,21 +499,21 @@ int usbip_vhci_detach_device(uint8_t port)
|
|
|
|
|
|
attr_detach = sysfs_get_device_attr(vhci_driver->hc_device, "detach");
|
|
attr_detach = sysfs_get_device_attr(vhci_driver->hc_device, "detach");
|
|
if (!attr_detach) {
|
|
if (!attr_detach) {
|
|
- err("get detach");
|
|
|
|
|
|
+ dbg("sysfs_get_device_attr(\"detach\") failed: %s",
|
|
|
|
+ vhci_driver->hc_device->name);
|
|
return -1;
|
|
return -1;
|
|
}
|
|
}
|
|
|
|
|
|
snprintf(buff, sizeof(buff), "%u", port);
|
|
snprintf(buff, sizeof(buff), "%u", port);
|
|
- dbg("writing to detach");
|
|
|
|
dbg("writing: %s", buff);
|
|
dbg("writing: %s", buff);
|
|
|
|
|
|
ret = sysfs_write_attribute(attr_detach, buff, strlen(buff));
|
|
ret = sysfs_write_attribute(attr_detach, buff, strlen(buff));
|
|
if (ret < 0) {
|
|
if (ret < 0) {
|
|
- err("write to detach failed");
|
|
|
|
|
|
+ dbg("sysfs_write_attribute failed");
|
|
return -1;
|
|
return -1;
|
|
}
|
|
}
|
|
|
|
|
|
- info("port %d detached", port);
|
|
|
|
|
|
+ dbg("detached port: %d", port);
|
|
|
|
|
|
return 0;
|
|
return 0;
|
|
}
|
|
}
|