*/
udev = udev_new();
if (!udev) {
- sr_warn("Failed to initialize udev.");
+ sr_err("Failed to initialize udev.");
goto ret;
}
enumerate = udev_enumerate_new(udev);
parent = udev_device_get_parent_with_subsystem_devtype(
dev, "usb", "usb_device");
if (!parent) {
- sr_warn("Unable to find parent usb device for %s",
- sysname);
+ sr_err("Unable to find parent usb device for %s",
+ sysname);
continue;
}
s = strcspn(iProduct, " ");
if (s > sizeof(product) ||
strlen(iProduct) - s > sizeof(manufacturer)) {
- sr_warn("Could not parse iProduct: %s", iProduct);
+ sr_err("Could not parse iProduct: %s", iProduct);
continue;
}
strncpy(product, iProduct, s);
}
if (mso_parse_serial(iSerial, iProduct, mso) != SR_OK) {
- sr_warn("Invalid iSerial: %s", iSerial);
+ sr_err("Invalid iSerial: %s", iSerial);
goto err_free_mso;
}
sprintf(hwrev, "r%d", mso->hwrev);
mso->protocol_trigger.spimode = 0;
}
- sdi = sr_device_instance_new(devcnt, SR_ST_INITIALIZING,
+ sdi = sr_dev_inst_new(devcnt, SR_ST_INITIALIZING,
manufacturer, product, hwrev);
if (!sdi) {
- sr_warn("Unable to create device instance for %s",
- sysname);
+ sr_err("Unable to create device instance for %s",
+ sysname);
goto err_free_mso;
}
/* save a pointer to our private instance data */
sdi->priv = mso;
- sdi->serial = sr_serial_device_instance_new(path, -1);
+ sdi->serial = sr_serial_dev_inst_new(path, -1);
if (!sdi->serial)
goto err_device_instance_free;
continue;
err_device_instance_free:
- sr_device_instance_free(sdi);
+ sr_dev_inst_free(sdi);
err_free_mso:
- free(mso);
+ g_free(mso);
}
udev_enumerate_unref(enumerate);
return devcnt;
}
-static void hw_cleanup(void)
+static int hw_cleanup(void)
{
GSList *l;
struct sr_device_instance *sdi;
+ int ret = SR_OK;
/* Properly close all devices. */
for (l = device_instances; l; l = l->next) {
- sdi = l->data;
+ if (!(sdi = l->data)) {
+ /* Log error, but continue cleaning up the rest. */
+ sr_err("mso19: %s: sdi was NULL, continuing", __func__);
+ ret = SR_ERR_BUG;
+ continue;
+ }
if (sdi->serial->fd != -1)
serial_close(sdi->serial->fd);
- if (sdi->priv != NULL)
- {
- free(sdi->priv);
- sdi->priv = NULL;
- }
- sr_device_instance_free(sdi);
+ g_free(sdi->priv);
+ sdi->priv = NULL;
+ sr_dev_inst_free(sdi);
}
g_slist_free(device_instances);
device_instances = NULL;
+
+ return SR_OK;
}
static int hw_opendev(int device_index)
struct mso *mso;
int ret = SR_ERR;
- if (!(sdi = sr_get_device_instance(device_instances, device_index)))
+ if (!(sdi = sr_get_dev_inst(device_instances, device_index)))
return ret;
mso = sdi->priv;
{
struct sr_device_instance *sdi;
- if (!(sdi = sr_get_device_instance(device_instances, device_index))) {
+ if (!(sdi = sr_get_dev_inst(device_instances, device_index))) {
sr_err("mso19: %s: sdi was NULL", __func__);
return SR_ERR; /* TODO: SR_ERR_ARG? */
}
struct mso *mso;
void *info = NULL;
- if (!(sdi = sr_get_device_instance(device_instances, device_index)))
+ if (!(sdi = sr_get_dev_inst(device_instances, device_index)))
return NULL;
mso = sdi->priv;
{
struct sr_device_instance *sdi;
- if (!(sdi = sr_get_device_instance(device_instances, device_index)))
+ if (!(sdi = sr_get_dev_inst(device_instances, device_index)))
return SR_ST_NOT_FOUND;
return sdi->status;
{
struct sr_device_instance *sdi;
- if (!(sdi = sr_get_device_instance(device_instances, device_index)))
+ if (!(sdi = sr_get_dev_inst(device_instances, device_index)))
return SR_ERR;
switch (capability) {
struct sr_datafeed_header header;
int ret = SR_ERR;
- if (!(sdi = sr_get_device_instance(device_instances, device_index)))
+ if (!(sdi = sr_get_dev_inst(device_instances, device_index)))
return ret;
mso = sdi->priv;
}
/* FIXME */
-static void hw_stop_acquisition(int device_index, gpointer session_device_id)
+static int hw_stop_acquisition(int device_index, gpointer session_device_id)
{
struct sr_datafeed_packet packet;
packet.type = SR_DF_END;
sr_session_bus(session_device_id, &packet);
+
+ return SR_OK;
}
SR_PRIV struct sr_device_plugin link_mso19_plugin_info = {