int read_usb_interface(struct usbip_usb_device *udev, int i, struct usbip_usb_interface *uinf) { char busid[SYSFS_BUS_ID_SIZE]; int size; struct udev_device *sif; size = snprintf(busid, sizeof(busid), "%s:%d.%d", udev->busid, udev->bConfigurationValue, i); if (size < 0 || (unsigned int)size >= sizeof(busid)) { err("busid length %i >= %lu or < 0", size, (long unsigned)sizeof(busid)); return -1; } sif = udev_device_new_from_subsystem_sysname(udev_context, "usb", busid); if (!sif) { err("udev_device_new_from_subsystem_sysname %s failed", busid); return -1; } READ_ATTR(uinf, uint8_t, sif, bInterfaceClass, "%02x\n"); READ_ATTR(uinf, uint8_t, sif, bInterfaceSubClass, "%02x\n"); READ_ATTR(uinf, uint8_t, sif, bInterfaceProtocol, "%02x\n"); return 0; }
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; }
static rc_t CC NodeDataReadAttribs(NodeData* data, const KXMLNode* node, const char* parentName, uint32_t idx) { rc_t rc = 0; assert(node && parentName && data); if (DEBUG_PRINT) OUTMSG(("<%s ", data->nodeName)); GET_ATTR(node, id); GET_ATTR(node, path); GET_ATTR(node, name); GET_ATTR(node, mtime); GET_ATTR(node, filetype); GET_ATTR(node, md5); GET_ATTR(node, crc32); READ_ATTR(node, size); READ_ATTR(node, offset); if (rc == 0) { /* TODO: what size is negative no error is detected */ char * attr = "size"; rc = KXMLNodeReadAttrAsU64(node, attr, &data->iSize); if (rc != 0) { if (GetRCState(rc) == rcNotFound) { rc = 0; } } attr = "offset"; rc = KXMLNodeReadAttrAsU64(node, attr, &data->iOffset); if (rc != 0) { if (GetRCState(rc) == rcNotFound) { rc = 0; } } /* else if (data->nodeName) { PLOGERR(klogErr, (klogErr, rc, "while calling KXMLNodeReadAttrAsU64($(name)/@$(attr))", "name=%s,attr=%s", data->nodeName, attr)); }*/ if (DEBUG_PRINT) { OUTMSG(("%s=\"%lu\" ", attr, data->iSize)); OUTMSG(("%s=\"%lu\" ", attr, data->iOffset)); } } if (DEBUG_PRINT) OUTMSG((">")); if (DEBUG_PRINT && data->nodeValue) OUTMSG(("%s", data->nodeValue)); if (DEBUG_PRINT) OUTMSG(("</%s>\n", data->nodeName)); return rc; }
int read_usb_interface(struct usbip_usb_device *udev, int i, struct usbip_usb_interface *uinf) { char busid[SYSFS_BUS_ID_SIZE]; struct udev_device *sif; sprintf(busid, "%s:%d.%d", udev->busid, udev->bConfigurationValue, i); sif = udev_device_new_from_subsystem_sysname(udev_context, "usb", busid); if (!sif) { err("udev_device_new_from_subsystem_sysname %s failed", busid); return -1; } READ_ATTR(uinf, uint8_t, sif, bInterfaceClass, "%02x\n"); READ_ATTR(uinf, uint8_t, sif, bInterfaceSubClass, "%02x\n"); READ_ATTR(uinf, uint8_t, sif, bInterfaceProtocol, "%02x\n"); return 0; }
int read_usb_interface(struct usb_device *udev, int i, struct usb_interface *uinf) { char busid[SYSFS_BUS_ID_SIZE]; struct sysfs_device *sif; sprintf(busid, "%s:%d.%d", udev->busid, udev->bConfigurationValue, i); sif = sysfs_open_device("usb", busid); if(!sif) { err("open sif of %s", busid); return -1; } READ_ATTR(uinf, uint8_t, sif, bInterfaceClass, "%02x\n"); READ_ATTR(uinf, uint8_t, sif, bInterfaceSubClass, "%02x\n"); READ_ATTR(uinf, uint8_t, sif, bInterfaceProtocol, "%02x\n"); sysfs_close_device(sif); return 0; }