target_t *get_target(const char *id)
{
target_t *target;
- char *endptr;
- int num;
/* try as tcltarget name */
for (target = all_targets; target; target = target->next) {
}
/* no match, try as number */
- num = strtoul(id, &endptr, 0);
- if (*endptr != 0)
+ unsigned num;
+ if (parse_uint(id, &num) != ERROR_OK)
return NULL;
for (target = all_targets; target; target = target->next) {
- if (target->target_number == num)
+ if (target->target_number == (int)num)
return target;
}
/* access a single register by its ordinal number */
if ((args[0][0] >= '0') && (args[0][0] <= '9'))
{
- int num = strtoul(args[0], NULL, 0);
- reg_cache_t *cache = target->reg_cache;
+ unsigned num;
+ int retval = parse_uint(args[0], &num);
+ if (ERROR_OK != retval)
+ return ERROR_COMMAND_SYNTAX_ERROR;
+ reg_cache_t *cache = target->reg_cache;
count = 0;
while(cache)
{
int i;
for (i = 0; i < cache->num_regs; i++)
{
- if (count++ == num)
+ if (count++ == (int)num)
{
reg = &cache->reg_list[i];
break;
static int handle_wait_halt_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
{
- int ms = 5000;
+ if (argc > 1)
+ return ERROR_COMMAND_SYNTAX_ERROR;
- if (argc > 0)
+ unsigned ms = 5000;
+ if (1 == argc)
{
- char *end;
-
- ms = strtoul(args[0], &end, 0) * 1000;
- if (*end)
+ int retval = parse_uint(args[0], &ms);
+ if (ERROR_OK != retval)
{
command_print(cmd_ctx, "usage: %s [seconds]", cmd);
- return ERROR_OK;
+ return ERROR_COMMAND_SYNTAX_ERROR;
}
+ // convert seconds (given) to milliseconds (needed)
+ ms *= 1000;
}
- target_t *target = get_current_target(cmd_ctx);
+ target_t *target = get_current_target(cmd_ctx);
return target_wait_state(target, TARGET_HALTED, ms);
}
static int handle_halt_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
{
- int retval;
- target_t *target = get_current_target(cmd_ctx);
-
LOG_DEBUG("-");
- if ((retval = target_halt(target)) != ERROR_OK)
- {
+ target_t *target = get_current_target(cmd_ctx);
+ int retval = target_halt(target);
+ if (ERROR_OK != retval)
return retval;
- }
if (argc == 1)
{
- int wait;
- char *end;
-
- wait = strtoul(args[0], &end, 0);
- if (!*end && !wait)
+ unsigned wait;
+ retval = parse_uint(args[0], &wait);
+ if (ERROR_OK != retval)
+ return ERROR_COMMAND_SYNTAX_ERROR;
+ if (!wait)
return ERROR_OK;
}
static void writeData(FILE *f, const void *data, size_t len)
{
- size_t written = fwrite(data, len, 1, f);
+ size_t written = fwrite(data, 1, len, f);
if (written != len)
LOG_ERROR("failed to write %zu bytes: %s", len, strerror(errno));
}