mdebug

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

commit 159e0f9fe7598d07371430e6a64168557b733360
parent 5c8ffeae818616e657296c05af15313f6e9cff45
Author: Brian Swetland <swetland@frotz.net>
Date:   Mon, 27 Jul 2015 01:20:15 -0700

tools/usb add control api

Diffstat:
Mtools/usb.c | 10++++++++++
Mtools/usb.h | 5++++-
2 files changed, 14 insertions(+), 1 deletion(-)

diff --git a/tools/usb.c b/tools/usb.c @@ -87,6 +87,16 @@ void usb_close(usb_handle *usb) { free(usb); } +int usb_ctrl(usb_handle *usb, void *data, + uint8_t typ, uint8_t req, uint16_t val, uint16_t idx, uint16_t len) { + int r = libusb_control_transfer(usb->dev, typ, req, val, idx, data, len, 5000); + if (r < 0) { + return -1; + } else { + return r; + } +} + int usb_read(usb_handle *usb, void *data, int len) { int xfer = len; int r = libusb_bulk_transfer(usb->dev, usb->ei, data, len, &xfer, 5000); diff --git a/tools/usb.h b/tools/usb.h @@ -18,6 +18,8 @@ #ifndef _USB_H_ #define _USB_H_ +#include <stdint.h> + typedef struct usb_handle usb_handle; /* simple usb api for devices with bulk in+out interfaces */ @@ -26,5 +28,6 @@ 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_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); #endif