]> sigrok.org Git - libsigrok.git/commitdiff
ols/link-mso19: Consistency fixes.
authorUwe Hermann <redacted>
Sun, 2 Jun 2013 14:54:31 +0000 (16:54 +0200)
committerUwe Hermann <redacted>
Sun, 2 Jun 2013 15:03:40 +0000 (17:03 +0200)
Use the same setup/ordering/naming for the cleanup/dev_clear functions
as all other drivers do.

hardware/link-mso19/api.c
hardware/openbench-logic-sniffer/api.c

index a77a37e2a962899caf30d9ce831efaa88090d75d..a22f04a911a39268936944fa3e7093afa8955ae0 100644 (file)
@@ -51,6 +51,44 @@ static const uint64_t samplerates[] = {
 SR_PRIV struct sr_dev_driver link_mso19_driver_info;
 static struct sr_dev_driver *di = &link_mso19_driver_info;
 
+static int dev_close(struct sr_dev_inst *sdi);
+
+/* TODO: Use sr_dev_inst to store connection handle & use std_dev_clear(). */
+static int dev_clear(void)
+{
+       GSList *l;
+       struct sr_dev_inst *sdi;
+       struct drv_context *drvc;
+       struct dev_context *devc;
+       int ret = SR_OK;
+
+       if (!(drvc = di->priv))
+               return SR_OK;
+
+       /* Properly close and free all devices. */
+       for (l = drvc->instances; l; l = l->next) {
+               if (!(sdi = l->data)) {
+                       /* Log error, but continue cleaning up the rest. */
+                       sr_err("%s: sdi was NULL, continuing", __func__);
+                       ret = SR_ERR_BUG;
+                       continue;
+               }
+               if (!(devc = sdi->priv)) {
+                       /* Log error, but continue cleaning up the rest. */
+                       sr_err("%s: sdi->priv was NULL, continuing", __func__);
+                       ret = SR_ERR_BUG;
+                       continue;
+               }
+               dev_close(sdi);
+               sr_serial_dev_inst_free(devc->serial);
+               sr_dev_inst_free(sdi);
+       }
+       g_slist_free(drvc->instances);
+       drvc->instances = NULL;
+
+       return ret;
+}
+
 static int init(struct sr_context *sr_ctx)
 {
        return std_init(sr_ctx, di, LOG_PREFIX);
@@ -250,37 +288,7 @@ static int dev_close(struct sr_dev_inst *sdi)
 
 static int cleanup(void)
 {
-       GSList *l;
-       struct sr_dev_inst *sdi;
-       struct drv_context *drvc;
-       struct dev_context *devc;
-       int ret = SR_OK;
-
-       if (!(drvc = di->priv))
-               return SR_OK;
-
-       /* Properly close and free all devices. */
-       for (l = drvc->instances; l; l = l->next) {
-               if (!(sdi = l->data)) {
-                       /* Log error, but continue cleaning up the rest. */
-                       sr_err("%s: sdi was NULL, continuing", __func__);
-                       ret = SR_ERR_BUG;
-                       continue;
-               }
-               if (!(devc = sdi->priv)) {
-                       /* Log error, but continue cleaning up the rest. */
-                       sr_err("%s: sdi->priv was NULL, continuing", __func__);
-                       ret = SR_ERR_BUG;
-                       continue;
-               }
-               dev_close(sdi);
-               sr_serial_dev_inst_free(devc->serial);
-               sr_dev_inst_free(sdi);
-       }
-       g_slist_free(drvc->instances);
-       drvc->instances = NULL;
-
-       return ret;
+       return dev_clear();
 }
 
 static int config_get(int id, GVariant **data, const struct sr_dev_inst *sdi)
@@ -481,7 +489,7 @@ SR_PRIV struct sr_dev_driver link_mso19_driver_info = {
        .cleanup = cleanup,
        .scan = scan,
        .dev_list = dev_list,
-       .dev_clear = cleanup,
+       .dev_clear = dev_clear,
        .config_get = config_get,
        .config_set = config_set,
        .config_list = config_list,
index 04a06b2e1c0878f213796b72ccaa4f01e5deda46..63c98821d7de00ad6a7b56b4d3c9420249d986f9 100644 (file)
@@ -53,6 +53,11 @@ static const uint64_t samplerates[] = {
 SR_PRIV struct sr_dev_driver ols_driver_info;
 static struct sr_dev_driver *di = &ols_driver_info;
 
+static int dev_clear(void)
+{
+       return std_dev_clear(di, NULL);
+}
+
 static int init(struct sr_context *sr_ctx)
 {
        return std_init(sr_ctx, di, LOG_PREFIX);
@@ -207,9 +212,9 @@ static int dev_close(struct sr_dev_inst *sdi)
        return SR_OK;
 }
 
-static int dev_clear(void)
+static int cleanup(void)
 {
-       return std_dev_clear(di, NULL);
+       return dev_clear();
 }
 
 static int config_get(int id, GVariant **data, const struct sr_dev_inst *sdi)
@@ -474,7 +479,7 @@ SR_PRIV struct sr_dev_driver ols_driver_info = {
        .longname = "Openbench Logic Sniffer",
        .api_version = 1,
        .init = init,
-       .cleanup = dev_clear,
+       .cleanup = cleanup,
        .scan = scan,
        .dev_list = dev_list,
        .dev_clear = dev_clear,