Con Kolivas
|
e06e495ab8
Merge branch 'master' into hashfast
|
12 years ago |
Con Kolivas
|
02a4f8df9c
Convert the usb callback function to using cgsem_t timed waits to avoid race conditions with conditionals/mutexes.
|
12 years ago |
Con Kolivas
|
1d9f90b256
Revert "Convert the usb callback function to use a cgsem_t using the timedwait code to avoid races with mutexes/conditionals."
|
12 years ago |
Con Kolivas
|
433465bcfc
Convert the usb callback function to use a cgsem_t using the timedwait code to avoid races with mutexes/conditionals.
|
12 years ago |
Con Kolivas
|
634151ffa0
Merge branch 'master' into hashfast
|
12 years ago |
Con Kolivas
|
9ca22ed493
Use the one LIBUSB_ERROR_TIMEOUT for cancelled transactions since this error is explicitly tested for in various drivers.
|
12 years ago |
Con Kolivas
|
a7580f1ff2
Do not use locking on usb callback function pthread signalling to prevent deadlock with libusb's own event lock.
|
12 years ago |
Con Kolivas
|
8d1604a2e3
Do not use locking on usb callback function pthread signalling to prevent deadlock with libusb's own event lock.
|
12 years ago |
Con Kolivas
|
d2d7a7468e
Merge branch 'master' into hashfast
|
12 years ago |
Con Kolivas
|
280dc4bf01
Lock mutex before second pthread_cond_wait in usbutils to prevent a race.
|
12 years ago |
Con Kolivas
|
176cae2700
Add basic definitions for hashfast device recognition.
|
12 years ago |
Con Kolivas
|
9b5c534911
Merge branch 'master' into hashfast
|
12 years ago |
Con Kolivas
|
84de52c1c6
Use a write lock when performing any USB control transfers to prevent concurrent transfers.
|
12 years ago |
Con Kolivas
|
c069028648
Free a libusb transfer after we have finished using it to avoid a dereference in usb_control_transfer
|
12 years ago |
Con Kolivas
|
84f642f563
Although async transfers are meant to use heap memory, we never return before the transfer function has completed so stack memory will suffice for control transfers, fixing a memory leak in the process.
|
12 years ago |
Con Kolivas
|
2ca8d85906
Convert all usb control transfers to asynchronous communication with our own timeout management as well.
|
12 years ago |
Con Kolivas
|
b537976036
Make pthread conditional timeouts handle all bulk usb transfer timeouts performing libusb_cancel_transfer, disabling timeouts within libusb itself.
|
12 years ago |
Con Kolivas
|
03ad59f287
Add a small amount to the usb timeout before cancelling to allow for a regular usb polling interval to pass.
|
12 years ago |
Con Kolivas
|
08d8612f68
Do not attempt to clear a usb halt before sending the cancel message since all transfers should normally be cancelled before attempting to clear a halt condition, and only change the return message to a timeout if it's consistent with a cancellation.
|
12 years ago |
Con Kolivas
|
6d18ce4caa
Retry up to USB_RETRY_MAX times to clear a halt condition before failing.
|
12 years ago |
Con Kolivas
|
3a7a677f45
Show the error number as well as the description in erroring bulk transfers.
|
12 years ago |
Con Kolivas
|
b5dfacef24
We are always dependent on libusb handling events so use the blocking libusb_handle_events in the polling thread and use a bool to know if we should continue polling.
|
12 years ago |
Con Kolivas
|
853aa28ffc
Merge branch 'master' into async
|
12 years ago |
Con Kolivas
|
32bc746178
Check for presence of driver name in DRIVER_COUNT_FOUND to prevent strcmp on a null pointer when a driver is not built in.
|
12 years ago |
Con Kolivas
|
dc9c3783ec
Display errors on failed usb read and write and consider sequential IO errors a permanent failure.
|
12 years ago |
Con Kolivas
|
a22f5bfddd
Use libusb's own error name function instead of hand coding the error names.
|
12 years ago |
Con Kolivas
|
efd8c44182
Check for async transfer variants of error messages.
|
12 years ago |
Con Kolivas
|
2806f49c01
Revert "Check for the async variants of the libusb errors and retry up to retry max when trying to clear a pipe error/stall."
|
12 years ago |
Con Kolivas
|
d34279b226
Remove unused variables.
|
12 years ago |
Con Kolivas
|
f80c900336
Merge branch 'master' into async
|
12 years ago |