]> sigrok.org Git - libsigrok.git/commitdiff
Add sr_usb_close().
authorBert Vermeulen <redacted>
Sun, 16 Aug 2015 18:00:26 +0000 (20:00 +0200)
committerUwe Hermann <redacted>
Tue, 25 Aug 2015 17:13:17 +0000 (19:13 +0200)
src/libsigrok-internal.h
src/usb.c

index d36757828e07ff3728cd5b6fa87bafe0005d0aa8..4a696bef0957e0a7233133ba491ffab856801ce1 100644 (file)
@@ -868,6 +868,7 @@ SR_PRIV int ezusb_upload_firmware(libusb_device *dev, int configuration,
 #ifdef HAVE_LIBUSB_1_0
 SR_PRIV GSList *sr_usb_find(libusb_context *usb_ctx, const char *conn);
 SR_PRIV int sr_usb_open(libusb_context *usb_ctx, struct sr_usb_dev_inst *usb);
+SR_PRIV void sr_usb_close(struct sr_usb_dev_inst *usb);
 SR_PRIV int usb_source_add(struct sr_session *session, struct sr_context *ctx,
                int timeout, sr_receive_data_callback cb, void *cb_data);
 SR_PRIV int usb_source_remove(struct sr_session *session, struct sr_context *ctx);
index 7fe1eff6e5b0bdba7608127ecbd065d39dcd6bc5..f5b20c99cc02e61893a6654c67801ef8ade5f594 100644 (file)
--- a/src/usb.c
+++ b/src/usb.c
@@ -177,6 +177,13 @@ SR_PRIV int sr_usb_open(libusb_context *usb_ctx, struct sr_usb_dev_inst *usb)
        return ret;
 }
 
+SR_PRIV void sr_usb_close(struct sr_usb_dev_inst *usb)
+{
+       libusb_close(usb->devhdl);
+       usb->devhdl = NULL;
+       sr_dbg("Closed USB device %d.%d.", usb->bus, usb->address);
+}
+
 #ifdef _WIN32
 /* Thread used to run libusb_wait_for_event() and set a pollable event. */
 static gpointer usb_thread(gpointer data)