From: Gerhard Sittig Date: Thu, 28 Sep 2023 19:11:54 +0000 (+0200) Subject: zeroplus-logic-cube: address minor style nits X-Git-Url: https://sigrok.org/gitweb/?p=libsigrok.git;a=commitdiff_plain;h=076d59b7e62e9cef40f2a9edd63b42c99f442b4f zeroplus-logic-cube: address minor style nits Prefer size types for indices and length specs. Separate function calls from result inspection from flow control, to improve readability. Trim text line length in complex expressions. Eliminate redundant data types in malloc calls. Eliminate else after return. Remove dead code. --- diff --git a/src/hardware/zeroplus-logic-cube/api.c b/src/hardware/zeroplus-logic-cube/api.c index 1fae2c8a..49e0e1f9 100644 --- a/src/hardware/zeroplus-logic-cube/api.c +++ b/src/hardware/zeroplus-logic-cube/api.c @@ -169,7 +169,9 @@ static GSList *scan(struct sr_dev_driver *di, GSList *options) struct libusb_device_handle *hdl; libusb_device **devlist; GSList *devices; - int ret, i, j; + int ret; + size_t i, j; + uint8_t bus, addr; const struct zp_model *check; char serial_num[64], connection_id[64]; @@ -181,7 +183,6 @@ static GSList *scan(struct sr_dev_driver *di, GSList *options) /* Find all ZEROPLUS analyzers and add them to device list. */ libusb_get_device_list(drvc->sr_ctx->libusb_ctx, &devlist); /* TODO: Errors. */ - for (i = 0; devlist[i]; i++) { libusb_get_device_descriptor(devlist[i], &des); @@ -209,17 +210,20 @@ static GSList *scan(struct sr_dev_driver *di, GSList *options) continue; /* Get the device's serial number from USB strings. */ - if ((ret = libusb_open(devlist[i], &hdl)) < 0) + ret = libusb_open(devlist[i], &hdl); + if (ret < 0) continue; - if (des.iSerialNumber == 0) { - serial_num[0] = '\0'; - } else if ((ret = libusb_get_string_descriptor_ascii(hdl, - des.iSerialNumber, (unsigned char *) serial_num, - sizeof(serial_num))) < 0) { - sr_warn("Failed to get serial number string descriptor: %s.", - libusb_error_name(ret)); - continue; + serial_num[0] = '\0'; + if (des.iSerialNumber != 0) { + ret = libusb_get_string_descriptor_ascii(hdl, + des.iSerialNumber, + (uint8_t *)serial_num, sizeof(serial_num)); + if (ret < 0) { + sr_warn("Cannot get USB serial number: %s.", + libusb_error_name(ret)); + continue; + } } libusb_close(hdl); @@ -229,14 +233,19 @@ static GSList *scan(struct sr_dev_driver *di, GSList *options) sr_info("Found ZEROPLUS %s.", prof->model_name); - sdi = g_malloc0(sizeof(struct sr_dev_inst)); + sdi = g_malloc0(sizeof(*sdi)); sdi->status = SR_ST_INACTIVE; sdi->vendor = g_strdup("ZEROPLUS"); sdi->model = g_strdup(prof->model_name); sdi->serial_num = g_strdup(serial_num); sdi->connection_id = g_strdup(connection_id); - devc = g_malloc0(sizeof(struct dev_context)); + bus = libusb_get_bus_number(devlist[i]); + addr = libusb_get_device_address(devlist[i]); + sdi->inst_type = SR_INST_USB; + sdi->conn = sr_usb_dev_inst_new(bus, addr, NULL); + + devc = g_malloc0(sizeof(*devc)); sdi->priv = devc; devc->prof = prof; devc->num_channels = prof->channels; @@ -249,17 +258,13 @@ static GSList *scan(struct sr_dev_driver *di, GSList *options) #endif devc->max_samplerate *= SR_MHZ(1); devc->memory_size = MEMORY_SIZE_8K; - // memset(devc->trigger_buffer, 0, NUM_TRIGGER_STAGES); - for (j = 0; j < devc->num_channels; j++) + for (j = 0; j < devc->num_channels; j++) { sr_channel_new(sdi, j, SR_CHANNEL_LOGIC, TRUE, channel_names[j]); + } devices = g_slist_append(devices, sdi); - sdi->inst_type = SR_INST_USB; - sdi->conn = sr_usb_dev_inst_new( - libusb_get_bus_number(devlist[i]), - libusb_get_device_address(devlist[i]), NULL); } libusb_free_device_list(devlist, 1); diff --git a/src/hardware/zeroplus-logic-cube/protocol.c b/src/hardware/zeroplus-logic-cube/protocol.c index bc517c35..37fcbdcc 100644 --- a/src/hardware/zeroplus-logic-cube/protocol.c +++ b/src/hardware/zeroplus-logic-cube/protocol.c @@ -21,14 +21,13 @@ #include #include "protocol.h" -SR_PRIV unsigned int get_memory_size(int type) +SR_PRIV size_t get_memory_size(int type) { if (type == MEMORY_SIZE_8K) return (8 * 1024); - else if (type <= MEMORY_SIZE_8M) + if (type <= MEMORY_SIZE_8M) return (32 * 1024) << type; - else - return 0; + return 0; } static int clz(unsigned int x) @@ -59,6 +58,8 @@ static int clz(unsigned int x) SR_PRIV int set_limit_samples(struct dev_context *devc, uint64_t samples) { + size_t mem_kb; + if (samples > devc->max_sample_depth) samples = devc->max_sample_depth; @@ -71,8 +72,8 @@ SR_PRIV int set_limit_samples(struct dev_context *devc, uint64_t samples) else devc->memory_size = 19 - clz(samples - 1); - sr_info("Setting memory size to %dK.", - get_memory_size(devc->memory_size) / 1024); + mem_kb = get_memory_size(devc->memory_size) / 1024; + sr_info("Setting memory size to %zuK.", mem_kb); analyzer_set_memory_size(devc->memory_size); diff --git a/src/hardware/zeroplus-logic-cube/protocol.h b/src/hardware/zeroplus-logic-cube/protocol.h index e179f1f8..b0c358be 100644 --- a/src/hardware/zeroplus-logic-cube/protocol.h +++ b/src/hardware/zeroplus-logic-cube/protocol.h @@ -30,24 +30,21 @@ #define LOG_PREFIX "zeroplus-logic-cube" +struct zp_model; struct dev_context { uint64_t cur_samplerate; uint64_t max_samplerate; uint64_t limit_samples; - int num_channels; - int memory_size; - unsigned int max_sample_depth; - //uint8_t channel_mask; - //uint8_t trigger_mask[NUM_TRIGGER_STAGES]; - //uint8_t trigger_value[NUM_TRIGGER_STAGES]; - // uint8_t trigger_buffer[NUM_TRIGGER_STAGES]; + size_t num_channels; + size_t memory_size; + size_t max_sample_depth; int trigger; uint64_t capture_ratio; double cur_threshold; const struct zp_model *prof; }; -SR_PRIV unsigned int get_memory_size(int type); +SR_PRIV size_t get_memory_size(int type); SR_PRIV int zp_set_samplerate(struct dev_context *devc, uint64_t samplerate); SR_PRIV int set_limit_samples(struct dev_context *devc, uint64_t samples); SR_PRIV int set_voltage_threshold(struct dev_context *devc, double thresh);