return SR_OK;
}
-static void hw_closedev(int device_index)
+static int hw_closedev(int device_index)
{
struct sr_device_instance *sdi;
struct la8 *la8;
if (!(sdi = sr_get_device_instance(device_instances, device_index))) {
sr_err("la8: %s: sdi was NULL", __func__);
- return;
+ return SR_ERR; /* TODO: SR_ERR_ARG? */
}
if (!(la8 = sdi->priv)) {
sr_err("la8: %s: sdi->priv was NULL", __func__);
- return;
+ return SR_ERR; /* TODO: SR_ERR_ARG? */
}
sr_dbg("la8: closing device");
if (sdi->status == SR_ST_ACTIVE) {
sr_dbg("la8: %s: status ACTIVE, closing device", __func__);
+ /* TODO: Really ignore errors here, or return SR_ERR? */
(void) la8_close_usb_reset_sequencer(la8); /* Ignore errors. */
} else {
sr_dbg("la8: %s: status not ACTIVE, nothing to do", __func__);
sdi->status = SR_ST_INACTIVE;
sr_dbg("la8: %s: freeing sample buffers", __func__);
- free(la8->final_buf);
+ g_free(la8->final_buf);
+
+ return SR_OK;
}
static void hw_cleanup(void)
.api_version = 1,
.init = hw_init,
.cleanup = hw_cleanup,
- .open = hw_opendev,
- .close = hw_closedev,
+ .opendev = hw_opendev,
+ .closedev = hw_closedev,
.get_device_info = hw_get_device_info,
.get_status = hw_get_status,
.get_capabilities = hw_get_capabilities,