return NULL;
}
+ sdi->driver = NULL;
sdi->index = index;
sdi->status = status;
sdi->inst_type = -1;
SR_PRIV void sr_dev_inst_free(struct sr_dev_inst *sdi)
{
+ struct sr_probe *probe;
+ GSList *l;
+
+ for (l = sdi->probes; l; l = l->next) {
+ probe = l->data;
+ g_free(probe->name);
+ g_free(probe);
+ }
+
g_free(sdi->priv);
g_free(sdi->vendor);
g_free(sdi->model);
g_free(sdi->version);
g_free(sdi);
+
}
#ifdef HAVE_LIBUSB_1_0
g_free(serial->port);
}
+SR_API int sr_dev_config_set(const struct sr_dev_inst *sdi, int hwcap,
+ const void *value)
+{
+ int ret;
+
+ if (!sdi || !sdi->driver || !sdi->driver->dev_config_set) {
+ sr_err("hwdriver: unable to set config option");
+ return SR_ERR;
+ }
+
+ ret = sdi->driver->dev_config_set(sdi, hwcap, value);
+
+ return ret;
+}
+
+SR_API GSList *sr_dev_inst_list(const struct sr_dev_driver *driver)
+{
+
+ if (driver && driver->dev_list)
+ return driver->dev_list();
+ else
+ return NULL;
+}
+
+SR_API int sr_dev_inst_clear(const struct sr_dev_driver *driver)
+{
+
+ if (driver && driver->dev_clear)
+ return driver->dev_clear();
+ else
+ return SR_OK;
+}
+