summaryrefslogtreecommitdiff
path: root/src/base/myTimer.c
diff options
context:
space:
mode:
authorscarab <scarab@0ee4d065-81f0-4d1e-b06c-ff20ad07cc3e>2008-07-24 21:52:47 +0000
committerscarab <scarab@0ee4d065-81f0-4d1e-b06c-ff20ad07cc3e>2008-07-24 21:52:47 +0000
commit1cbcfe088fd1cb54a1e562a0ef872cf4b9c6e64c (patch)
treeb41060a58c0395aee1026f8a958e0590ccd020b0 /src/base/myTimer.c
parent5db4fc63dc273e8a4a57f63de3f73e43c2751747 (diff)
- uprava udp pro fungovani na win
- pridani fuknce na ziskani precizniho casu do mytimer.c - uprava hlasek do EN git-svn-id: http://opensvn.csie.org/tuxanci_ng@162 0ee4d065-81f0-4d1e-b06c-ff20ad07cc3e
Diffstat (limited to 'src/base/myTimer.c')
-rw-r--r--src/base/myTimer.c38
1 files changed, 38 insertions, 0 deletions
diff --git a/src/base/myTimer.c b/src/base/myTimer.c
index 7bfb91a..114f9d7 100644
--- a/src/base/myTimer.c
+++ b/src/base/myTimer.c
@@ -14,6 +14,44 @@
#include "interface.h"
#endif
+#ifdef __WIN32__
+#include <windows.h>
+#include <time.h>
+#define DELTA_EPOCH_IN_MICROSECS 11644473600000000ULL
+struct timezone
+{
+ int tz_minuteswest;
+ int tz_dsttime;
+};
+
+int gettimeofday(struct timeval *tv, struct timezone *tz)
+{
+ FILETIME ft;
+ unsigned __int64 tmpres = 0;
+ static int tzflag;
+ if (NULL != tv) {
+ GetSystemTimeAsFileTime(&ft);
+ tmpres |= ft.dwHighDateTime;
+ tmpres <<= 32;
+ tmpres |= ft.dwLowDateTime;
+ /*converting file time to unix epoch*/
+ tmpres /= 10; /*convert into microseconds*/
+ tmpres -= DELTA_EPOCH_IN_MICROSECS;
+ tv->tv_sec = (long)(tmpres / 1000000UL);
+ tv->tv_usec = (long)(tmpres % 1000000UL);
+ }
+ if (NULL != tz) {
+ if (!tzflag) {
+ _tzset();
+ tzflag++;
+ }
+ tz->tz_minuteswest = _timezone / 60;
+ tz->tz_dsttime = _daylight;
+ }
+ return 0;
+}
+#endif
+
static struct timeval start = { .tv_sec = 0, .tv_usec = 0 };
list_t* newTimer()