Lines Matching refs:devices

178  * total number of devices that can be found at the same time */
183 static device_list_type devices[MAX_DEVICES];
186 * total number of detected devices in devices array */
366 as the end of controller devices */
377 break; /* Treat this as the end of devices for this controller */
409 /* if there are already some devices present, check against
413 if (devices[i].method == device.method
414 && !strcmp (devices[i].devname, device.devname)
415 && devices[i].vendor == device.vendor
416 && devices[i].product == device.product)
423 devices[i].libusb_device = device.libusb_device;
426 devices[i].lu_device = device.lu_device;
429 devices[i].usb_manager_device = device.usb_manager_device;
432 devices[i].missing=0;
440 if (devices[i].missing >= 2)
449 if (devices[pos].devname) {
450 free(devices[pos].devname);
451 devices[pos].devname = NULL;
463 memcpy (&(devices[pos]), &device, sizeof (device));
464 devices[pos].open = SANE_FALSE;
1358 memcpy(&(devices[device_number]), &device, sizeof(device));
1475 memset (devices, 0, sizeof (devices));
1499 DBG (4, "%s: Looking for libusb devices\n", __func__);
1588 if (devices[i].devname != NULL)
1591 free(devices[i].devname);
1592 devices[i].devname=NULL;
1621 /** scan for devices through usbcall method
1622 * Check for devices using OS/2 USBCALLS Interface
1693 /** scan for devices using kernel device.
1694 * Check for devices using kernel device
1715 DBG (4, "%s: Looking for kernel scanner devices\n", __func__);
1716 /* Check for devices using the kernel scanner driver */
1794 /** scan for devices using old libusb
1795 * Check for devices using 0.1.x libusb
1804 DBG (4, "%s: Looking for libusb devices\n", __func__);
1812 for (dev = bus->devices; dev; dev = dev->next)
1907 /** scan for devices using libusb
1908 * Check for devices using libusb-1.0
1927 DBG (4, "%s: Looking for libusb-1.0 devices\n", __func__);
2085 /** scan for devices using usb_manager
2086 * Check for devices using usb_manager
2105 DBG (4, "%s: Looking for usb_manager devices\n", __func__);
2280 /* we mark all already detected devices as missing */
2283 DBG (4, "%s: marking existing devices\n", __func__);
2286 devices[i].missing++;
2289 /* Check for devices using the kernel scanner driver */
2295 /* Check for devices using libusb (old or new)*/
2300 /* Check for devices using OS/2 USBCALLS Interface */
2304 /* display found devices */
2310 if(!devices[i].missing)
2313 DBG (6, "%s: device %02d is %s\n", __func__, i, devices[i].devname);
2316 DBG (5, "%s: found %d devices\n", __func__, count);
2371 for (i = 0; i < device_number && devices[i].devname; i++)
2373 if (!devices[i].missing && strcmp (devices[i].devname, devname) == 0)
2386 if ((devices[i].vendor == 0) && (devices[i].product == 0))
2393 *vendor = devices[i].vendor;
2396 *product = devices[i].product;
2413 if (devices[dn].missing >= 1)
2421 vendorID = devices[dn].vendor;
2422 productID = devices[dn].product;
2453 while (devices[dn].devname && dn < device_number)
2455 if (devices[dn].vendor == vendor
2456 && devices[dn].product == product
2457 && !devices[dn].missing
2459 attach (devices[dn].devname);
2478 devices[dn].bulk_in_ep = ep;
2481 devices[dn].bulk_out_ep = ep;
2484 devices[dn].iso_in_ep = ep;
2487 devices[dn].iso_out_ep = ep;
2490 devices[dn].int_in_ep = ep;
2493 devices[dn].int_out_ep = ep;
2496 devices[dn].control_in_ep = ep;
2499 devices[dn].control_out_ep = ep;
2587 return devices[dn].bulk_in_ep;
2589 return devices[dn].bulk_out_ep;
2591 return devices[dn].iso_in_ep;
2593 return devices[dn].iso_out_ep;
2595 return devices[dn].int_in_ep;
2597 return devices[dn].int_out_ep;
2599 return devices[dn].control_in_ep;
2601 return devices[dn].control_out_ep;
2632 sanei_xml_set_hex_attr(e_description, "id_vendor", devices[dn].vendor);
2633 sanei_xml_set_hex_attr(e_description, "id_product", devices[dn].product);
2646 sanei_xml_set_uint_attr(e_interface, "number", devices[dn].interface_nr);
2656 { "BULK", "IN", devices[dn].bulk_in_ep },
2657 { "BULK", "OUT", devices[dn].bulk_out_ep },
2658 { "ISOCHRONOUS", "IN", devices[dn].iso_in_ep },
2659 { "ISOCHRONOUS", "OUT", devices[dn].iso_out_ep },
2660 { "INTERRUPT", "IN", devices[dn].int_in_ep },
2661 { "INTERRUPT", "OUT", devices[dn].int_out_ep },
2662 { "CONTROL", "IN", devices[dn].control_in_ep },
2663 { "CONTROL", "OUT", devices[dn].control_out_ep }
2708 devcount < device_number && devices[devcount].devname != 0;
2711 if (!devices[devcount].missing && strcmp (devices[devcount].devname, devname) == 0)
2713 if (devices[devcount].open)
2735 else if (devices[devcount].method == sanei_usb_method_libusb)
2743 devices[devcount].libusb_handle =
2744 usb_open (devices[devcount].libusb_device);
2745 if (!devices[devcount].libusb_handle)
2766 dev = usb_device (devices[devcount].libusb_handle);
2781 result = usb_set_configuration (devices[devcount].libusb_handle,
2803 usb_close (devices[devcount].libusb_handle);
2810 result = usb_claim_interface (devices[devcount].libusb_handle,
2811 devices[devcount].interface_nr);
2829 usb_close (devices[devcount].libusb_handle);
2847 if (c == 0 && i != devices[devcount].interface_nr)
2869 sanei_usb_add_endpoint(&devices[devcount], transfer_type,
2886 dev = devices[devcount].lu_device;
2888 result = libusb_open (dev, &devices[devcount].lu_handle);
2914 result = libusb_get_configuration (devices[devcount].lu_handle, &config);
2959 result = libusb_set_configuration (devices[devcount].lu_handle,
2983 libusb_close (devices[devcount].lu_handle);
2992 result = libusb_claim_interface (devices[devcount].lu_handle,
2993 devices[devcount].interface_nr);
3013 libusb_close (devices[devcount].lu_handle);
3044 if (c == 0 && i != devices[devcount].interface_nr)
3086 sanei_usb_add_endpoint(&devices[devcount],
3105 dev = devices[devcount].usb_manager_device;
3107 result = usb_manager_open (dev, &devices[devcount].usb_manager_handle);
3133 result = usb_manager_get_configuration (devices[devcount].usb_manager_handle, &config);
3178 result = usb_manager_set_configuration (devices[devcount].usb_manager_handle,
3202 usb_manager_close (devices[devcount].usb_manager_handle);
3211 result = usb_manager_claim_interface (devices[devcount].usb_manager_handle,
3212 devices[devcount].interface_nr);
3232 usb_manager_close (devices[devcount].usb_manager_handle);
3263 if (c == 0 && i != devices[devcount].interface_nr)
3305 sanei_usb_add_endpoint(&devices[devcount],
3321 else if (devices[devcount].method == sanei_usb_method_scanner_driver)
3327 devices[devcount].fd = -1;
3329 devices[devcount].fd = rsm_open_device (devname, O_RDWR);
3331 if (devices[devcount].fd == -1)
3332 devices[devcount].fd = open (devname, O_RDWR);
3333 if (devices[devcount].fd < 0)
3350 flag = fcntl (devices[devcount].fd, F_GETFD);
3353 if (fcntl (devices[devcount].fd, F_SETFD, flag | FD_CLOEXEC) < 0)
3359 else if (devices[devcount].method == sanei_usb_method_usbcalls)
3376 DBG (5, "devname = %s, devcount = %d\n",devices[devcount].devname,devcount);
3377 DBG (5, "USBCalls device number to open = %d\n",devices[devcount].fd);
3379 devices[devcount].vendor,devices[devcount].product);
3382 devices[devcount].vendor,
3383 devices[devcount].product,
3394 rc = UsbQueryDeviceReport( devices[devcount].fd,
3443 sanei_usb_add_endpoint(&devices[devcount], transfer_type,
3466 devices[devcount].method);
3480 devices[devcount].open = SANE_TRUE;
3507 if (!devices[dn].open)
3517 else if (devices[dn].method == sanei_usb_method_scanner_driver)
3518 close (devices[dn].fd);
3519 else if (devices[dn].method == sanei_usb_method_usbcalls)
3538 sanei_usb_set_altinterface (dn, devices[dn].alt_setting);
3541 usb_release_interface (devices[dn].libusb_handle,
3542 devices[dn].interface_nr);
3543 usb_close (devices[dn].libusb_handle);
3553 sanei_usb_set_altinterface (dn, devices[dn].alt_setting);
3556 libusb_release_interface (devices[dn].lu_handle,
3557 devices[dn].interface_nr);
3558 libusb_close (devices[dn].lu_handle);
3568 sanei_usb_set_altinterface (dn, devices[dn].alt_setting);
3571 usb_manager_release_interface (devices[dn].usb_manager_handle,
3572 devices[dn].interface_nr);
3573 usb_manager_close (devices[dn].usb_manager_handle);
3578 devices[dn].open = SANE_FALSE;
3629 sanei_usb_set_altinterface (dn, devices[dn].alt_setting);
3632 ret = usb_clear_halt (devices[dn].libusb_handle, devices[dn].bulk_in_ep);
3638 ret = usb_clear_halt (devices[dn].libusb_handle, devices[dn].bulk_out_ep);
3653 sanei_usb_set_altinterface (dn, devices[dn].alt_setting);
3656 ret = libusb_clear_halt (devices[dn].lu_handle, devices[dn].bulk_in_ep);
3662 ret = libusb_clear_halt (devices[dn].lu_handle, devices[dn].bulk_out_ep);
3676 sanei_usb_set_altinterface (dn, devices[dn].alt_setting);
3679 ret = usb_manager_clear_halt (devices[dn].usb_manager_handle, devices[dn].bulk_in_ep);
3685 ret = usb_manager_clear_halt (devices[dn].usb_manager_handle, devices[dn].bulk_out_ep);
3706 ret = usb_reset (devices[dn].libusb_handle);
3715 ret = libusb_reset_device (devices[dn].lu_handle);
3723 ret = usb_manager_reset_device (devices[dn].usb_manager_handle);
3752 devices[dn].bulk_in_ep & 0x0f))
3770 sanei_xml_command_common_props(e_tx, devices[dn].bulk_in_ep & 0x0f, "IN");
3855 devices[dn].bulk_in_ep & 0x0f,
3918 else if (devices[dn].method == sanei_usb_method_scanner_driver)
3920 read_size = read (devices[dn].fd, buffer, *size);
3926 else if (devices[dn].method == sanei_usb_method_libusb)
3929 if (devices[dn].bulk_in_ep)
3931 read_size = usb_bulk_read (devices[dn].libusb_handle,
3932 devices[dn].bulk_in_ep, (char *) buffer,
3948 if (devices[dn].bulk_in_ep)
3951 ret = libusb_bulk_transfer (devices[dn].lu_handle,
3952 devices[dn].bulk_in_ep, buffer,
3977 if (devices[dn].bulk_in_ep)
3980 ret = usb_manager_bulk_transfer (devices[dn].usb_manager_handle,
3981 devices[dn].bulk_in_ep, buffer,
4010 else if (devices[dn].method == sanei_usb_method_usbcalls)
4022 DBG (5, "Entered usbcalls UsbBulkRead with bulk_in_ep = 0x%02x\n",devices[dn].bulk_in_ep);
4023 DBG (5, "Entered usbcalls UsbBulkRead with interface_nr = %d\n",devices[dn].interface_nr);
4026 if (devices[dn].bulk_in_ep){
4027 rc = UsbBulkRead (dh, devices[dn].bulk_in_ep, devices[dn].interface_nr,
4050 devices[dn].method);
4071 if (devices[dn].method == sanei_usb_method_libusb)
4072 usb_clear_halt (devices[dn].libusb_handle, devices[dn].bulk_in_ep);
4074 if (devices[dn].method == sanei_usb_method_libusb)
4075 libusb_clear_halt (devices[dn].lu_handle, devices[dn].bulk_in_ep);
4077 if (devices[dn].method == sanei_usb_method_usb_manager)
4078 usb_manager_clear_halt (devices[dn].usb_manager_handle, devices[dn].bulk_in_ep);
4107 sanei_xml_command_common_props(e_tx, devices[dn].bulk_out_ep & 0x0f, "OUT");
4145 devices[dn].bulk_out_ep & 0x0f))
4194 devices[dn].bulk_out_ep & 0x0f,
4286 else if (devices[dn].method == sanei_usb_method_scanner_driver)
4288 write_size = write (devices[dn].fd, buffer, *size);
4294 else if (devices[dn].method == sanei_usb_method_libusb)
4297 if (devices[dn].bulk_out_ep)
4299 write_size = usb_bulk_write (devices[dn].libusb_handle,
4300 devices[dn].bulk_out_ep,
4316 if (devices[dn].bulk_out_ep)
4320 ret = libusb_bulk_transfer (devices[dn].lu_handle,
4321 devices[dn].bulk_out_ep,
4344 if (devices[dn].bulk_out_ep)
4348 ret = usb_manager_bulk_transfer (devices[dn].usb_manager_handle,
4349 devices[dn].bulk_out_ep,
4376 else if (devices[dn].method == sanei_usb_method_usbcalls)
4382 DBG (5, "Entered usbcalls UsbBulkWrite with bulk_out_ep = 0x%02x\n",devices[dn].bulk_out_ep);
4383 DBG (5, "Entered usbcalls UsbBulkWrite with interface_nr = %d\n",devices[dn].interface_nr);
4391 if (devices[dn].bulk_out_ep){
4392 rc = UsbBulkWrite (dh, devices[dn].bulk_out_ep, devices[dn].interface_nr,
4417 devices[dn].method);
4438 if (devices[dn].method == sanei_usb_method_libusb)
4439 usb_clear_halt (devices[dn].libusb_handle, devices[dn].bulk_out_ep);
4441 if (devices[dn].method == sanei_usb_method_libusb)
4442 libusb_clear_halt (devices[dn].lu_handle, devices[dn].bulk_out_ep);
4444 if (devices[dn].method == sanei_usb_method_usb_manager)
4445 usb_manager_clear_halt (devices[dn].usb_manager_handle, devices[dn].bulk_out_ep);
4637 if (devices[dn].method == sanei_usb_method_scanner_driver)
4649 if (ioctl (devices[dn].fd, SCANNER_IOCTL_CTRLMSG, &c) < 0)
4667 if (ioctl (devices[dn].fd, B_SCANNER_IOCTL_CTRLMSG, &c) < 0)
4680 else if (devices[dn].method == sanei_usb_method_libusb)
4685 result = usb_control_msg (devices[dn].libusb_handle, rtype, req,
4701 result = libusb_control_transfer (devices[dn].lu_handle, rtype, req,
4717 result = usb_manager_control_transfer (devices[dn].usb_manager_handle, rtype, req,
4735 else if (devices[dn].method == sanei_usb_method_usbcalls)
4761 devices[dn].method);
4792 sanei_xml_command_common_props(e_tx, devices[dn].int_in_ep & 0x0f, "IN");
4873 devices[dn].int_in_ep & 0x0f,
4935 else if (devices[dn].method == sanei_usb_method_scanner_driver)
4938 devices[dn].method);
4941 else if (devices[dn].method == sanei_usb_method_libusb)
4944 if (devices[dn].int_in_ep)
4946 read_size = usb_interrupt_read (devices[dn].libusb_handle,
4947 devices[dn].int_in_ep,
4966 if (devices[dn].int_in_ep)
4970 ret = libusb_interrupt_transfer (devices[dn].lu_handle,
4971 devices[dn].int_in_ep,
4991 if (devices[dn].int_in_ep)
4995 ret = usb_manager_interrupt_transfer (devices[dn].usb_manager_handle,
4996 devices[dn].int_in_ep,
5020 else if (devices[dn].method == sanei_usb_method_usbcalls)
5027 DBG (5, "Entered usbcalls UsbIrqStart with int_in_ep = 0x%02x\n",devices[dn].int_in_ep);
5028 DBG (5, "Entered usbcalls UsbIrqStart with interface_nr = %d\n",devices[dn].interface_nr);
5031 if (devices[dn].int_in_ep){
5032 rc = UsbIrqStart (dh,devices[dn].int_in_ep,devices[dn].interface_nr,
5052 devices[dn].method);
5073 if (devices[dn].method == sanei_usb_method_libusb)
5075 usb_clear_halt (devices[dn].libusb_handle, devices[dn].int_in_ep);
5077 if (devices[dn].method == sanei_usb_method_libusb)
5079 libusb_clear_halt (devices[dn].lu_handle, devices[dn].int_in_ep);
5081 if (devices[dn].method == sanei_usb_method_usb_manager)
5083 usb_manager_clear_halt (devices[dn].usb_manager_handle, devices[dn].int_in_ep);
5186 else if (devices[dn].method == sanei_usb_method_scanner_driver)
5195 else if (devices[dn].method == sanei_usb_method_libusb)
5201 usb_set_configuration (devices[dn].libusb_handle, configuration);
5214 result = libusb_set_configuration (devices[dn].lu_handle, configuration);
5227 result = usb_manager_set_configuration (devices[dn].usb_manager_handle, configuration);
5246 devices[dn].method);
5261 if (devices[dn].missing)
5273 else if (devices[dn].method == sanei_usb_method_scanner_driver)
5282 else if (devices[dn].method == sanei_usb_method_libusb)
5287 result = usb_claim_interface (devices[dn].libusb_handle, interface_number);
5300 result = libusb_claim_interface (devices[dn].lu_handle, interface_number);
5313 result = usb_manager_claim_interface (devices[dn].usb_manager_handle, interface_number);
5331 devices[dn].method);
5346 if (devices[dn].missing)
5357 else if (devices[dn].method == sanei_usb_method_scanner_driver)
5366 else if (devices[dn].method == sanei_usb_method_libusb)
5371 result = usb_release_interface (devices[dn].libusb_handle, interface_number);
5384 result = libusb_release_interface (devices[dn].lu_handle, interface_number);
5397 result = usb_manager_release_interface (devices[dn].usb_manager_handle, interface_number);
5416 devices[dn].method);
5434 devices[dn].alt_setting = alternate;
5440 else if (devices[dn].method == sanei_usb_method_scanner_driver)
5449 else if (devices[dn].method == sanei_usb_method_libusb)
5454 result = usb_set_altinterface (devices[dn].libusb_handle, alternate);
5467 result = libusb_set_interface_alt_setting (devices[dn].lu_handle,
5468 devices[dn].interface_nr, alternate);
5481 result = usb_manager_set_interface_alt_setting (devices[dn].usb_manager_handle,
5482 devices[dn].interface_nr, alternate);
5501 devices[dn].method);
5623 usb_descr = &(devices[dn].libusb_device->descriptor);
5638 ret = libusb_get_device_descriptor (devices[dn].lu_device, &lu_desc);
5662 ret = usb_manager_get_device_descriptor (devices[dn].usb_manager_device, &usb_manager_desc);