util: Add msec variants for time-related functions

Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
This commit is contained in:
Lucas De Marchi 2022-06-03 14:50:44 -07:00
parent 5622f1dae1
commit ba105fafed
2 changed files with 20 additions and 0 deletions

View File

@ -466,6 +466,12 @@ unsigned long long ts_usec(const struct timespec *ts)
(unsigned long long) ts->tv_nsec / NSEC_PER_USEC;
}
unsigned long long ts_msec(const struct timespec *ts)
{
return (unsigned long long) ts->tv_sec * MSEC_PER_SEC +
(unsigned long long) ts->tv_nsec / NSEC_PER_MSEC;
}
unsigned long long now_usec(void)
{
struct timespec ts;
@ -476,6 +482,16 @@ unsigned long long now_usec(void)
return ts_usec(&ts);
}
unsigned long long now_msec(void)
{
struct timespec ts;
if (clock_gettime(CLOCK_MONOTONIC, &ts) != 0)
return 0;
return ts_msec(&ts);
}
unsigned long long stat_mstamp(const struct stat *st)
{
#ifdef HAVE_STRUCT_STAT_ST_MTIM

View File

@ -48,9 +48,13 @@ unsigned long long stat_mstamp(const struct stat *st);
* ************************************************************************ */
#define USEC_PER_SEC 1000000ULL
#define USEC_PER_MSEC 1000ULL
#define MSEC_PER_SEC 1000ULL
#define NSEC_PER_MSEC 1000000ULL
unsigned long long ts_usec(const struct timespec *ts);
unsigned long long ts_msec(const struct timespec *ts);
unsigned long long now_usec(void);
unsigned long long now_msec(void);
/* endianess and alignments */
/* ************************************************************************ */