]> sigrok.org Git - libsigrok.git/blobdiff - hardware/openbench-logic-sniffer/ols.c
hw_init(): Save struct sr_context * parameter in struct drv_context
[libsigrok.git] / hardware / openbench-logic-sniffer / ols.c
index 995fdccf4bdc41a2554752a83f79f5e9d49754ba..23104cfddc3d8aa455984a19043d573099ded007 100644 (file)
 #include "libsigrok-internal.h"
 #include "ols.h"
 
-#ifdef _WIN32
-#define O_NONBLOCK FIONBIO
-#endif
-
 #define SERIALCOMM "115200/8n1"
 
 static const int hwcaps[] = {
@@ -366,7 +362,7 @@ static struct sr_dev_inst *get_metadata(struct sr_serial_dev_inst *serial)
        return sdi;
 }
 
-static int hw_init(void)
+static int hw_init(struct sr_context *sr_ctx)
 {
        struct drv_context *drvc;
 
@@ -374,6 +370,7 @@ static int hw_init(void)
                sr_err("ols: driver context malloc failed.");
                return SR_ERR_MALLOC;
        }
+       drvc->sr_ctx = sr_ctx;
        odi->priv = drvc;
 
        return SR_OK;
@@ -425,7 +422,7 @@ static GSList *hw_scan(GSList *options)
         * have a match.
         */
        sr_info("ols: probing %s .", conn);
-       if (serial_open(serial, O_RDWR | O_NONBLOCK) != SR_OK)
+       if (serial_open(serial, SERIAL_RDWR | SERIAL_NONBLOCK) != SR_OK)
                return NULL;
 
        ret = SR_OK;
@@ -503,7 +500,7 @@ static int hw_dev_open(struct sr_dev_inst *sdi)
 
        devc = sdi->priv;
 
-       if (serial_open(devc->serial, O_RDWR) != SR_OK)
+       if (serial_open(devc->serial, SERIAL_RDWR) != SR_OK)
                return SR_ERR;
 
        sdi->status = SR_ST_ACTIVE;