" vsllink "
"-------------------------------------");
- while (cmd != NULL) {
+ while (cmd) {
switch (cmd->type) {
case JTAG_RUNTEST:
LOG_DEBUG_IO("runtest %i cycles, end in %s",
break;
case JTAG_SLEEP:
- LOG_DEBUG_IO("sleep %i", cmd->cmd.sleep->us);
+ LOG_DEBUG_IO("sleep %" PRIu32, cmd->cmd.sleep->us);
vsllink_tap_execute();
jtag_sleep(cmd->cmd.sleep->us);
break;
static void vsllink_free_buffer(void)
{
- if (tdi_buffer != NULL) {
- free(tdi_buffer);
- tdi_buffer = NULL;
- }
- if (tdo_buffer != NULL) {
- free(tdo_buffer);
- tdo_buffer = NULL;
- }
- if (tms_buffer != NULL) {
- free(tms_buffer);
- tms_buffer = NULL;
- }
+ free(tdi_buffer);
+ tdi_buffer = NULL;
+
+ free(tdo_buffer);
+ tdo_buffer = NULL;
+
+ free(tms_buffer);
+ tms_buffer = NULL;
}
static int vsllink_quit(void)
static int vsllink_interface_init(void)
{
vsllink_handle = malloc(sizeof(struct vsllink));
- if (NULL == vsllink_handle) {
+ if (!vsllink_handle) {
LOG_ERROR("unable to allocate memory");
return ERROR_FAIL;
}
libusb_init(&vsllink_handle->libusb_ctx);
- if (ERROR_OK != vsllink_usb_open(vsllink_handle)) {
- LOG_ERROR("Can't find USB JTAG Interface!" \
+ if (vsllink_usb_open(vsllink_handle) != ERROR_OK) {
+ LOG_ERROR("Can't find USB JTAG Interface!"
"Please check connection and permissions.");
return ERROR_JTAG_INIT_FAILED;
}
versaloon_interface.usb_setting.pid);
versaloon_usb_device_handle = vsllink_handle->usb_device_handle;
- if (ERROR_OK != versaloon_interface.init())
+ if (versaloon_interface.init() != ERROR_OK)
return ERROR_FAIL;
if (versaloon_interface.usb_setting.buf_size < 32) {
versaloon_interface.fini();
static int vsllink_init(void)
{
int retval = vsllink_interface_init();
- if (ERROR_OK != retval)
+ if (retval != ERROR_OK)
return retval;
versaloon_interface.adaptors.gpio.init(0);
tdi_buffer = malloc(tap_buffer_size);
tdo_buffer = malloc(tap_buffer_size);
tms_buffer = malloc(tap_buffer_size);
- if ((NULL == tdi_buffer) || (NULL == tdo_buffer) || (NULL == tms_buffer)) {
+ if ((!tdi_buffer) || (!tdo_buffer) || (!tms_buffer)) {
vsllink_quit();
return ERROR_FAIL;
}
GPIO_TRST, GPIO_SRST, GPIO_SRST);
}
- if (ERROR_OK != versaloon_interface.adaptors.peripheral_commit())
+ if (versaloon_interface.adaptors.peripheral_commit() != ERROR_OK)
return ERROR_FAIL;
vsllink_reset(0, 0);
return ERROR_JTAG_QUEUE_FAILED;
}
- if (pending_scan_result->buffer != NULL)
- free(pending_scan_result->buffer);
+ free(pending_scan_result->buffer);
}
}
} else {
char desc_string[256];
int retval;
- if (NULL != versaloon_interface.usb_setting.serialstring) {
+ if (versaloon_interface.usb_setting.serialstring) {
retval = libusb_get_string_descriptor_ascii(usb_device_handle,
usb_desc->iSerialNumber, (unsigned char *)desc_string,
sizeof(desc_string));
if (retval < 0)
return ERROR_FAIL;
- if (strstr(desc_string, "Versaloon") == NULL)
+ if (!strstr(desc_string, "Versaloon"))
return ERROR_FAIL;
return ERROR_OK;
static int vsllink_usb_open(struct vsllink *vsllink)
{
ssize_t num_devices, i;
- libusb_device **usb_devices;
+ struct libusb_device **usb_devices;
struct libusb_device_descriptor usb_desc;
struct libusb_device_handle *usb_device_handle;
int retval;
return ERROR_FAIL;
for (i = 0; i < num_devices; i++) {
- libusb_device *device = usb_devices[i];
+ struct libusb_device *device = usb_devices[i];
retval = libusb_get_device_descriptor(device, &usb_desc);
if (retval != 0)
continue;
retval = vsllink_check_usb_strings(usb_device_handle, &usb_desc);
- if (ERROR_OK == retval)
+ if (retval == ERROR_OK)
break;
libusb_close(usb_device_handle);
}
}
-static const struct command_registration vsllink_command_handlers[] = {
+static const struct command_registration vsllink_subcommand_handlers[] = {
{
- .name = "vsllink_usb_vid",
+ .name = "usb_vid",
.handler = &vsllink_handle_usb_vid_command,
.mode = COMMAND_CONFIG,
.help = "Set USB VID",
.usage = "<vid>",
},
{
- .name = "vsllink_usb_pid",
+ .name = "usb_pid",
.handler = &vsllink_handle_usb_pid_command,
.mode = COMMAND_CONFIG,
.help = "Set USB PID",
.usage = "<pid>",
},
{
- .name = "vsllink_usb_serial",
+ .name = "usb_serial",
.handler = &vsllink_handle_usb_serial_command,
.mode = COMMAND_CONFIG,
.help = "Set or disable check for USB serial",
.usage = "[<serial>]",
},
{
- .name = "vsllink_usb_bulkin",
+ .name = "usb_bulkin",
.handler = &vsllink_handle_usb_bulkin_command,
.mode = COMMAND_CONFIG,
.help = "Set USB input endpoint",
.usage = "<ep_in>",
},
{
- .name = "vsllink_usb_bulkout",
+ .name = "usb_bulkout",
.handler = &vsllink_handle_usb_bulkout_command,
.mode = COMMAND_CONFIG,
.help = "Set USB output endpoint",
.usage = "<ep_out>",
},
{
- .name = "vsllink_usb_interface",
+ .name = "usb_interface",
.handler = &vsllink_handle_usb_interface_command,
.mode = COMMAND_CONFIG,
.help = "Set USB output interface",
COMMAND_REGISTRATION_DONE
};
+static const struct command_registration vsllink_command_handlers[] = {
+ {
+ .name = "vsllink",
+ .mode = COMMAND_ANY,
+ .help = "perform vsllink management",
+ .chain = vsllink_subcommand_handlers,
+ .usage = "",
+ },
+ COMMAND_REGISTRATION_DONE
+};
+
static const char * const vsllink_transports[] = {"jtag", "swd", NULL};
static const struct swd_driver vsllink_swd_driver = {