commit 59b3de48f419465e3bea257412bf9adddb8f1bdb
parent 549275e74aa1bda810a43c34f87032d834b8361c
Author: Brian Swetland <swetland@frotz.net>
Date:   Mon,  3 Aug 2015 15:12:56 -0700
tools: add no-timeout usb read
Diffstat:
2 files changed, 10 insertions(+), 0 deletions(-)
diff --git a/tools/usb.c b/tools/usb.c
@@ -106,6 +106,15 @@ int usb_read(usb_handle *usb, void *data, int len) {
 	return xfer;
 }
 
+int usb_read_forever(usb_handle *usb, void *data, int len) {
+	int xfer = len;
+	int r = libusb_bulk_transfer(usb->dev, usb->ei, data, len, &xfer, 0);
+	if (r < 0) {
+		return -1;
+	}
+	return xfer;
+}
+
 int usb_write(usb_handle *usb, const void *data, int len) {
 	int xfer = len;
 	int r = libusb_bulk_transfer(usb->dev, usb->eo, (void*) data, len, &xfer, 5000);
diff --git a/tools/usb.h b/tools/usb.h
@@ -27,6 +27,7 @@ typedef struct usb_handle usb_handle;
 usb_handle *usb_open(unsigned vid, unsigned pid, unsigned ifc);
 void usb_close(usb_handle *usb);
 int usb_read(usb_handle *usb, void *data, int len);
+int usb_read_forever(usb_handle *usb, void *data, int len);
 int usb_write(usb_handle *usb, const void *data, int len);
 int usb_ctrl(usb_handle *usb, void *data,
 	uint8_t typ, uint8_t req, uint16_t val, uint16_t idx, uint16_t len);