]> sigrok.org Git - libsigrok.git/blobdiff - src/hardware/lecroy-logicstudio/api.c
Put driver pointers into special section
[libsigrok.git] / src / hardware / lecroy-logicstudio / api.c
index b6eff9dd2e138da5400fe0bdfc8cedb2e65cbef1..20ffcf2f8735c1b664ca9577ede3269ad0aabe7b 100644 (file)
@@ -71,13 +71,6 @@ static const uint64_t samplerates[] = {
        SR_MHZ(500),
 };
 
-SR_PRIV struct sr_dev_driver lecroy_logicstudio_driver_info;
-
-static int init(struct sr_dev_driver *di, struct sr_context *sr_ctx)
-{
-       return std_init(sr_ctx, di, LOG_PREFIX);
-}
-
 static struct sr_dev_inst *create_device(struct sr_dev_driver *di,
                struct sr_usb_dev_inst *usb, enum sr_dev_inst_status status,
                int64_t fw_updated)
@@ -191,16 +184,6 @@ static GSList *scan(struct sr_dev_driver *di, GSList *options)
        return devices;
 }
 
-static GSList *dev_list(const struct sr_dev_driver *di)
-{
-       return ((struct drv_context *)(di->context))->instances;
-}
-
-static int dev_clear(const struct sr_dev_driver *di)
-{
-       return std_dev_clear(di, NULL);
-}
-
 static int open_device(struct sr_dev_inst *sdi)
 {
        struct drv_context *drvc;
@@ -273,19 +256,12 @@ static int open_device(struct sr_dev_inst *sdi)
 
 static int dev_open(struct sr_dev_inst *sdi)
 {
-       struct drv_context *drvc;
        struct dev_context *devc;
        int64_t timediff_us, timediff_ms;
        int ret;
 
-       drvc = sdi->driver->context;
        devc = sdi->priv;
 
-       if (!drvc) {
-               sr_err("Driver was not initialized.");
-               return SR_ERR;
-       }
-
        /*
         * If we didn't need to upload FX2 firmware in scan(), open the device
         * right away. Otherwise, wait up to MAX_RENUM_DELAY_MS ms for the
@@ -380,20 +356,6 @@ static int dev_close(struct sr_dev_inst *sdi)
        return SR_OK;
 }
 
-static int cleanup(const struct sr_dev_driver *di)
-{
-       struct drv_context *drvc;
-       int ret;
-
-       drvc = di->context;
-
-       ret = dev_clear(di);
-
-       g_free(drvc);
-
-       return ret;
-}
-
 static int config_get(uint32_t key, GVariant **data,
        const struct sr_dev_inst *sdi, const struct sr_channel_group *cg)
 {
@@ -536,15 +498,14 @@ static int dev_acquisition_stop(struct sr_dev_inst *sdi)
        return lls_stop_acquisition(sdi);
 }
 
-SR_PRIV struct sr_dev_driver lecroy_logicstudio_driver_info = {
+static struct sr_dev_driver lecroy_logicstudio_driver_info = {
        .name = "lecroy-logicstudio",
        .longname = "LeCroy LogicStudio",
        .api_version = 1,
-       .init = init,
-       .cleanup = cleanup,
+       .init = std_init,
+       .cleanup = std_cleanup,
        .scan = scan,
-       .dev_list = dev_list,
-       .dev_clear = dev_clear,
+       .dev_list = std_dev_list,
        .config_get = config_get,
        .config_set = config_set,
        .config_list = config_list,
@@ -555,3 +516,4 @@ SR_PRIV struct sr_dev_driver lecroy_logicstudio_driver_info = {
        .dev_acquisition_stop = dev_acquisition_stop,
        .context = NULL,
 };
+SR_REGISTER_DEV_DRIVER(lecroy_logicstudio_driver_info);