diff options
author | Amaury Pouly <amaury.pouly@gmail.com> | 2017-01-17 11:32:50 +0100 |
---|---|---|
committer | Amaury Pouly <amaury.pouly@gmail.com> | 2017-01-24 15:31:05 +0100 |
commit | eadba57d53f6512a15ac86f18713c18491175ac4 (patch) | |
tree | a18b940066a468c068c1ecdc7b0e9e180b471d27 /utils/hwstub/include | |
parent | 24c208336c795adc1e111b03e86526c2cfde7a61 (diff) |
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.hpp | 4 |
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); |