From: Stephan Bosch Date: Thu, 13 Dec 2018 08:53:18 +0000 (+0100) Subject: lib: time-util: Add timeval_add_usecs() and timeval_sub_usecs(). X-Git-Tag: 2.3.9~424 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=df1f968fb61c0bb33305b435bc6f7d6838269e9d;p=thirdparty%2Fdovecot%2Fcore.git lib: time-util: Add timeval_add_usecs() and timeval_sub_usecs(). --- diff --git a/src/lib/time-util.h b/src/lib/time-util.h index 019da2aae4..f86fa1b730 100644 --- a/src/lib/time-util.h +++ b/src/lib/time-util.h @@ -14,6 +14,28 @@ int timeval_diff_msecs(const struct timeval *tv1, const struct timeval *tv2); long long timeval_diff_usecs(const struct timeval *tv1, const struct timeval *tv2); +static inline void +timeval_add_usecs(struct timeval *tv, long long usecs) +{ + tv->tv_sec += usecs / 1000000; + tv->tv_usec += (usecs % 1000000); + if (tv->tv_usec >= 1000000) { + tv->tv_sec++; + tv->tv_usec -= 1000000; + } +} + +static inline void +timeval_sub_usecs(struct timeval *tv, long long usecs) +{ + tv->tv_sec -= usecs / 1000000; + tv->tv_usec -= (usecs % 1000000); + if (tv->tv_usec < 0) { + tv->tv_sec--; + tv->tv_usec += 1000000; + } +} + static inline void timeval_add_msecs(struct timeval *tv, unsigned int msecs) {