diff --git a/include/util/time.h b/include/util/time.h index 890fe55f..09a1f68e 100644 --- a/include/util/time.h +++ b/include/util/time.h @@ -13,6 +13,11 @@ int64_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 *a); + /** * Convert nanoseconds to a timespec. */ diff --git a/util/time.c b/util/time.c index c561d23a..78faac56 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 *a) { + return (int64_t)a->tv_sec * NSEC_PER_SEC + a->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;