Simplify handle_sleep_command:
- Use new parse_ulong to ensure duration parses as a valid number. - Rework logic to improve readability and seliminate uperfluous braces. - Change whitespace to improve style. git-svn-id: svn://svn.berlios.de/openocd/trunk@2207 b42882b7-edfa-0310-969c-e2dbd0fdcd60
This commit is contained in:
parent
5c123481a1
commit
5af1bdcff4
|
@ -757,38 +757,36 @@ int command_context_mode(command_context_t *cmd_ctx, enum command_mode mode)
|
||||||
/* sleep command sleeps for <n> miliseconds
|
/* sleep command sleeps for <n> miliseconds
|
||||||
* this is useful in target startup scripts
|
* this is useful in target startup scripts
|
||||||
*/
|
*/
|
||||||
int handle_sleep_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
|
int handle_sleep_command(struct command_context_s *cmd_ctx,
|
||||||
|
char *cmd, char **args, int argc)
|
||||||
{
|
{
|
||||||
unsigned long duration = 0;
|
bool busy = false;
|
||||||
int busy = 0;
|
if (argc == 2)
|
||||||
|
|
||||||
if (argc==1)
|
|
||||||
{
|
|
||||||
|
|
||||||
} else if (argc==2)
|
|
||||||
{
|
|
||||||
if (strcmp(args[1], "busy")!=0)
|
|
||||||
return ERROR_COMMAND_SYNTAX_ERROR;
|
|
||||||
busy = 1;
|
|
||||||
} else
|
|
||||||
{
|
{
|
||||||
|
if (strcmp(args[1], "busy") == 0)
|
||||||
|
busy = true;
|
||||||
|
else
|
||||||
return ERROR_COMMAND_SYNTAX_ERROR;
|
return ERROR_COMMAND_SYNTAX_ERROR;
|
||||||
}
|
}
|
||||||
|
else if (argc < 1 || argc > 2)
|
||||||
|
return ERROR_COMMAND_SYNTAX_ERROR;
|
||||||
|
|
||||||
duration = strtoul(args[0], NULL, 0);
|
unsigned long duration = 0;
|
||||||
|
int retval = parse_ulong(args[0], &duration);
|
||||||
|
if (ERROR_OK != retval)
|
||||||
|
return retval;
|
||||||
|
|
||||||
if (busy)
|
if (!busy)
|
||||||
{
|
{
|
||||||
busy_sleep(duration);
|
long long then = timeval_ms();
|
||||||
} else
|
while (timeval_ms() - then < (long long)duration)
|
||||||
{
|
|
||||||
long long then=timeval_ms();
|
|
||||||
while ((timeval_ms()-then)<(long long)duration)
|
|
||||||
{
|
{
|
||||||
target_call_timer_callbacks_now();
|
target_call_timer_callbacks_now();
|
||||||
usleep(1000);
|
usleep(1000);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
busy_sleep(duration);
|
||||||
|
|
||||||
return ERROR_OK;
|
return ERROR_OK;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue