lib: timer: move the timer string api to lib

This api was earlier present in the daemon code but as multiple daemons
need it moving it to lib will avoid unnecessary copy-paste.

Signed-off-by: Anuradha Karuppiah <anuradhak@cumulusnetworks.com>
This commit is contained in:
Anuradha Karuppiah 2020-03-27 07:30:20 -07:00
parent 19bfb27486
commit 0447957e62
2 changed files with 34 additions and 0 deletions

View File

@ -634,6 +634,36 @@ struct timeval thread_timer_remain(struct thread *thread)
return remain;
}
static int time_hhmmss(char *buf, int buf_size, long sec)
{
long hh;
long mm;
int wr;
zassert(buf_size >= 8);
hh = sec / 3600;
sec %= 3600;
mm = sec / 60;
sec %= 60;
wr = snprintf(buf, buf_size, "%02ld:%02ld:%02ld", hh, mm, sec);
return wr != 8;
}
char *thread_timer_to_hhmmss(char *buf, int buf_size,
struct thread *t_timer)
{
if (t_timer) {
time_hhmmss(buf, buf_size,
thread_timer_remain_second(t_timer));
} else {
snprintf(buf, buf_size, "--:--:--");
}
return buf;
}
/* Get new thread. */
static struct thread *thread_get(struct thread_master *m, uint8_t type,
int (*func)(struct thread *), void *arg,

View File

@ -140,6 +140,8 @@ struct cpu_thread_history {
/* Thread yield time. */
#define THREAD_YIELD_TIME_SLOT 10 * 1000L /* 10ms */
#define THREAD_TIMER_STRLEN 12
/* Macros. */
#define THREAD_ARG(X) ((X)->arg)
#define THREAD_FD(X) ((X)->u.fd)
@ -228,6 +230,8 @@ extern unsigned long thread_consumed_time(RUSAGE_T *after, RUSAGE_T *before,
/* only for use in logging functions! */
extern pthread_key_t thread_current;
extern char *thread_timer_to_hhmmss(char *buf, int buf_size,
struct thread *t_timer);
#ifdef __cplusplus
}