/* We name the probes 0-7 on our demo driver. */
static const char *probe_names[NUM_PROBES + 1] = {
- "0",
- "1",
- "2",
- "3",
- "4",
- "5",
- "6",
- "7",
+ "0", "1", "2", "3", "4", "5", "6", "7",
NULL,
};
/* List of struct sr_dev_inst, maintained by dev_open()/dev_close(). */
SR_PRIV struct sr_dev_driver demo_driver_info;
-static struct sr_dev_driver *ddi = &demo_driver_info;
+static struct sr_dev_driver *di = &demo_driver_info;
static uint64_t cur_samplerate = SR_KHZ(200);
static uint64_t limit_samples = 0;
static uint64_t limit_msec = 0;
static int hw_dev_acquisition_stop(struct sr_dev_inst *sdi, void *cb_data);
-static int hw_init(void)
+static int clear_instances(void)
+{
+ /* Nothing needed so far. */
+
+ return SR_OK;
+}
+
+static int hw_init(struct sr_context *sr_ctx)
{
struct drv_context *drvc;
sr_err("Driver context malloc failed.");
return SR_ERR_MALLOC;
}
- ddi->priv = drvc;
+ drvc->sr_ctx = sr_ctx;
+ di->priv = drvc;
return SR_OK;
}
(void)options;
- drvc = ddi->priv;
+ drvc = di->priv;
devices = NULL;
sdi = sr_dev_inst_new(0, SR_ST_ACTIVE, DEMONAME, NULL, NULL);
sr_err("%s: sr_dev_inst_new failed", __func__);
return 0;
}
- sdi->driver = ddi;
+ sdi->driver = di;
for (i = 0; probe_names[i]; i++) {
if (!(probe = sr_probe_new(i, SR_PROBE_LOGIC, TRUE,
{
struct drv_context *drvc;
- drvc = ddi->priv;
+ drvc = di->priv;
return drvc->instances;
}
case SR_DI_HWCAPS:
*data = hwcaps;
break;
- case SR_DI_NUM_PROBES:
- *data = GINT_TO_POINTER(NUM_PROBES);
- break;
- case SR_DI_PROBE_NAMES:
- *data = probe_names;
- break;
case SR_DI_SAMPLERATES:
*data = &samplerates;
break;
devc->samples_counter += sending_now;
}
-
- if (devc->samples_counter >= limit_samples) {
- sr_spew("We sent a total of %" PRIu64 " samples.",
- devc->samples_counter);
- /* Make sure we don't receive more packets. */
+ if (limit_samples && devc->samples_counter >= limit_samples) {
+ sr_info("Requested number of samples reached.");
hw_dev_acquisition_stop(NULL, cb_data);
return TRUE;
}
.cleanup = hw_cleanup,
.scan = hw_scan,
.dev_list = hw_dev_list,
+ .dev_clear = clear_instances,
.dev_open = hw_dev_open,
.dev_close = hw_dev_close,
.info_get = hw_info_get,