24 #include "libsigrok-internal.h"
27 #define LOG_PREFIX "device: "
28 #define sr_log(l, s, args...) sr_log(l, LOG_PREFIX s, ## args)
29 #define sr_spew(s, args...) sr_spew(LOG_PREFIX s, ## args)
30 #define sr_dbg(s, args...) sr_dbg(LOG_PREFIX s, ## args)
31 #define sr_info(s, args...) sr_info(LOG_PREFIX s, ## args)
32 #define sr_warn(s, args...) sr_warn(LOG_PREFIX s, ## args)
33 #define sr_err(s, args...) sr_err(LOG_PREFIX s, ## args)
55 if (!(probe = g_try_malloc0(
sizeof(
struct sr_probe)))) {
56 sr_err(
"Probe malloc failed.");
64 probe->
name = g_strdup(name);
86 int probenum,
const char *
name)
93 sr_err(
"%s: sdi was NULL", __func__);
98 for (l = sdi->
probes; l; l = l->next) {
100 if (probe->
index == probenum) {
102 probe->
name = g_strdup(name);
133 for (l = sdi->
probes; l; l = l->next) {
135 if (probe->
index == probenum) {
170 for (l = sdi->
probes; l; l = l->next) {
172 if (probe->
index == probenum) {
175 probe->
trigger = g_strdup(trigger);
215 devopts = g_variant_get_fixed_array(gvar, &num_opts,
sizeof(int32_t));
216 for (i = 0; i < num_opts; i++) {
217 if (devopts[i] == key) {
222 g_variant_unref(gvar);
233 if (!(sdi = g_try_malloc(
sizeof(
struct sr_dev_inst)))) {
234 sr_err(
"Device instance malloc failed.");
242 sdi->
vendor = vendor ? g_strdup(vendor) : NULL;
243 sdi->
model = model ? g_strdup(model) : NULL;
244 sdi->
version = version ? g_strdup(version) : NULL;
258 for (l = sdi->
probes; l; l = l->next) {
271 #ifdef HAVE_LIBUSB_1_0
274 SR_PRIV struct sr_usb_dev_inst *sr_usb_dev_inst_new(uint8_t bus,
275 uint8_t address,
struct libusb_device_handle *hdl)
277 struct sr_usb_dev_inst *udi;
279 if (!(udi = g_try_malloc(
sizeof(
struct sr_usb_dev_inst)))) {
280 sr_err(
"USB device instance malloc failed.");
285 udi->address = address;
292 SR_PRIV void sr_usb_dev_inst_free(
struct sr_usb_dev_inst *usb)
317 SR_PRIV struct sr_serial_dev_inst *sr_serial_dev_inst_new(
const char *port,
318 const char *serialcomm)
320 struct sr_serial_dev_inst *serial;
323 sr_err(
"Serial port required.");
327 if (!(serial = g_try_malloc0(
sizeof(
struct sr_serial_dev_inst)))) {
328 sr_err(
"Serial device instance malloc failed.");
332 serial->port = g_strdup(port);
334 serial->serialcomm = g_strdup(serialcomm);
341 SR_PRIV void sr_serial_dev_inst_free(
struct sr_serial_dev_inst *serial)
343 g_free(serial->port);
344 g_free(serial->serialcomm);