diff --git a/include/util/time.h b/include/util/time.h index 287698dec..76ec2d7f1 100644 --- a/include/util/time.h +++ b/include/util/time.h @@ -13,6 +13,11 @@ uint32_t get_current_time_msec(void); */ int64_t timespec_to_msec(const struct timespec *a); +/** + * Convert a timespec to nanoseconds. + */ +int64_t timespec_to_nsec(const struct timespec *t); + /** * Convert nanoseconds to a timespec. */ diff --git a/util/time.c b/util/time.c index 06e42b40d..e3a4590ad 100644 --- a/util/time.c +++ b/util/time.c @@ -10,6 +10,10 @@ int64_t timespec_to_msec(const struct timespec *a) { return (int64_t)a->tv_sec * 1000 + a->tv_nsec / 1000000; } +int64_t timespec_to_nsec(const struct timespec *t) { + return (int64_t)t->tv_sec * NSEC_PER_SEC + t->tv_nsec; +} + void timespec_from_nsec(struct timespec *r, int64_t nsec) { r->tv_sec = nsec / NSEC_PER_SEC; r->tv_nsec = nsec % NSEC_PER_SEC;