Lines Matching defs:discdevs
632 static void discovered_devs_free(struct discovered_devs *discdevs)
636 for (i = 0; i < discdevs->len; i++)
637 libusb_unref_device(discdevs->devices[i]);
639 free(discdevs);
643 * returning new discdevs. returns NULL on realloc failure. */
645 struct discovered_devs *discdevs, struct libusb_device *dev)
647 size_t len = discdevs->len;
652 if (len < discdevs->capacity) {
653 discdevs->devices[len] = libusb_ref_device(dev);
654 discdevs->len++;
655 return discdevs;
660 capacity = discdevs->capacity + DISCOVERED_DEVICES_SIZE_STEP;
662 * free the existing discdevs without unreferencing its devices. */
663 new_discdevs = realloc(discdevs,
664 sizeof(*discdevs) + (sizeof(void *) * capacity));
666 discovered_devs_free(discdevs);
670 discdevs = new_discdevs;
671 discdevs->capacity = capacity;
672 discdevs->devices[len] = libusb_ref_device(dev);
673 discdevs->len++;
675 return discdevs;
813 struct discovered_devs *discdevs = discovered_devs_alloc();
820 if (!discdevs)
832 discdevs = discovered_devs_append(discdevs, dev);
834 if (!discdevs) {
842 r = usbi_backend->get_device_list(ctx, &discdevs);
851 len = discdevs->len;
860 struct libusb_device *dev = discdevs->devices[i];
866 if (discdevs)
867 discovered_devs_free(discdevs);