]> sigrok.org Git - libsigrok.git/commitdiff
scpi: Pass SCPI device instance to open and close callbacks.
authorBert Vermeulen <redacted>
Mon, 21 Sep 2015 11:41:03 +0000 (13:41 +0200)
committerBert Vermeulen <redacted>
Mon, 21 Sep 2015 11:41:03 +0000 (13:41 +0200)
Only close() really needs this (for access to a Rigol firmware quirk),
but do the same in open() for consistency.

src/scpi.h
src/scpi/scpi.c
src/scpi/scpi_libgpib.c
src/scpi/scpi_serial.c
src/scpi/scpi_tcp.c
src/scpi/scpi_usbtmc_libusb.c
src/scpi/scpi_visa.c
src/scpi/scpi_vxi.c

index 28b33287629faf492f618f61657e6946089b3136..aee1bfba836809c711c93849c529b24893267719 100644 (file)
@@ -77,7 +77,7 @@ struct sr_scpi_dev_inst {
        GSList *(*scan)(struct drv_context *drvc);
        int (*dev_inst_new)(void *priv, struct drv_context *drvc,
                const char *resource, char **params, const char *serialcomm);
-       int (*open)(void *priv);
+       int (*open)(struct sr_scpi_dev_inst *scpi);
        int (*source_add)(struct sr_session *session, void *priv, int events,
                int timeout, sr_receive_data_callback cb, void *cb_data);
        int (*source_remove)(struct sr_session *session, void *priv);
@@ -85,7 +85,7 @@ struct sr_scpi_dev_inst {
        int (*read_begin)(void *priv);
        int (*read_data)(void *priv, char *buf, int maxlen);
        int (*read_complete)(void *priv);
-       int (*close)(void *priv);
+       int (*close)(struct sr_scpi_dev_inst *scpi);
        void (*free)(void *priv);
        unsigned int read_timeout_ms;
        void *priv;
index 9b5b1ea91685716d0b5e2f1bd6cc180ad7d1a96a..576aa76e39aaac472763e17f4f423bc4c44fec11 100644 (file)
@@ -210,7 +210,7 @@ SR_PRIV struct sr_scpi_dev_inst *scpi_dev_inst_new(struct drv_context *drvc,
  */
 SR_PRIV int sr_scpi_open(struct sr_scpi_dev_inst *scpi)
 {
-       return scpi->open(scpi->priv);
+       return scpi->open(scpi);
 }
 
 /**
@@ -352,7 +352,7 @@ SR_PRIV int sr_scpi_read_complete(struct sr_scpi_dev_inst *scpi)
  */
 SR_PRIV int sr_scpi_close(struct sr_scpi_dev_inst *scpi)
 {
-       return scpi->close(scpi->priv);
+       return scpi->close(scpi);
 }
 
 /**
index 31522eb19bcff871fba915ecfc13e1bd2111e2a3..7632f74c9dc2ecf530986011ae02b08dd402f8cc 100644 (file)
@@ -49,9 +49,9 @@ static int scpi_gpib_dev_inst_new(void *priv, struct drv_context *drvc,
        return SR_OK;
 }
 
-static int scpi_gpib_open(void *priv)
+static int scpi_gpib_open(struct sr_scpi_dev_inst *scpi)
 {
-       struct scpi_gpib *gscpi = priv;
+       struct scpi_gpib *gscpi = scpi->priv;
 
        if ((gscpi->descriptor = ibfind(gscpi->name)) < 0)
                return SR_ERR;
@@ -134,9 +134,9 @@ static int scpi_gpib_read_complete(void *priv)
        return gscpi->read_started && (ibsta & END);
 }
 
-static int scpi_gpib_close(void *priv)
+static int scpi_gpib_close(struct sr_scpi_dev_inst *scpi)
 {
-       struct scpi_gpib *gscpi = priv;
+       struct scpi_gpib *gscpi = scpi->priv;
 
        ibonl(gscpi->descriptor, 0);
 
index 257ff88380c55096688c50422addd1ac5220a41d..ef507bb499170f67a277f60d88fa16109b3ad861 100644 (file)
@@ -85,9 +85,9 @@ static int scpi_serial_dev_inst_new(void *priv, struct drv_context *drvc,
        return SR_OK;
 }
 
-static int scpi_serial_open(void *priv)
+static int scpi_serial_open(struct sr_scpi_dev_inst *scpi)
 {
-       struct scpi_serial *sscpi = priv;
+       struct scpi_serial *sscpi = scpi->priv;
        struct sr_serial_dev_inst *serial = sscpi->serial;
 
        if (serial_open(serial, SERIAL_RDWR) != SR_OK)
@@ -209,9 +209,9 @@ static int scpi_serial_read_complete(void *priv)
        }
 }
 
-static int scpi_serial_close(void *priv)
+static int scpi_serial_close(struct sr_scpi_dev_inst *scpi)
 {
-       struct scpi_serial *sscpi = priv;
+       struct scpi_serial *sscpi = scpi->priv;
 
        return serial_close(sscpi->serial);
 }
index 43b7a78afdf7b503b22c76c748b68bce892785af..62974680aa93bdc99b321c5daeff5196af842134 100644 (file)
@@ -72,9 +72,9 @@ static int scpi_tcp_dev_inst_new(void *priv, struct drv_context *drvc,
        return SR_OK;
 }
 
-static int scpi_tcp_open(void *priv)
+static int scpi_tcp_open(struct sr_scpi_dev_inst *scpi)
 {
-       struct scpi_tcp *tcp = priv;
+       struct scpi_tcp *tcp = scpi->priv;
        struct addrinfo hints;
        struct addrinfo *results, *res;
        int err;
@@ -230,9 +230,9 @@ static int scpi_tcp_read_complete(void *priv)
                        tcp->response_bytes_read >= tcp->response_length);
 }
 
-static int scpi_tcp_close(void *priv)
+static int scpi_tcp_close(struct sr_scpi_dev_inst *scpi)
 {
-       struct scpi_tcp *tcp = priv;
+       struct scpi_tcp *tcp = scpi->priv;
 
        if (close(tcp->socket) < 0)
                return SR_ERR;
index 95a283705fda036d9cdf719ccdf30162e0660774..61d1b70d02f0b7a6935da871fef51e02d3c9e21d 100644 (file)
@@ -289,9 +289,9 @@ static void scpi_usbtmc_local(struct scpi_usbtmc_libusb *uscpi)
        return;
 }
 
-static int scpi_usbtmc_libusb_open(void *priv)
+static int scpi_usbtmc_libusb_open(struct sr_scpi_dev_inst *scpi)
 {
-       struct scpi_usbtmc_libusb *uscpi = priv;
+       struct scpi_usbtmc_libusb *uscpi = scpi->priv;
        struct sr_usb_dev_inst *usb = uscpi->usb;
        struct libusb_device *dev;
        struct libusb_device_descriptor des;
@@ -634,11 +634,11 @@ static int scpi_usbtmc_libusb_read_complete(void *priv)
               uscpi->bulkin_attributes & EOM;
 }
 
-static int scpi_usbtmc_libusb_close(void *priv)
+static int scpi_usbtmc_libusb_close(struct sr_scpi_dev_inst *scpi)
 {
-       int ret;
-       struct scpi_usbtmc_libusb *uscpi = priv;
+       struct scpi_usbtmc_libusb *uscpi = scpi->priv;
        struct sr_usb_dev_inst *usb = uscpi->usb;
+       int ret;
 
        if (!usb->devhdl)
                return SR_ERR;
index fee25ba1cf7689027f5ac54287dc5815a0df81fa..220ead4fd3e31db1a568ddeb62240cb69db960cd 100644 (file)
@@ -51,9 +51,9 @@ static int scpi_visa_dev_inst_new(void *priv, struct drv_context *drvc,
        return SR_OK;
 }
 
-static int scpi_visa_open(void *priv)
+static int scpi_visa_open(struct sr_scpi_dev_inst *scpi)
 {
-       struct scpi_visa *vscpi = priv;
+       struct scpi_visa *vscpi = scpi->priv;
 
        if (viOpenDefaultRM(&vscpi->rmgr) != VI_SUCCESS) {
                sr_err("Cannot open default resource manager.");
@@ -140,9 +140,9 @@ static int scpi_visa_read_complete(void *priv)
        return !(status & 16);
 }
 
-static int scpi_visa_close(void *priv)
+static int scpi_visa_close(struct sr_scpi_dev_inst *scpi)
 {
-       struct scpi_visa *vscpi = priv;
+       struct scpi_visa *vscpi = scpi->priv;
 
        viClose(vscpi->vi);
        viClose(vscpi->rmgr);
index c1329088b294b2ff0d46a7c49121205b8c163f8c..26cd832dba4ab85d9309ca00bb7ceaea047090b2 100644 (file)
@@ -60,9 +60,9 @@ static int scpi_vxi_dev_inst_new(void *priv, struct drv_context *drvc,
        return SR_OK;
 }
 
-static int scpi_vxi_open(void *priv)
+static int scpi_vxi_open(struct sr_scpi_dev_inst *scpi)
 {
-       struct scpi_vxi *vxi = priv;
+       struct scpi_vxi *vxi = scpi->priv;
        Create_LinkParms link_parms;
        Create_LinkResp *link_resp;
 
@@ -195,9 +195,9 @@ static int scpi_vxi_read_complete(void *priv)
        return vxi->read_complete;
 }
 
-static int scpi_vxi_close(void *priv)
+static int scpi_vxi_close(struct sr_scpi_dev_inst *scpi)
 {
-       struct scpi_vxi *vxi = priv;
+       struct scpi_vxi *vxi = scpi->priv;
        Device_Error *dev_error;
 
        if (!vxi->client)