summaryrefslogtreecommitdiffstats
path: root/utils/hwstub/include
diff options
context:
space:
mode:
authorAmaury Pouly <amaury.pouly@gmail.com>2017-01-17 11:32:50 +0100
committerAmaury Pouly <amaury.pouly@gmail.com>2017-01-24 15:31:05 +0100
commiteadba57d53f6512a15ac86f18713c18491175ac4 (patch)
treea18b940066a468c068c1ecdc7b0e9e180b471d27 /utils/hwstub/include
parent24c208336c795adc1e111b03e86526c2cfde7a61 (diff)
downloadrockbox-eadba57d53f6512a15ac86f18713c18491175ac4.tar.gz
rockbox-eadba57d53f6512a15ac86f18713c18491175ac4.tar.bz2
rockbox-eadba57d53f6512a15ac86f18713c18491175ac4.zip
hwstub: fix long transfers failing because of control xfer size of libusb
libusb limits control transfer sizes to 4k, see diff for details. Change-Id: Id2e638010274009ea641d06e9040a8b9ab9d54a9
Diffstat (limited to 'utils/hwstub/include')
-rw-r--r--utils/hwstub/include/hwstub_usb.hpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/utils/hwstub/include/hwstub_usb.hpp b/utils/hwstub/include/hwstub_usb.hpp
index 15a0fcaaec..579594067c 100644
--- a/utils/hwstub/include/hwstub_usb.hpp
+++ b/utils/hwstub/include/hwstub_usb.hpp
@@ -101,6 +101,10 @@ public:
void set_timeout(std::chrono::milliseconds ms);
protected:
+ /* return the maximum size of a libusb control transfer, this is a "known"
+ * limitation that is completely undocumented (sigh) and applies at least
+ * to linux and windows hosts */
+ size_t max_libusb_control_xfer_size() const;
/* interpret libusb error: >=0 means SUCCESS, others are treated as errors,
* LIBUSB_ERROR_NO_DEVICE is treated as DISCONNECTED */
error interpret_libusb_error(int err);