summaryrefslogtreecommitdiffstats
path: root/ext/lsm1/lsm-test/lsmtest_win32.c
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--ext/lsm1/lsm-test/lsmtest_win32.c30
1 files changed, 30 insertions, 0 deletions
diff --git a/ext/lsm1/lsm-test/lsmtest_win32.c b/ext/lsm1/lsm-test/lsmtest_win32.c
new file mode 100644
index 0000000..9472723
--- /dev/null
+++ b/ext/lsm1/lsm-test/lsmtest_win32.c
@@ -0,0 +1,30 @@
+
+#include "lsmtest.h"
+
+#ifdef _WIN32
+
+#define TICKS_PER_SECOND (10000000)
+#define TICKS_PER_MICROSECOND (10)
+#define TICKS_UNIX_EPOCH (116444736000000000LL)
+
+int win32GetTimeOfDay(
+ struct timeval *tp,
+ void *tzp
+){
+ FILETIME fileTime;
+ ULONGLONG ticks;
+ ULONGLONG unixTicks;
+
+ unused_parameter(tzp);
+ memset(&fileTime, 0, sizeof(FILETIME));
+ GetSystemTimeAsFileTime(&fileTime);
+ ticks = (ULONGLONG)fileTime.dwHighDateTime << 32;
+ ticks |= (ULONGLONG)fileTime.dwLowDateTime;
+ unixTicks = ticks - TICKS_UNIX_EPOCH;
+ tp->tv_sec = (long)(unixTicks / TICKS_PER_SECOND);
+ unixTicks -= ((ULONGLONG)tp->tv_sec * TICKS_PER_SECOND);
+ tp->tv_usec = (long)(unixTicks / TICKS_PER_MICROSECOND);
+
+ return 0;
+}
+#endif