#include "libsigrok-internal.h"
#include "protocol.h"
-SR_PRIV struct sr_dev_driver driver_info;
+SR_PRIV struct sr_dev_driver ${lib}_driver_info;
static struct sr_dev_driver *di = &${lib}_driver_info;
/* Properly close and free all devices. */
struct dev_context *devc;
GSList *l;
- drvc = di->priv;
+ if (!(drvc = di->priv))
+ return SR_OK;
+
for (l = drvc->instances; l; l = l->next) {
if (!(sdi = l->data))
continue;
return SR_OK;
}
-static int hw_init(void)
+static int hw_init(struct sr_context *sr_ctx)
{
struct drv_context *drvc;
if (!(drvc = g_try_malloc0(sizeof(struct drv_context)))) {
- SR_ERR("Driver context malloc failed.");
- return SR_ERR;
+ sr_err("Driver context malloc failed.");
+ return SR_ERR_MALLOC;
}
/* TODO */
+ drvc->sr_ctx = sr_ctx;
di->priv = drvc;
return SR_OK;
switch (info_id) {
/* TODO */
default:
- SR_ERR("Unknown info_id: %d.", info_id);
return SR_ERR_ARG;
}
int ret;
if (sdi->status != SR_ST_ACTIVE) {
- SR_ERR("Device inactive, can't set config options.");
+ sr_err("Device inactive, can't set config options.");
return SR_ERR;
}
switch (hwcap) {
/* TODO */
default:
- SR_ERR("Unknown hardware capability: %d.", hwcap);
+ sr_err("Unknown hardware capability: %d.", hwcap);
ret = SR_ERR_ARG;
}
return SR_OK;
}
-static int hw_dev_acquisition_stop(const struct sr_dev_inst *sdi,
- void *cb_data)
+static int hw_dev_acquisition_stop(struct sr_dev_inst *sdi, void *cb_data)
{
(void)cb_data;