X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=device.c;h=0167a220cc390b289bbfd121e650c5a32f4cb74a;hb=082972e8c5deb48eba5c2b558e451dea1005e23f;hp=55be3254ba42b2e7c5658f03437b3ad1adf8da02;hpb=c4f2dfd0f0df07e6e2b10e33c46c9c457c9c5016;p=libsigrok.git diff --git a/device.c b/device.c index 55be3254..0167a220 100644 --- a/device.c +++ b/device.c @@ -265,6 +265,9 @@ SR_PRIV void sr_dev_inst_free(struct sr_dev_inst *sdi) } g_slist_free(sdi->probes); + if (sdi->probe_groups) + g_slist_free(sdi->probe_groups); + g_free(sdi->vendor); g_free(sdi->model); g_free(sdi->version); @@ -347,9 +350,34 @@ SR_PRIV void sr_serial_dev_inst_free(struct sr_serial_dev_inst *serial) g_free(serial->serialcomm); g_free(serial); } - #endif +SR_PRIV struct sr_usbtmc_dev_inst *sr_usbtmc_dev_inst_new(const char *device) +{ + struct sr_usbtmc_dev_inst *usbtmc; + + if (!device) { + sr_err("Device name required."); + return NULL; + } + + if (!(usbtmc = g_try_malloc0(sizeof(struct sr_usbtmc_dev_inst)))) { + sr_err("USBTMC device instance malloc failed."); + return NULL; + } + + usbtmc->device = g_strdup(device); + usbtmc->fd = -1; + + return usbtmc; +} + +SR_PRIV void sr_usbtmc_dev_inst_free(struct sr_usbtmc_dev_inst *usbtmc) +{ + g_free(usbtmc->device); + g_free(usbtmc); +} + /** * Get the list of devices/instances of the specified driver. *