* IN THE SOFTWARE.
*/
-typedef void (*hmcfgusb_cb_fn)(uint8_t *buf, int buf_len, void *data);
+typedef int (*hmcfgusb_cb_fn)(uint8_t *buf, int buf_len, void *data);
struct hmcfgusb_dev {
libusb_device_handle *usb_devh;
int n_usb_pfd;
struct pollfd *pfd;
int n_pfd;
+ int bootloader;
+ time_t opened_at;
};
int hmcfgusb_send(struct hmcfgusb_dev *usbdev, unsigned char* send_data, int len, int done);
+int hmcfgusb_send_null_frame(struct hmcfgusb_dev *usbdev, int silent);
struct hmcfgusb_dev *hmcfgusb_init(hmcfgusb_cb_fn cb, void *data);
int hmcfgusb_add_pfd(struct hmcfgusb_dev *dev, int fd, short events);
int hmcfgusb_poll(struct hmcfgusb_dev *dev, int timeout);
+void hmcfgusb_enter_bootloader(struct hmcfgusb_dev *dev);
+void hmcfgusb_leave_bootloader(struct hmcfgusb_dev *dev);
void hmcfgusb_close(struct hmcfgusb_dev *dev);
+void hmcfgusb_exit(void);
void hmcfgusb_set_debug(int d);