Initial commit to Gerrit
[profile/ivi/ntp.git] / ports / winnt / libntp / SetSystemTime.c
1
2 #include "clockstuff.h"
3 #include "ntp_stdlib.h"
4
5 const char *    set_tod_using = "SetSystemTime";
6
7 int
8 ntp_set_tod(
9         struct timeval *tv,
10         void *tzp
11         )
12 {
13         SYSTEMTIME st;
14         struct tm *gmtm;
15         const time_t x = tv->tv_sec;
16         long y = tv->tv_usec;
17         (void) tzp;
18
19         gmtm = gmtime(&x);
20         st.wSecond              = (WORD) gmtm->tm_sec;
21         st.wMinute              = (WORD) gmtm->tm_min;
22         st.wHour                = (WORD) gmtm->tm_hour;
23         st.wDay                 = (WORD) gmtm->tm_mday;
24         st.wMonth               = (WORD) (gmtm->tm_mon  + 1);
25         st.wYear                = (WORD) (gmtm->tm_year + 1900);
26         st.wDayOfWeek           = (WORD) gmtm->tm_wday;
27         st.wMilliseconds        = (WORD) (y / 1000);
28
29         if (!SetSystemTime(&st)) {
30                 msyslog(LOG_ERR, "SetSystemTime failed: %m\n");
31                 return -1;
32         }
33         return 0;
34 }