0,
};
+/* Probes are numbered 0-31 (on the PCB silkscreen). */
static const char *probe_names[NUM_PROBES + 1] = {
"0",
"1",
if (!(sdi = sr_dev_inst_get(dev_insts, dev_index))) {
sr_err("ols: %s: sdi was NULL", __func__);
- return SR_ERR; /* TODO: SR_ERR_ARG? */
+ return SR_ERR_BUG;
}
ctx = sdi->priv;
return ret;
}
-static int receive_data(int fd, int revents, void *session_data)
+static int receive_data(int fd, int revents, void *cb_data)
{
struct sr_datafeed_packet packet;
struct sr_datafeed_logic logic;
* finished. We'll double that to 30ms to be sure...
*/
sr_source_remove(fd);
- sr_source_add(fd, G_IO_IN, 30, receive_data, session_data);
+ sr_source_add(fd, G_IO_IN, 30, receive_data, cb_data);
ctx->raw_sample_buf = g_try_malloc(ctx->limit_samples * 4);
if (!ctx->raw_sample_buf) {
sr_err("ols: %s: ctx->raw_sample_buf malloc failed",
logic.unitsize = 4;
logic.data = ctx->raw_sample_buf +
(ctx->limit_samples - ctx->num_samples) * 4;
- sr_session_bus(session_data, &packet);
+ sr_session_send(cb_data, &packet);
}
/* send the trigger */
packet.type = SR_DF_TRIGGER;
- sr_session_bus(session_data, &packet);
+ sr_session_send(cb_data, &packet);
/* send post-trigger samples */
packet.type = SR_DF_LOGIC;
logic.unitsize = 4;
logic.data = ctx->raw_sample_buf + ctx->trigger_at * 4 +
(ctx->limit_samples - ctx->num_samples) * 4;
- sr_session_bus(session_data, &packet);
+ sr_session_send(cb_data, &packet);
} else {
/* no trigger was used */
packet.type = SR_DF_LOGIC;
logic.unitsize = 4;
logic.data = ctx->raw_sample_buf +
(ctx->limit_samples - ctx->num_samples) * 4;
- sr_session_bus(session_data, &packet);
+ sr_session_send(cb_data, &packet);
}
g_free(ctx->raw_sample_buf);
serial_flush(fd);
serial_close(fd);
packet.type = SR_DF_END;
- sr_session_bus(session_data, &packet);
+ sr_session_send(cb_data, &packet);
}
return TRUE;
}
-static int hw_dev_acquisition_start(int dev_index, gpointer session_data)
+static int hw_dev_acquisition_start(int dev_index, void *cb_data)
{
struct sr_datafeed_packet *packet;
struct sr_datafeed_header *header;
return SR_ERR;
sr_source_add(ctx->serial->fd, G_IO_IN, -1, receive_data,
- session_data);
+ cb_data);
if (!(packet = g_try_malloc(sizeof(struct sr_datafeed_packet)))) {
sr_err("ols: %s: packet malloc failed", __func__);
gettimeofday(&header->starttime, NULL);
header->samplerate = ctx->cur_samplerate;
header->num_logic_probes = NUM_PROBES;
- sr_session_bus(session_data, packet);
+ sr_session_send(cb_data, packet);
g_free(header);
g_free(packet);
return SR_OK;
}
-static int hw_dev_acquisition_stop(int dev_index, gpointer session_dev_id)
+/* TODO: This stops acquisition on ALL devices, ignoring dev_index. */
+static int hw_dev_acquisition_stop(int dev_index, void *cb_data)
{
struct sr_datafeed_packet packet;
(void)dev_index;
packet.type = SR_DF_END;
- sr_session_bus(session_dev_id, &packet);
+ sr_session_send(cb_data, &packet);
return SR_OK;
}
-SR_PRIV struct sr_dev_plugin ols_plugin_info = {
+SR_PRIV struct sr_dev_driver ols_driver_info = {
.name = "ols",
.longname = "Openbench Logic Sniffer",
.api_version = 1,