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);