m3dev

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README | LICENSE

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:
Mtools/usb.c | 9+++++++++
Mtools/usb.h | 1+
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);