blob: b8986be57345a9856a6c5fde59ddb9472b3878e5 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
#include <time.h>
#include <sys/timex.h>
int adjtime (const struct timeval *itv, struct timeval *otv) {
struct timex tmp;
if (itv) {
tmp.offset = (itv->tv_usec % 1000000L) + (itv->tv_sec + itv->tv_usec / 1000000L) * 1000000L;
tmp.modes = ADJ_OFFSET_SINGLESHOT;
} else
tmp.modes = 0;
if (adjtimex(&tmp)==-1)
return -1;
if (otv) {
otv->tv_usec = tmp.offset % 1000000;
otv->tv_sec = tmp.offset / 1000000;
}
return 0;
}
|