SR_PRIV struct sr_dev_driver sysclk_lwla_driver_info;
static struct sr_dev_driver *const di = &sysclk_lwla_driver_info;
-static int init(struct sr_context *sr_ctx)
+static int init(struct sr_dev_driver *di, struct sr_context *sr_ctx)
{
return std_init(sr_ctx, di, LOG_PREFIX);
}
-static GSList *gen_channel_list(int num_channels)
-{
- GSList *list;
- struct sr_channel *ch;
- int i;
- char name[8];
-
- list = NULL;
-
- for (i = num_channels; i > 0; --i) {
- /* The LWLA series simply number channels from CH1 to CHxx. */
- g_snprintf(name, sizeof(name), "CH%d", i);
-
- ch = sr_channel_new(i - 1, SR_CHANNEL_LOGIC, TRUE, name);
- list = g_slist_prepend(list, ch);
- }
-
- return list;
-}
-
static struct sr_dev_inst *dev_inst_new(void)
{
struct sr_dev_inst *sdi;
struct dev_context *devc;
+ int i;
+ char name[8];
/* Allocate memory for our private driver context. */
- devc = g_try_new0(struct dev_context, 1);
- if (!devc) {
- sr_err("Device context malloc failed.");
- return NULL;
- }
+ devc = g_malloc0(sizeof(struct dev_context));
/* Register the device with libsigrok. */
sdi = g_malloc0(sizeof(struct sr_dev_inst));
devc->samplerate = DEFAULT_SAMPLERATE;
sdi->priv = devc;
- sdi->channels = gen_channel_list(NUM_CHANNELS);
+ for (i = NUM_CHANNELS; i > 0; --i) {
+ /* The LWLA series simply number channels from CH1 to CHxx. */
+ g_snprintf(name, sizeof(name), "CH%d", i);
+ sr_channel_new(sdi, i - 1, SR_CHANNEL_LOGIC, TRUE, name);
+ }
return sdi;
}
-static GSList *scan(GSList *options)
+static GSList *scan(struct sr_dev_driver *di, GSList *options)
{
GSList *usb_devices, *devices, *node;
struct drv_context *drvc;
return devices;
}
-static GSList *dev_list(void)
+static GSList *dev_list(const struct sr_dev_driver *di)
{
struct drv_context *drvc;
g_free(devc);
}
-static int dev_clear(void)
+static int dev_clear(const struct sr_dev_driver *di)
{
return std_dev_clear(di, &clear_dev_context);
}
return SR_OK;
}
-static int cleanup(void)
+static int cleanup(const struct sr_dev_driver *di)
{
- return dev_clear();
+ return dev_clear(di);
}
static int config_get(uint32_t key, GVariant **data, const struct sr_dev_inst *sdi,