- if (!(drvc = g_try_malloc0(sizeof(struct drv_context)))) {
- sr_err("Driver context malloc failed.");
- return SR_ERR_MALLOC;
+ conn = serialcomm = NULL;
+ for (l = options; l; l = l->next) {
+ if (!(src = l->data)) {
+ sr_err("Invalid option data, skipping.");
+ continue;
+ }
+ switch (src->key) {
+ case SR_CONF_CONN:
+ conn = g_variant_get_string(src->data, NULL);
+ break;
+ case SR_CONF_SERIALCOMM:
+ serialcomm = g_variant_get_string(src->data, NULL);
+ break;
+ default:
+ sr_err("Unknown option %d, skipping.", src->key);
+ break;
+ }
+ }
+ if (!conn)
+ return NULL;
+ if (!serialcomm)
+ serialcomm = SERIALCOMM;
+
+ if (!(sdi = sr_dev_inst_new(0, SR_ST_INACTIVE, "Tondaj",
+ "SL-814", NULL))) {
+ sr_err("Failed to create device instance.");
+ return NULL;