int read_usb_device(struct udev_device *sdev, struct usbip_usb_device *udev) { uint32_t busnum, devnum; const char *path, *name; READ_ATTR(udev, uint8_t, sdev, bDeviceClass, "%02x\n"); READ_ATTR(udev, uint8_t, sdev, bDeviceSubClass, "%02x\n"); READ_ATTR(udev, uint8_t, sdev, bDeviceProtocol, "%02x\n"); READ_ATTR(udev, uint16_t, sdev, idVendor, "%04x\n"); READ_ATTR(udev, uint16_t, sdev, idProduct, "%04x\n"); READ_ATTR(udev, uint16_t, sdev, bcdDevice, "%04x\n"); READ_ATTR(udev, uint8_t, sdev, bConfigurationValue, "%02x\n"); READ_ATTR(udev, uint8_t, sdev, bNumConfigurations, "%02x\n"); READ_ATTR(udev, uint8_t, sdev, bNumInterfaces, "%02x\n"); READ_ATTR(udev, uint8_t, sdev, devnum, "%d\n"); udev->speed = read_attr_speed(sdev); path = udev_device_get_syspath(sdev); name = udev_device_get_sysname(sdev); strncpy(udev->path, path, SYSFS_PATH_MAX); strncpy(udev->busid, name, SYSFS_BUS_ID_SIZE); sscanf(name, "%u-%u", &busnum, &devnum); udev->busnum = busnum; return 0; }
int read_usb_device(struct sysfs_device *sdev, struct usb_device *udev) { uint32_t busnum, devnum; READ_ATTR(udev, uint8_t, sdev, bDeviceClass, "%02x\n"); READ_ATTR(udev, uint8_t, sdev, bDeviceSubClass, "%02x\n"); READ_ATTR(udev, uint8_t, sdev, bDeviceProtocol, "%02x\n"); READ_ATTR(udev, uint16_t, sdev, idVendor, "%04x\n"); READ_ATTR(udev, uint16_t, sdev, idProduct, "%04x\n"); READ_ATTR(udev, uint16_t, sdev, bcdDevice, "%04x\n"); READ_ATTR(udev, uint8_t, sdev, bConfigurationValue, "%02x\n"); READ_ATTR(udev, uint8_t, sdev, bNumConfigurations, "%02x\n"); READ_ATTR(udev, uint8_t, sdev, bNumInterfaces, "%02x\n"); READ_ATTR(udev, uint8_t, sdev, devnum, "%d\n"); udev->speed = read_attr_speed(sdev); #if CLIENT > 2 // added by zl 2011-2-12 read_attr_string(sdev, udev->product, to_string(product)); // product read_attr_string(sdev, udev->manufacturer, to_string(manufacturer)); // manufacturer read_attr_string(sdev, udev->serial, to_string(serial)); // serialNumber // end----added #endif strncpy(udev->path, sdev->path, SYSFS_PATH_MAX); strncpy(udev->busid, sdev->name, SYSFS_BUS_ID_SIZE); sscanf(sdev->name, "%u-%u", &busnum, &devnum); udev->busnum = busnum; return 0; }