guchar tmp_c;
sdi = sr_dev_inst_new(0, SR_ST_INACTIVE, NULL, NULL, NULL);
+ sdi->driver = odi;
ctx = ols_dev_new();
sdi->priv = ctx;
/* not an OLS -- some other board that uses the sump protocol */
sdi = sr_dev_inst_new(final_devcnt, SR_ST_INACTIVE,
"Sump", "Logic Analyzer", "v1.0");
+ sdi->driver = odi;
ctx = ols_dev_new();
for (j = 0; j < 32; j++) {
if (!(probe = sr_probe_new(j, SR_PROBE_LOGIC, TRUE,
return devices;
}
-static int hw_dev_open(int dev_index)
+static int hw_dev_open(struct sr_dev_inst *sdi)
{
- struct sr_dev_inst *sdi;
struct context *ctx;
- if (!(sdi = sr_dev_inst_get(odi->instances, dev_index)))
- return SR_ERR;
-
ctx = sdi->priv;
ctx->serial->fd = serial_open(ctx->serial->port, O_RDWR);
return SR_OK;
}
-static int hw_dev_close(int dev_index)
+static int hw_dev_close(struct sr_dev_inst *sdi)
{
- struct sr_dev_inst *sdi;
struct context *ctx;
- if (!(sdi = sr_dev_inst_get(odi->instances, dev_index))) {
- sr_err("ols: %s: sdi was NULL", __func__);
- return SR_ERR_BUG;
- }
-
ctx = sdi->priv;
- /* TODO */
if (ctx->serial->fd != -1) {
serial_close(ctx->serial->fd);
ctx->serial->fd = -1;
case SR_DI_INST:
*data = sdi;
break;
+ case SR_DI_HWCAPS:
+ *data = hwcaps;
+ break;
case SR_DI_NUM_PROBES:
*data = GINT_TO_POINTER(1);
break;
return sdi->status;
}
-static int set_samplerate(struct sr_dev_inst *sdi, uint64_t samplerate)
+static int set_samplerate(const struct sr_dev_inst *sdi, uint64_t samplerate)
{
struct context *ctx;
return SR_OK;
}
-static int hw_dev_config_set(int dev_index, int hwcap, const void *value)
+static int hw_dev_config_set(const struct sr_dev_inst *sdi, int hwcap,
+ const void *value)
{
- struct sr_dev_inst *sdi;
struct context *ctx;
int ret;
const uint64_t *tmp_u64;
- if (!(sdi = sr_dev_inst_get(odi->instances, dev_index)))
- return SR_ERR;
ctx = sdi->priv;
if (sdi->status != SR_ST_ACTIVE)