diff options
Diffstat (limited to 'src/utils.c')
-rw-r--r-- | src/utils.c | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/src/utils.c b/src/utils.c new file mode 100644 index 0000000..8505b63 --- /dev/null +++ b/src/utils.c @@ -0,0 +1,35 @@ +#include "utils.h" + +#include <stdlib.h> +#include <sys/time.h> + +struct timespec *timespec_add_ms(struct timespec *ts, int timeout_ms) +{ + long long nsec; + + if (!ts) { + return NULL; + } + + nsec = ts->tv_nsec + timeout_ms * 1000000LL; + ts->tv_sec += nsec / 1000000000LL; + ts->tv_nsec = nsec % 1000000000LL; + + return ts; +} + +struct timespec *gettimespec(struct timespec *ts) +{ + struct timeval tv; + + if (!ts) { + return NULL; + } + + gettimeofday(&tv, NULL); + ts->tv_sec = tv.tv_sec; + ts->tv_nsec = tv.tv_usec * 1000L; + + return ts; +} + |