};
/* Function prototypes. */
-static int hw_dev_acquisition_stop(const struct sr_dev_inst *sdi,
- void *cb_data);
+static int hw_dev_acquisition_stop(struct sr_dev_inst *sdi, void *cb_data);
static int clear_instances(void)
{
return SR_OK;
}
-static int hw_init(void)
+static int hw_init(struct sr_context *sr_ctx)
{
struct drv_context *drvc;
return SR_ERR_MALLOC;
}
+ drvc->sr_ctx = sr_ctx;
di->priv = drvc;
return SR_OK;
sdi->priv = devc;
for (i = 0; probe_names[i]; i++) {
- if (!(probe = sr_probe_new(i, SR_PROBE_ANALOG, TRUE,
+ if (!(probe = sr_probe_new(i, SR_PROBE_LOGIC, TRUE,
probe_names[i])))
return NULL;
sdi->probes = g_slist_append(sdi->probes, probe);
err_close_ftdic:
(void) la8_close(devc); /* Log, but ignore errors. */
err_free_ftdic:
- free(devc->ftdic); /* NOT g_free()! */
+ ftdi_free(devc->ftdic); /* NOT free() or g_free()! */
err_free_final_buf:
g_free(devc->final_buf);
err_free_devc:
static int hw_cleanup(void)
{
- if (!di->priv) {
- sr_err("%s: di->priv was NULL.", __func__);
- return SR_ERR_BUG;
- }
+ if (!di->priv)
+ /* Can get called on an unused driver, doesn't matter. */
+ return SR_OK;
clear_instances();
case SR_DI_HWCAPS:
*data = hwcaps;
break;
- case SR_DI_NUM_PROBES:
- *data = GINT_TO_POINTER(NUM_PROBES);
- sr_spew("%s: Returning number of probes: %d.", __func__,
- NUM_PROBES);
- break;
- case SR_DI_PROBE_NAMES:
- *data = probe_names;
- sr_spew("%s: Returning probenames.", __func__);
- break;
case SR_DI_SAMPLERATES:
fill_supported_samplerates_if_needed();
*data = &samplerates;
return SR_OK;
}
-static int hw_dev_acquisition_stop(const struct sr_dev_inst *sdi,
- void *cb_data)
+static int hw_dev_acquisition_stop(struct sr_dev_inst *sdi, void *cb_data)
{
struct sr_datafeed_packet packet;