Lines Matching refs:device
358 void usb_device_close(struct usb_device *device) in usb_device_close() argument
360 close(device->fd); in usb_device_close()
361 free(device); in usb_device_close()
366 struct usb_device *device = calloc(1, sizeof(struct usb_device)); in usb_device_new() local
373 length = read(fd, device->desc, sizeof(device->desc)); in usb_device_new()
378 strncpy(device->dev_name, dev_name, sizeof(device->dev_name) - 1); in usb_device_new()
379 device->fd = fd; in usb_device_new()
380 device->desc_length = length; in usb_device_new()
382 device->writeable = 1; in usb_device_new()
383 return device; in usb_device_new()
389 free(device); in usb_device_new()
393 static int usb_device_reopen_writeable(struct usb_device *device) in usb_device_reopen_writeable() argument
395 if (device->writeable) in usb_device_reopen_writeable()
398 int fd = open(device->dev_name, O_RDWR); in usb_device_reopen_writeable()
400 close(device->fd); in usb_device_reopen_writeable()
401 device->fd = fd; in usb_device_reopen_writeable()
402 device->writeable = 1; in usb_device_reopen_writeable()
409 int usb_device_get_fd(struct usb_device *device) in usb_device_get_fd() argument
411 if (!usb_device_reopen_writeable(device)) in usb_device_get_fd()
413 return device->fd; in usb_device_get_fd()
416 const char* usb_device_get_name(struct usb_device *device) in usb_device_get_name() argument
418 return device->dev_name; in usb_device_get_name()
421 int usb_device_get_unique_id(struct usb_device *device) in usb_device_get_unique_id() argument
424 sscanf(device->dev_name, USB_FS_ID_SCANNER, &bus, &dev); in usb_device_get_unique_id()
444 uint16_t usb_device_get_vendor_id(struct usb_device *device) in usb_device_get_vendor_id() argument
446 struct usb_device_descriptor* desc = (struct usb_device_descriptor*)device->desc; in usb_device_get_vendor_id()
450 uint16_t usb_device_get_product_id(struct usb_device *device) in usb_device_get_product_id() argument
452 struct usb_device_descriptor* desc = (struct usb_device_descriptor*)device->desc; in usb_device_get_product_id()
456 const struct usb_device_descriptor* usb_device_get_device_descriptor(struct usb_device* device) { in usb_device_get_device_descriptor() argument
457 return (struct usb_device_descriptor*)device->desc; in usb_device_get_device_descriptor()
460 size_t usb_device_get_descriptors_length(const struct usb_device* device) { in usb_device_get_descriptors_length() argument
461 return device->desc_length; in usb_device_get_descriptors_length()
464 const unsigned char* usb_device_get_raw_descriptors(const struct usb_device* device) { in usb_device_get_raw_descriptors() argument
465 return device->desc; in usb_device_get_raw_descriptors()
482 int usb_device_get_string_ucs2(struct usb_device* device, int id, int timeout, void** ucs2_out, in usb_device_get_string_ucs2() argument
495 result = usb_device_control_transfer(device, in usb_device_get_string_ucs2()
506 device, USB_DIR_IN | USB_TYPE_STANDARD | USB_RECIP_DEVICE, USB_REQ_GET_DESCRIPTOR, in usb_device_get_string_ucs2()
531 char* usb_device_get_string(struct usb_device* device, int id, int timeout) { in usb_device_get_string() argument
535 if (usb_device_get_string_ucs2(device, id, timeout, (void**)&ascii_string, &raw_string_len) < 0) in usb_device_get_string()
552 char* usb_device_get_manufacturer_name(struct usb_device *device, int timeout) in usb_device_get_manufacturer_name() argument
554 struct usb_device_descriptor *desc = (struct usb_device_descriptor *)device->desc; in usb_device_get_manufacturer_name()
555 return usb_device_get_string(device, desc->iManufacturer, timeout); in usb_device_get_manufacturer_name()
558 char* usb_device_get_product_name(struct usb_device *device, int timeout) in usb_device_get_product_name() argument
560 struct usb_device_descriptor *desc = (struct usb_device_descriptor *)device->desc; in usb_device_get_product_name()
561 return usb_device_get_string(device, desc->iProduct, timeout); in usb_device_get_product_name()
564 int usb_device_get_version(struct usb_device *device) in usb_device_get_version() argument
566 struct usb_device_descriptor *desc = (struct usb_device_descriptor *)device->desc; in usb_device_get_version()
570 char* usb_device_get_serial(struct usb_device *device, int timeout) in usb_device_get_serial() argument
572 struct usb_device_descriptor *desc = (struct usb_device_descriptor *)device->desc; in usb_device_get_serial()
573 return usb_device_get_string(device, desc->iSerialNumber, timeout); in usb_device_get_serial()
576 int usb_device_is_writeable(struct usb_device *device) in usb_device_is_writeable() argument
578 return device->writeable; in usb_device_is_writeable()
581 void usb_descriptor_iter_init(struct usb_device *device, struct usb_descriptor_iter *iter) in usb_descriptor_iter_init() argument
583 iter->config = device->desc; in usb_descriptor_iter_init()
584 iter->config_end = device->desc + device->desc_length; in usb_descriptor_iter_init()
585 iter->curr_desc = device->desc; in usb_descriptor_iter_init()
603 int usb_device_claim_interface(struct usb_device *device, unsigned int interface) in usb_device_claim_interface() argument
605 return ioctl(device->fd, USBDEVFS_CLAIMINTERFACE, &interface); in usb_device_claim_interface()
608 int usb_device_release_interface(struct usb_device *device, unsigned int interface) in usb_device_release_interface() argument
610 return ioctl(device->fd, USBDEVFS_RELEASEINTERFACE, &interface); in usb_device_release_interface()
613 int usb_device_connect_kernel_driver(struct usb_device *device, in usb_device_connect_kernel_driver() argument
621 return ioctl(device->fd, USBDEVFS_IOCTL, &ctl); in usb_device_connect_kernel_driver()
624 int usb_device_set_configuration(struct usb_device *device, int configuration) in usb_device_set_configuration() argument
626 return ioctl(device->fd, USBDEVFS_SETCONFIGURATION, &configuration); in usb_device_set_configuration()
629 int usb_device_set_interface(struct usb_device *device, unsigned int interface, in usb_device_set_interface() argument
636 return ioctl(device->fd, USBDEVFS_SETINTERFACE, &ctl); in usb_device_set_interface()
639 int usb_device_control_transfer(struct usb_device *device, in usb_device_control_transfer() argument
651 if (!usb_device_reopen_writeable(device)) in usb_device_control_transfer()
662 return ioctl(device->fd, USBDEVFS_CONTROL, &ctrl); in usb_device_control_transfer()
665 int usb_device_bulk_transfer(struct usb_device *device, in usb_device_bulk_transfer() argument
678 return ioctl(device->fd, USBDEVFS_BULK, &ctrl); in usb_device_bulk_transfer()
681 int usb_device_reset(struct usb_device *device) in usb_device_reset() argument
683 return ioctl(device->fd, USBDEVFS_RESET); in usb_device_reset()