X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=src%2Fsession_driver.c;h=91c05404316620fbeae853ba983893922b2d160c;hb=41812aca436805b0614f2a8f31cf2f8ce494aea0;hp=62b16986e4afa264419fb0263e8381c2afdb176c;hpb=68ac991dbaa05ab91459419400b21b93f02d0e76;p=libsigrok.git diff --git a/src/session_driver.c b/src/session_driver.c index 62b16986..91c05404 100644 --- a/src/session_driver.c +++ b/src/session_driver.c @@ -34,7 +34,6 @@ /** @endcond */ SR_PRIV struct sr_dev_driver session_driver_info; -static struct sr_dev_driver *di = &session_driver_info; struct session_vdev { char *sessionfile; @@ -118,10 +117,7 @@ static int receive_data(int fd, int revents, void *cb_data) } } - if (!(buf = g_try_malloc(CHUNKSIZE))) { - sr_err("%s: buf malloc failed", __func__); - return FALSE; - } + buf = g_malloc(CHUNKSIZE); ret = zip_fread(vdev->capfile, buf, CHUNKSIZE / vdev->unitsize * vdev->unitsize); @@ -165,17 +161,17 @@ static int receive_data(int fd, int revents, void *cb_data) /* driver callbacks */ -static int init(struct sr_context *sr_ctx) +static int init(struct sr_dev_driver *di, struct sr_context *sr_ctx) { return std_init(sr_ctx, di, LOG_PREFIX); } -static int dev_clear(void) +static int dev_clear(const struct sr_dev_driver *di) { struct drv_context *drvc; GSList *l; - drvc = di->priv; + drvc = di->context; for (l = drvc->instances; l; l = l->next) sr_dev_inst_free(l->data); g_slist_free(drvc->instances); @@ -186,10 +182,12 @@ static int dev_clear(void) static int dev_open(struct sr_dev_inst *sdi) { + struct sr_dev_driver *di; struct drv_context *drvc; struct session_vdev *vdev; - drvc = di->priv; + di = sdi->driver; + drvc = di->context; vdev = g_malloc0(sizeof(struct session_vdev)); sdi->priv = vdev; drvc->instances = g_slist_append(drvc->instances, sdi); @@ -337,5 +335,5 @@ SR_PRIV struct sr_dev_driver session_driver = { .dev_close = dev_close, .dev_acquisition_start = dev_acquisition_start, .dev_acquisition_stop = NULL, - .priv = NULL, + .context = NULL, };