summaryrefslogtreecommitdiffstats
path: root/src/usb.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/usb.c')
-rw-r--r--src/usb.c46
1 files changed, 23 insertions, 23 deletions
diff --git a/src/usb.c b/src/usb.c
index 7b78b02..845ac62 100644
--- a/src/usb.c
+++ b/src/usb.c
@@ -97,7 +97,7 @@ static void usb_disconnect(struct usb_device *dev)
97 tv.tv_sec = 0; 97 tv.tv_sec = 0;
98 tv.tv_usec = 1000; 98 tv.tv_usec = 1000;
99 if((res = libusb_handle_events_timeout(NULL, &tv)) < 0) { 99 if((res = libusb_handle_events_timeout(NULL, &tv)) < 0) {
100 usbmuxd_log(LL_ERROR, "libusb_handle_events_timeout for usb_disconnect failed: %d", res); 100 usbmuxd_log(LL_ERROR, "libusb_handle_events_timeout for usb_disconnect failed: %s", libusb_error_name(res));
101 break; 101 break;
102 } 102 }
103 } 103 }
@@ -169,7 +169,7 @@ int usb_send(struct usb_device *dev, const unsigned char *buf, int length)
169 struct libusb_transfer *xfer = libusb_alloc_transfer(0); 169 struct libusb_transfer *xfer = libusb_alloc_transfer(0);
170 libusb_fill_bulk_transfer(xfer, dev->dev, dev->ep_out, (void*)buf, length, tx_callback, dev, 0); 170 libusb_fill_bulk_transfer(xfer, dev->dev, dev->ep_out, (void*)buf, length, tx_callback, dev, 0);
171 if((res = libusb_submit_transfer(xfer)) < 0) { 171 if((res = libusb_submit_transfer(xfer)) < 0) {
172 usbmuxd_log(LL_ERROR, "Failed to submit TX transfer %p len %d to device %d-%d: %d", buf, length, dev->bus, dev->address, res); 172 usbmuxd_log(LL_ERROR, "Failed to submit TX transfer %p len %d to device %d-%d: %s", buf, length, dev->bus, dev->address, libusb_error_name(res));
173 libusb_free_transfer(xfer); 173 libusb_free_transfer(xfer);
174 return res; 174 return res;
175 } 175 }
@@ -181,7 +181,7 @@ int usb_send(struct usb_device *dev, const unsigned char *buf, int length)
181 void *buffer = malloc(1); 181 void *buffer = malloc(1);
182 libusb_fill_bulk_transfer(xfer, dev->dev, dev->ep_out, buffer, 0, tx_callback, dev, 0); 182 libusb_fill_bulk_transfer(xfer, dev->dev, dev->ep_out, buffer, 0, tx_callback, dev, 0);
183 if((res = libusb_submit_transfer(xfer)) < 0) { 183 if((res = libusb_submit_transfer(xfer)) < 0) {
184 usbmuxd_log(LL_ERROR, "Failed to submit TX ZLP transfer to device %d-%d: %d", dev->bus, dev->address, res); 184 usbmuxd_log(LL_ERROR, "Failed to submit TX ZLP transfer to device %d-%d: %s", dev->bus, dev->address, libusb_error_name(res));
185 libusb_free_transfer(xfer); 185 libusb_free_transfer(xfer);
186 return res; 186 return res;
187 } 187 }
@@ -248,7 +248,7 @@ static int start_rx_loop(struct usb_device *dev)
248 buf = malloc(USB_MRU); 248 buf = malloc(USB_MRU);
249 libusb_fill_bulk_transfer(xfer, dev->dev, dev->ep_in, buf, USB_MRU, rx_callback, dev, 0); 249 libusb_fill_bulk_transfer(xfer, dev->dev, dev->ep_in, buf, USB_MRU, rx_callback, dev, 0);
250 if((res = libusb_submit_transfer(xfer)) != 0) { 250 if((res = libusb_submit_transfer(xfer)) != 0) {
251 usbmuxd_log(LL_ERROR, "Failed to submit RX transfer to device %d-%d: %d", dev->bus, dev->address, res); 251 usbmuxd_log(LL_ERROR, "Failed to submit RX transfer to device %d-%d: %s", dev->bus, dev->address, libusb_error_name(res));
252 libusb_free_transfer(xfer); 252 libusb_free_transfer(xfer);
253 return res; 253 return res;
254 } 254 }
@@ -350,7 +350,7 @@ static void get_langid_callback(struct libusb_transfer *transfer)
350 libusb_fill_control_transfer(transfer, usbdev->dev, transfer->buffer, get_serial_callback, usbdev, 1000); 350 libusb_fill_control_transfer(transfer, usbdev->dev, transfer->buffer, get_serial_callback, usbdev, 1000);
351 351
352 if((res = libusb_submit_transfer(transfer)) < 0) { 352 if((res = libusb_submit_transfer(transfer)) < 0) {
353 usbmuxd_log(LL_ERROR, "Could not request transfer for device %d-%d (%d)", usbdev->bus, usbdev->address, res); 353 usbmuxd_log(LL_ERROR, "Could not request transfer for device %d-%d: %s", usbdev->bus, usbdev->address, libusb_error_name(res));
354 libusb_free_transfer(transfer); 354 libusb_free_transfer(transfer);
355 } 355 }
356} 356}
@@ -375,7 +375,7 @@ static int usb_device_add(libusb_device* dev)
375 return 0; //device already found 375 return 0; //device already found
376 376
377 if((res = libusb_get_device_descriptor(dev, &devdesc)) != 0) { 377 if((res = libusb_get_device_descriptor(dev, &devdesc)) != 0) {
378 usbmuxd_log(LL_WARNING, "Could not get device descriptor for device %d-%d: %d", bus, address, res); 378 usbmuxd_log(LL_WARNING, "Could not get device descriptor for device %d-%d: %s", bus, address, libusb_error_name(res));
379 return -1; 379 return -1;
380 } 380 }
381 if(devdesc.idVendor != VID_APPLE) 381 if(devdesc.idVendor != VID_APPLE)
@@ -389,7 +389,7 @@ static int usb_device_add(libusb_device* dev)
389 // No blocking operation can follow: it may be run in the libusb hotplug callback and libusb will refuse any 389 // No blocking operation can follow: it may be run in the libusb hotplug callback and libusb will refuse any
390 // blocking call 390 // blocking call
391 if((res = libusb_open(dev, &handle)) != 0) { 391 if((res = libusb_open(dev, &handle)) != 0) {
392 usbmuxd_log(LL_WARNING, "Could not open device %d-%d: %d", bus, address, res); 392 usbmuxd_log(LL_WARNING, "Could not open device %d-%d: %s", bus, address, libusb_error_name(res));
393 return -1; 393 return -1;
394 } 394 }
395 395
@@ -399,25 +399,25 @@ static int usb_device_add(libusb_device* dev)
399 } 399 }
400 int current_config = 0; 400 int current_config = 0;
401 if((res = libusb_get_configuration(handle, &current_config)) != 0) { 401 if((res = libusb_get_configuration(handle, &current_config)) != 0) {
402 usbmuxd_log(LL_WARNING, "Could not get configuration for device %d-%d: %d", bus, address, res); 402 usbmuxd_log(LL_WARNING, "Could not get configuration for device %d-%d: %s", bus, address, libusb_error_name(res));
403 libusb_close(handle); 403 libusb_close(handle);
404 return -1; 404 return -1;
405 } 405 }
406 if (current_config != desired_config) { 406 if (current_config != desired_config) {
407 struct libusb_config_descriptor *config; 407 struct libusb_config_descriptor *config;
408 if((res = libusb_get_active_config_descriptor(dev, &config)) != 0) { 408 if((res = libusb_get_active_config_descriptor(dev, &config)) != 0) {
409 usbmuxd_log(LL_NOTICE, "Could not get old configuration descriptor for device %d-%d: %d", bus, address, res); 409 usbmuxd_log(LL_NOTICE, "Could not get old configuration descriptor for device %d-%d: %s", bus, address, libusb_error_name(res));
410 } else { 410 } else {
411 for(j=0; j<config->bNumInterfaces; j++) { 411 for(j=0; j<config->bNumInterfaces; j++) {
412 const struct libusb_interface_descriptor *intf = &config->interface[j].altsetting[0]; 412 const struct libusb_interface_descriptor *intf = &config->interface[j].altsetting[0];
413 if((res = libusb_kernel_driver_active(handle, intf->bInterfaceNumber)) < 0) { 413 if((res = libusb_kernel_driver_active(handle, intf->bInterfaceNumber)) < 0) {
414 usbmuxd_log(LL_NOTICE, "Could not check kernel ownership of interface %d for device %d-%d: %d", intf->bInterfaceNumber, bus, address, res); 414 usbmuxd_log(LL_NOTICE, "Could not check kernel ownership of interface %d for device %d-%d: %s", intf->bInterfaceNumber, bus, address, libusb_error_name(res));
415 continue; 415 continue;
416 } 416 }
417 if(res == 1) { 417 if(res == 1) {
418 usbmuxd_log(LL_INFO, "Detaching kernel driver for device %d-%d, interface %d", bus, address, intf->bInterfaceNumber); 418 usbmuxd_log(LL_INFO, "Detaching kernel driver for device %d-%d, interface %d", bus, address, intf->bInterfaceNumber);
419 if((res = libusb_detach_kernel_driver(handle, intf->bInterfaceNumber)) < 0) { 419 if((res = libusb_detach_kernel_driver(handle, intf->bInterfaceNumber)) < 0) {
420 usbmuxd_log(LL_WARNING, "Could not detach kernel driver (%d), configuration change will probably fail!", res); 420 usbmuxd_log(LL_WARNING, "Could not detach kernel driver, configuration change will probably fail! %s", libusb_error_name(res));
421 continue; 421 continue;
422 } 422 }
423 } 423 }
@@ -427,7 +427,7 @@ static int usb_device_add(libusb_device* dev)
427 427
428 usbmuxd_log(LL_INFO, "Setting configuration for device %d-%d, from %d to %d", bus, address, current_config, desired_config); 428 usbmuxd_log(LL_INFO, "Setting configuration for device %d-%d, from %d to %d", bus, address, current_config, desired_config);
429 if((res = libusb_set_configuration(handle, desired_config)) != 0) { 429 if((res = libusb_set_configuration(handle, desired_config)) != 0) {
430 usbmuxd_log(LL_WARNING, "Could not set configuration %d for device %d-%d: %d", desired_config, bus, address, res); 430 usbmuxd_log(LL_WARNING, "Could not set configuration %d for device %d-%d: %s", desired_config, bus, address, libusb_error_name(res));
431 libusb_close(handle); 431 libusb_close(handle);
432 return -1; 432 return -1;
433 } 433 }
@@ -435,7 +435,7 @@ static int usb_device_add(libusb_device* dev)
435 435
436 struct libusb_config_descriptor *config; 436 struct libusb_config_descriptor *config;
437 if((res = libusb_get_active_config_descriptor(dev, &config)) != 0) { 437 if((res = libusb_get_active_config_descriptor(dev, &config)) != 0) {
438 usbmuxd_log(LL_WARNING, "Could not get configuration descriptor for device %d-%d: %d", bus, address, res); 438 usbmuxd_log(LL_WARNING, "Could not get configuration descriptor for device %d-%d: %s", bus, address, libusb_error_name(res));
439 libusb_close(handle); 439 libusb_close(handle);
440 return -1; 440 return -1;
441 } 441 }
@@ -484,7 +484,7 @@ static int usb_device_add(libusb_device* dev)
484 libusb_free_config_descriptor(config); 484 libusb_free_config_descriptor(config);
485 485
486 if((res = libusb_claim_interface(handle, usbdev->interface)) != 0) { 486 if((res = libusb_claim_interface(handle, usbdev->interface)) != 0) {
487 usbmuxd_log(LL_WARNING, "Could not claim interface %d for device %d-%d: %d", usbdev->interface, bus, address, res); 487 usbmuxd_log(LL_WARNING, "Could not claim interface %d for device %d-%d: %s", usbdev->interface, bus, address, libusb_error_name(res));
488 libusb_close(handle); 488 libusb_close(handle);
489 free(usbdev); 489 free(usbdev);
490 return -1; 490 return -1;
@@ -492,7 +492,7 @@ static int usb_device_add(libusb_device* dev)
492 492
493 transfer = libusb_alloc_transfer(0); 493 transfer = libusb_alloc_transfer(0);
494 if(!transfer) { 494 if(!transfer) {
495 usbmuxd_log(LL_WARNING, "Failed to allocate transfer for device %d-%d: %d", bus, address, res); 495 usbmuxd_log(LL_WARNING, "Failed to allocate transfer for device %d-%d: %s", bus, address, libusb_error_name(res));
496 libusb_close(handle); 496 libusb_close(handle);
497 free(usbdev); 497 free(usbdev);
498 return -1; 498 return -1;
@@ -500,7 +500,7 @@ static int usb_device_add(libusb_device* dev)
500 500
501 unsigned char *transfer_buffer = malloc(1024 + LIBUSB_CONTROL_SETUP_SIZE + 8); 501 unsigned char *transfer_buffer = malloc(1024 + LIBUSB_CONTROL_SETUP_SIZE + 8);
502 if (!transfer_buffer) { 502 if (!transfer_buffer) {
503 usbmuxd_log(LL_WARNING, "Failed to allocate transfer buffer for device %d-%d: %d", bus, address, res); 503 usbmuxd_log(LL_WARNING, "Failed to allocate transfer buffer for device %d-%d: %s", bus, address, libusb_error_name(res));
504 libusb_close(handle); 504 libusb_close(handle);
505 free(usbdev); 505 free(usbdev);
506 return -1; 506 return -1;
@@ -551,7 +551,7 @@ static int usb_device_add(libusb_device* dev)
551 libusb_fill_control_transfer(transfer, handle, transfer_buffer, get_langid_callback, usbdev, 1000); 551 libusb_fill_control_transfer(transfer, handle, transfer_buffer, get_langid_callback, usbdev, 1000);
552 552
553 if((res = libusb_submit_transfer(transfer)) < 0) { 553 if((res = libusb_submit_transfer(transfer)) < 0) {
554 usbmuxd_log(LL_ERROR, "Could not request transfer for device %d-%d (%d)", usbdev->bus, usbdev->address, res); 554 usbmuxd_log(LL_ERROR, "Could not request transfer for device %d-%d: %s", usbdev->bus, usbdev->address, libusb_error_name(res));
555 libusb_free_transfer(transfer); 555 libusb_free_transfer(transfer);
556 libusb_close(handle); 556 libusb_close(handle);
557 free(transfer_buffer); 557 free(transfer_buffer);
@@ -703,7 +703,7 @@ int usb_get_timeout(void)
703 if(res == 0) 703 if(res == 0)
704 return pollrem; 704 return pollrem;
705 if(res < 0) { 705 if(res < 0) {
706 usbmuxd_log(LL_ERROR, "libusb_get_next_timeout failed: %d", res); 706 usbmuxd_log(LL_ERROR, "libusb_get_next_timeout failed: %s", libusb_error_name(res));
707 return pollrem; 707 return pollrem;
708 } 708 }
709 msec = tv.tv_sec * 1000; 709 msec = tv.tv_sec * 1000;
@@ -720,7 +720,7 @@ int usb_process(void)
720 tv.tv_sec = tv.tv_usec = 0; 720 tv.tv_sec = tv.tv_usec = 0;
721 res = libusb_handle_events_timeout(NULL, &tv); 721 res = libusb_handle_events_timeout(NULL, &tv);
722 if(res < 0) { 722 if(res < 0) {
723 usbmuxd_log(LL_ERROR, "libusb_handle_events_timeout failed: %d", res); 723 usbmuxd_log(LL_ERROR, "libusb_handle_events_timeout failed: %s", libusb_error_name(res));
724 return res; 724 return res;
725 } 725 }
726 726
@@ -730,7 +730,7 @@ int usb_process(void)
730 if(dev_poll_remain_ms() <= 0) { 730 if(dev_poll_remain_ms() <= 0) {
731 res = usb_discover(); 731 res = usb_discover();
732 if(res < 0) { 732 if(res < 0) {
733 usbmuxd_log(LL_ERROR, "usb_discover failed: %d", res); 733 usbmuxd_log(LL_ERROR, "usb_discover failed: %s", libusb_error_name(res));
734 return res; 734 return res;
735 } 735 }
736 } 736 }
@@ -755,7 +755,7 @@ int usb_process_timeout(int msec)
755 } 755 }
756 res = libusb_handle_events_timeout(NULL, &tleft); 756 res = libusb_handle_events_timeout(NULL, &tleft);
757 if(res < 0) { 757 if(res < 0) {
758 usbmuxd_log(LL_ERROR, "libusb_handle_events_timeout failed: %d", res); 758 usbmuxd_log(LL_ERROR, "libusb_handle_events_timeout failed: %s", libusb_error_name(res));
759 return res; 759 return res;
760 } 760 }
761 // reap devices marked dead due to an RX error 761 // reap devices marked dead due to an RX error
@@ -804,7 +804,7 @@ int usb_init(void)
804 libusb_set_debug(NULL, (log_level >= LL_DEBUG ? LIBUSB_LOG_LEVEL_DEBUG: (log_level >= LL_WARNING ? LIBUSB_LOG_LEVEL_WARNING: LIBUSB_LOG_LEVEL_NONE))); 804 libusb_set_debug(NULL, (log_level >= LL_DEBUG ? LIBUSB_LOG_LEVEL_DEBUG: (log_level >= LL_WARNING ? LIBUSB_LOG_LEVEL_WARNING: LIBUSB_LOG_LEVEL_NONE)));
805 805
806 if(res != 0) { 806 if(res != 0) {
807 usbmuxd_log(LL_FATAL, "libusb_init failed: %d", res); 807 usbmuxd_log(LL_FATAL, "libusb_init failed: %s", libusb_error_name(res));
808 return -1; 808 return -1;
809 } 809 }
810 810
@@ -817,7 +817,7 @@ int usb_init(void)
817 if (res == LIBUSB_SUCCESS) { 817 if (res == LIBUSB_SUCCESS) {
818 device_polling = 0; 818 device_polling = 0;
819 } else { 819 } else {
820 usbmuxd_log(LL_ERROR, "ERROR: Could not register for libusb hotplug events (%d)", res); 820 usbmuxd_log(LL_ERROR, "ERROR: Could not register for libusb hotplug events. %s", libusb_error_name(res));
821 } 821 }
822 } else { 822 } else {
823 usbmuxd_log(LL_ERROR, "libusb does not support hotplug events"); 823 usbmuxd_log(LL_ERROR, "libusb does not support hotplug events");