diff --git a/hwdriver.c b/hwdriver.c index 91b0e6d9..f74d47f0 100644 --- a/hwdriver.c +++ b/hwdriver.c @@ -193,6 +193,7 @@ SR_PRIV struct sr_dev_inst *sr_dev_inst_new(int index, int status, sdi->vendor = vendor ? g_strdup(vendor) : NULL; sdi->model = model ? g_strdup(model) : NULL; sdi->version = version ? g_strdup(version) : NULL; + sdi->probes = NULL; sdi->priv = NULL; return sdi; @@ -222,6 +223,25 @@ SR_PRIV void sr_dev_inst_free(struct sr_dev_inst *sdi) g_free(sdi); } +SR_PRIV struct sr_probe *sr_probe_new(int index, int type, + gboolean enabled, const char *name) +{ + struct sr_probe *probe; + + if (!(probe = g_try_malloc0(sizeof(struct sr_probe)))) { + sr_err("hwdriver: probe malloc failed"); + return NULL; + } + + probe->index = index; + probe->type = type; + probe->enabled = enabled; + if (name) + probe->name = g_strdup(name); + + return probe; +} + #ifdef HAVE_LIBUSB_1_0 SR_PRIV struct sr_usb_dev_inst *sr_usb_dev_inst_new(uint8_t bus, diff --git a/libsigrok-internal.h b/libsigrok-internal.h index 94ca2bc9..393e668f 100644 --- a/libsigrok-internal.h +++ b/libsigrok-internal.h @@ -91,6 +91,8 @@ SR_PRIV struct sr_dev_inst *sr_dev_inst_new(int index, int status, const char *vendor, const char *model, const char *version); SR_PRIV struct sr_dev_inst *sr_dev_inst_get(GSList *dev_insts, int dev_index); SR_PRIV void sr_dev_inst_free(struct sr_dev_inst *sdi); +SR_PRIV struct sr_probe *sr_probe_new(int index, int type, + gboolean enabled, const char *name); SR_PRIV int sr_source_remove(int fd); SR_PRIV int sr_source_add(int fd, int events, int timeout, diff --git a/libsigrok.h b/libsigrok.h index bedfbdb7..42406d54 100644 --- a/libsigrok.h +++ b/libsigrok.h @@ -250,7 +250,7 @@ struct sr_dev { }; enum { - SR_PROBE_TYPE_LOGIC, + SR_PROBE_LOGIC, }; struct sr_probe { @@ -402,6 +402,7 @@ struct sr_dev_inst { char *vendor; char *model; char *version; + GSList *probes; void *priv; };