blob: c4069ff65dd07c455ef2853b0089a9daa20f31be (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
/* See LICENSE file for copyright and license details. */
#include "libsimple.h"
int
libsimple_timespec2timeval(struct timeval *restrict tv, const struct timespec *restrict ts)
{
tv->tv_sec = ts->tv_sec;
tv->tv_usec = ts->tv_nsec / 1000L;
if ((ts->tv_nsec % 1000L) >= 500L) {
if (++(tv->tv_usec) == 1000000L) {
tv->tv_usec = 0;
if (tv->tv_sec == TIME_MAX) {
tv->tv_usec = 999999L;
errno = EOVERFLOW;
return -1;
} else {
tv->tv_sec += 1;
}
}
}
return 0;
}
|