X-Git-Url: http://sigrok.org/gitweb/?a=blobdiff_plain;f=hardware%2Flink-mso19%2Flink-mso19.c;h=30449e08265ec8e722c004be6bec4c5d909b2dc3;hb=b7f578bef53ff0e645ca0cae3f9781f577b7367a;hp=38647b8fbc59d2c7a8f6a6452bd4fe877da9e1eb;hpb=31ccebc4925d245fed02545415ce3ee14055d897;p=libsigrok.git diff --git a/hardware/link-mso19/link-mso19.c b/hardware/link-mso19/link-mso19.c index 38647b8f..30449e08 100644 --- a/hardware/link-mso19/link-mso19.c +++ b/hardware/link-mso19/link-mso19.c @@ -37,7 +37,7 @@ #define NUM_PROBES 8 -static int hwcaps[] = { +static const int hwcaps[] = { SR_HWCAP_LOGIC_ANALYZER, // SR_HWCAP_OSCILLOSCOPE, // SR_HWCAP_PAT_GENERATOR, @@ -90,9 +90,9 @@ static uint64_t supported_samplerates[] = { }; static struct sr_samplerates samplerates = { - SR_HZ(100), - SR_MHZ(200), - SR_HZ(0), + 0, + 0, + 0, supported_samplerates, }; @@ -593,7 +593,7 @@ static int hw_dev_close(int dev_index) if (!(sdi = sr_dev_inst_get(dev_insts, dev_index))) { sr_err("mso19: %s: sdi was NULL", __func__); - return SR_ERR; /* TODO: SR_ERR_ARG? */ + return SR_ERR_BUG; } /* TODO */ @@ -607,11 +607,11 @@ static int hw_dev_close(int dev_index) return SR_OK; } -static void *hw_dev_info_get(int dev_index, int dev_info_id) +static const void *hw_dev_info_get(int dev_index, int dev_info_id) { struct sr_dev_inst *sdi; struct context *ctx; - void *info = NULL; + const void *info = NULL; if (!(sdi = sr_dev_inst_get(dev_insts, dev_index))) return NULL; @@ -650,7 +650,7 @@ static int hw_dev_status_get(int dev_index) return sdi->status; } -static int *hw_hwcap_get_all(void) +static const int *hw_hwcap_get_all(void) { return hwcaps; } @@ -681,9 +681,9 @@ static int hw_dev_config_set(int dev_index, int hwcap, void *value) #define MSO_TRIGGER_DATAREADY '6' /* FIXME: Pass errors? */ -static int receive_data(int fd, int revents, void *user_data) +static int receive_data(int fd, int revents, void *cb_data) { - struct sr_dev_inst *sdi = user_data; + struct sr_dev_inst *sdi = cb_data; struct context *ctx = sdi->priv; struct sr_datafeed_packet packet; struct sr_datafeed_logic logic; @@ -691,7 +691,8 @@ static int receive_data(int fd, int revents, void *user_data) double analog_out[1024]; size_t i, s; - revents = revents; + /* Avoid compiler warnings. */ + (void)revents; s = serial_read(fd, in, sizeof(in)); if (s <= 0) @@ -731,7 +732,7 @@ static int receive_data(int fd, int revents, void *user_data) logic.length = 1024; logic.unitsize = 1; logic.data = logic_out; - sr_session_send(ctx->session_id, &packet); + sr_session_send(ctx->session_dev_id, &packet); // Dont bother fixing this yet, keep it "old style" /* @@ -739,16 +740,16 @@ static int receive_data(int fd, int revents, void *user_data) packet.length = 1024; packet.unitsize = sizeof(double); packet.payload = analog_out; - sr_session_send(ctx->session_id, &packet); + sr_session_send(ctx->session_dev_id, &packet); */ packet.type = SR_DF_END; - sr_session_send(ctx->session_id, &packet); + sr_session_send(ctx->session_dev_id, &packet); return TRUE; } -static int hw_dev_acquisition_start(int dev_index, gpointer session_dev_id) +static int hw_dev_acquisition_start(int dev_index, void *cb_data) { struct sr_dev_inst *sdi; struct context *ctx; @@ -806,7 +807,7 @@ static int hw_dev_acquisition_start(int dev_index, gpointer session_dev_id) if (ret != SR_OK) return ret; - ctx->session_id = session_dev_id; + ctx->session_dev_id = cb_data; sr_source_add(sdi->serial->fd, G_IO_IN, -1, receive_data, sdi); packet.type = SR_DF_HEADER; @@ -816,20 +817,21 @@ static int hw_dev_acquisition_start(int dev_index, gpointer session_dev_id) header.samplerate = ctx->cur_rate; // header.num_analog_probes = 1; header.num_logic_probes = 8; - sr_session_send(session_dev_id, &packet); + sr_session_send(ctx->session_dev_id, &packet); return ret; } -/* FIXME */ -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; - dev_index = dev_index; + /* Avoid compiler warnings. */ + (void)dev_index; packet.type = SR_DF_END; - sr_session_send(session_dev_id, &packet); + sr_session_send(cb_data, &packet); return SR_OK; }