diff --git a/util.c b/util.c index 61591dcd..c012ba2e 100644 --- a/util.c +++ b/util.c @@ -908,6 +908,12 @@ void us_to_timeval(struct timeval *val, int64_t us) val->tv_usec = us - (val->tv_sec * 1000000); } +void us_to_timespec(struct timespec *spec, int64_t us) +{ + spec->tv_sec = us / 1000000; + spec->tv_nsec = (us - (spec->tv_sec * 1000000)) * 1000; +} + /* Returns the microseconds difference between end and start times as a double */ double us_tdiff(struct timeval *end, struct timeval *start) { diff --git a/util.h b/util.h index 3cc7ffed..a3d81639 100644 --- a/util.h +++ b/util.h @@ -81,6 +81,7 @@ void copy_time(struct timeval *dest, const struct timeval *src); void timespec_to_val(struct timeval *val, const struct timespec *spec); void timeval_to_spec(struct timespec *spec, const struct timeval *val); void us_to_timeval(struct timeval *val, int64_t us); +void us_to_timespec(struct timespec *spec, int64_t us); double us_tdiff(struct timeval *end, struct timeval *start); double tdiff(struct timeval *end, struct timeval *start); bool stratum_send(struct pool *pool, char *s, ssize_t len);