+static int config_list(int key, GVariant **data, const struct sr_dev_inst *sdi)
+{
+
+ (void)sdi;
+
+ switch (key) {
+ case SR_CONF_DEVICE_OPTIONS:
+ *data = g_variant_new_fixed_array(G_VARIANT_TYPE_INT32,
+ devopts, ARRAY_SIZE(devopts), sizeof(int32_t));
+ break;
+ case SR_CONF_BUFFERSIZE:
+ *data = g_variant_new_fixed_array(G_VARIANT_TYPE_UINT64,
+ buffersizes, ARRAY_SIZE(buffersizes), sizeof(uint64_t));
+ break;
+ case SR_CONF_COUPLING:
+ *data = g_variant_new_strv(coupling, ARRAY_SIZE(coupling));
+ break;
+ case SR_CONF_VDIV:
+ *data = g_variant_new_fixed_array(G_VARIANT_TYPE_INT32,
+ vdivs, ARRAY_SIZE(vdivs) * 2, sizeof(int32_t));
+ break;
+ case SR_CONF_FILTER:
+ *data = g_variant_new_strv(filter_targets,
+ ARRAY_SIZE(filter_targets));
+ break;
+ case SR_CONF_TIMEBASE:
+ *data = g_variant_new_fixed_array(G_VARIANT_TYPE_INT32,
+ timebases, ARRAY_SIZE(timebases) * 2, sizeof(int32_t));
+ break;
+ case SR_CONF_TRIGGER_SOURCE:
+ *data = g_variant_new_strv(trigger_sources,
+ ARRAY_SIZE(trigger_sources));
+ break;
+ default:
+ return SR_ERR_ARG;
+ }
+
+ return SR_OK;
+}
+
+static void send_chunk(struct sr_dev_inst *sdi, unsigned char *buf,