diff options
author | Christopher Faylor <me@cgf.cx> | 2001-02-27 01:36:09 +0300 |
---|---|---|
committer | Christopher Faylor <me@cgf.cx> | 2001-02-27 01:36:09 +0300 |
commit | 5b331f1ef18682349a65af219c987fe827246531 (patch) | |
tree | 7ab2e3b9cfbebee9ce77828be4fea1626294f03d /winsup/cygwin | |
parent | 88429768bb3cc21d871e912cde3efaf92eec8213 (diff) |
* times.cc (settimeofday): Replace function stub with working code.
Diffstat (limited to 'winsup/cygwin')
-rw-r--r-- | winsup/cygwin/ChangeLog | 4 | ||||
-rw-r--r-- | winsup/cygwin/times.cc | 26 |
2 files changed, 27 insertions, 3 deletions
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index 453d802a9..a7a5e5a12 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,3 +1,7 @@ +2001-02-26 Mike Simons <msimons@moria.simons-clan.com> + + * times.cc (settimeofday): Replace function stub with working code. + Mon Feb 26 10:42:00 2001 Corinna Vinschen <corinna@vinschen.de> * strace.cc (strace::vprntf): Move prntf functionality to this function diff --git a/winsup/cygwin/times.cc b/winsup/cygwin/times.cc index 790291248..0681b4064 100644 --- a/winsup/cygwin/times.cc +++ b/winsup/cygwin/times.cc @@ -17,6 +17,7 @@ details. */ #include <stdlib.h> #include <errno.h> #include "cygerrno.h" +#include "perprocess.h" #include "fhandler.h" #include "path.h" #include "sync.h" @@ -92,10 +93,29 @@ _times (struct tms * buf) /* settimeofday: BSD */ extern "C" int -settimeofday (const struct timeval *, const struct timezone *) +settimeofday (const struct timeval *tv, const struct timezone *tz) { - set_errno (ENOSYS); - return -1; + SYSTEMTIME st; + struct tm *ptm; + int res; + + tz = tz; /* silence warning about unused variable */ + + ptm = gmtime(&tv->tv_sec); + st.wYear = ptm->tm_year + 1900; + st.wMonth = ptm->tm_mon + 1; + st.wDayOfWeek = ptm->tm_wday; + st.wDay = ptm->tm_mday; + st.wHour = ptm->tm_hour; + st.wMinute = ptm->tm_min; + st.wSecond = ptm->tm_sec; + st.wMilliseconds = tv->tv_usec / 1000; + + res = !SetSystemTime(&st); + + syscall_printf ("%d = settimeofday (%x, %x)", res, tv, tz); + + return res; } /* timezone: standards? */ |