summaryrefslogtreecommitdiffstats
path: root/mdk-stage1/dietlibc/lib/adjtime.c
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;
}