openocd/src/jtag/drivers
Oleksij Rempel d612baacaa jtag_libusb_bulk_read|write: return error code instead of size
A USB bulk write/read operation may fail with different errors:
 LIBUSB_ERROR_TIMEOUT if the transfer timed out (and populates transferred)
 LIBUSB_ERROR_PIPE if the endpoint halted
 LIBUSB_ERROR_OVERFLOW if the device offered more data, see Packets and overflows
 LIBUSB_ERROR_NO_DEVICE if the device has been disconnected
 another LIBUSB_ERROR code on other failures

Current OpenOCD code is using the transfer size based error detection.
Which may not always work. For example for LIBUSB_ERROR_OVERFLOW as libusb
documentation says:
"Problems may occur if the device attempts to send more data than can fit in
the buffer. libusb reports LIBUSB_TRANSFER_OVERFLOW for this condition but
other behaviour is largely undefined: actual_length may or may not be accurate,
the chunk of data that can fit in the buffer (before overflow) may or may not
have been transferred."

This patch is refactoring code to use actual error return value for
error detection instead of size.

Change-Id: Iec0798438ca7b5c76e2e2912af21d9aa76ee0217
Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de>
Reviewed-on: http://openocd.zylin.com/4590
Tested-by: jenkins
Reviewed-by: Oleksij Rempel <linux@rempel-privat.de>
2020-01-22 05:33:31 +00:00
..
libjaylink@f73ad5e667 libjaylink: Update to latest Git version 2019-10-19 13:27:29 +01:00
OpenULINK Remove FSF address from GPL notices 2016-05-24 22:30:01 +01:00
usb_blaster jtag_libusb_bulk_read|write: return error code instead of size 2020-01-22 05:33:31 +00:00
versaloon Make #include guard naming consistent 2016-05-24 22:30:55 +01:00
amt_jtagaccel.c adapter: switch from struct jtag_interface to adapter_driver 2020-01-14 11:39:37 +00:00
arm-jtag-ew.c adapter: switch from struct jtag_interface to adapter_driver 2020-01-14 11:39:37 +00:00
at91rm9200.c adapter: switch from struct jtag_interface to adapter_driver 2020-01-14 11:39:37 +00:00
bcm2835gpio.c adapter: switch from struct jtag_interface to adapter_driver 2020-01-14 11:39:37 +00:00
bitbang.c bitbang: jtag-only drivers: switch to new reset API 2020-01-14 11:16:24 +00:00
bitbang.h bitbang: jtag-only drivers: switch to new reset API 2020-01-14 11:16:24 +00:00
bitq.c Convert DEBUG_JTAG_IO to LOG_DEBUG_IO 2019-06-04 21:48:39 +01:00
bitq.h Make #include guard naming consistent 2016-05-24 22:30:55 +01:00
buspirate.c adapter: switch from struct jtag_interface to adapter_driver 2020-01-14 11:39:37 +00:00
cmsis_dap_usb.c adapter: switch from struct jtag_interface to adapter_driver 2020-01-14 11:39:37 +00:00
driver.c jtag: make cmd_queue_scan_field_clone public 2018-10-16 11:58:17 +01:00
dummy.c adapter: switch from struct jtag_interface to adapter_driver 2020-01-14 11:39:37 +00:00
ep93xx.c adapter: switch from struct jtag_interface to adapter_driver 2020-01-14 11:39:37 +00:00
ft232r.c jtag_libusb_bulk_read|write: return error code instead of size 2020-01-22 05:33:31 +00:00
ftdi.c adapter: switch from struct jtag_interface to adapter_driver 2020-01-14 11:39:37 +00:00
gw16012.c adapter: switch from struct jtag_interface to adapter_driver 2020-01-14 11:39:37 +00:00
imx_gpio.c adapter: switch from struct jtag_interface to adapter_driver 2020-01-14 11:39:37 +00:00
jlink.c adapter: switch from struct jtag_interface to adapter_driver 2020-01-14 11:39:37 +00:00
jtag_usb_common.c jtag/drivers/jtag_usb_common: fix typo 2019-06-13 12:39:09 +01:00
jtag_usb_common.h jtag: drivers: provide initial support for usb path filtering 2019-02-07 07:51:30 +00:00
jtag_vpi.c adapter: switch from struct jtag_interface to adapter_driver 2020-01-14 11:39:37 +00:00
kitprog.c jtag_libusb_bulk_read|write: return error code instead of size 2020-01-22 05:33:31 +00:00
libusb_common.h Convert to non-recursive make 2016-12-08 16:23:10 +00:00
libusb1_common.c jtag_libusb_bulk_read|write: return error code instead of size 2020-01-22 05:33:31 +00:00
libusb1_common.h jtag_libusb_bulk_read|write: return error code instead of size 2020-01-22 05:33:31 +00:00
libusb0_common.c jtag_libusb_bulk_read|write: return error code instead of size 2020-01-22 05:33:31 +00:00
libusb0_common.h jtag_libusb_bulk_read|write: return error code instead of size 2020-01-22 05:33:31 +00:00
Makefile.am jtag: drivers: xlnx-pcie-xvc: Add support for Xilinx XVC/PCIe 2020-01-17 05:21:29 +00:00
Makefile.rlink Remove FSF address from GPL notices 2016-05-24 22:30:01 +01:00
minidriver_imp.h Make #include guard naming consistent 2016-05-24 22:30:55 +01:00
mpsse.c Add wall clock timeout warning to mpsse_flush() 2019-10-15 08:58:56 +01:00
mpsse.h Make #include guard naming consistent 2016-05-24 22:30:55 +01:00
opendous.c jtag_libusb_bulk_read|write: return error code instead of size 2020-01-22 05:33:31 +00:00
openjtag.c jtag_libusb_bulk_read|write: return error code instead of size 2020-01-22 05:33:31 +00:00
osbdm.c jtag_libusb_bulk_read|write: return error code instead of size 2020-01-22 05:33:31 +00:00
parport.c adapter: switch from struct jtag_interface to adapter_driver 2020-01-14 11:39:37 +00:00
presto.c adapter: switch from struct jtag_interface to adapter_driver 2020-01-14 11:39:37 +00:00
remote_bitbang.c adapter: switch from struct jtag_interface to adapter_driver 2020-01-14 11:39:37 +00:00
rlink_call.m4 Remove FSF address from GPL notices 2016-05-24 22:30:01 +01:00
rlink_dtc_cmd.h Make #include guard naming consistent 2016-05-24 22:30:55 +01:00
rlink_ep1_cmd.h Make #include guard naming consistent 2016-05-24 22:30:55 +01:00
rlink_init.m4 Remove FSF address from GPL notices 2016-05-24 22:30:01 +01:00
rlink_speed_table.c
rlink_st7.h Make #include guard naming consistent 2016-05-24 22:30:55 +01:00
rlink.c adapter: switch from struct jtag_interface to adapter_driver 2020-01-14 11:39:37 +00:00
rlink.h Make #include guard naming consistent 2016-05-24 22:30:55 +01:00
stlink_usb.c jtag_libusb_bulk_read|write: return error code instead of size 2020-01-22 05:33:31 +00:00
sysfsgpio.c adapter: switch from struct jtag_interface to adapter_driver 2020-01-14 11:39:37 +00:00
ti_icdi_usb.c jtag: drivers: stlink: handle all versions with single config 2017-12-12 21:13:55 +00:00
ulink.c adapter: switch from struct jtag_interface to adapter_driver 2020-01-14 11:39:37 +00:00
usb_common.c jtag/drivers/usb_common: return oocd error values 2019-01-08 10:02:43 +00:00
usb_common.h Make #include guard naming consistent 2016-05-24 22:30:55 +01:00
usbprog.c adapter: switch from struct jtag_interface to adapter_driver 2020-01-14 11:39:37 +00:00
vsllink.c adapter: switch from struct jtag_interface to adapter_driver 2020-01-14 11:39:37 +00:00
xds110.c adapter: switch from struct jtag_interface to adapter_driver 2020-01-14 11:39:37 +00:00
xlnx-pcie-xvc.c jtag: drivers: xlnx-pcie-xvc: Add support for Xilinx XVC/PCIe 2020-01-17 05:21:29 +00:00