diff options
Diffstat (limited to 'fluent-bit/lib/librdkafka-2.1.0/win32/wintime.h')
-rw-r--r-- | fluent-bit/lib/librdkafka-2.1.0/win32/wintime.h | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/fluent-bit/lib/librdkafka-2.1.0/win32/wintime.h b/fluent-bit/lib/librdkafka-2.1.0/win32/wintime.h new file mode 100644 index 00000000..07f55b8b --- /dev/null +++ b/fluent-bit/lib/librdkafka-2.1.0/win32/wintime.h @@ -0,0 +1,33 @@ +/** + * Copyright: public domain + */ +#pragma once + +/** + * gettimeofday() for Win32 from + * http://stackoverflow.com/questions/10905892/equivalent-of-gettimeday-for-windows + */ +#define WIN32_LEAN_AND_MEAN +#include <windows.h> +#include <stdint.h> // portable: uint64_t MSVC: __int64 + +static int gettimeofday(struct timeval *tp, struct timezone *tzp) { + // Note: some broken versions only have 8 trailing zero's, the correct + // epoch has 9 trailing zero's This magic number is the number of 100 + // nanosecond intervals since January 1, 1601 (UTC) until 00:00:00 + // January 1, 1970 + static const uint64_t EPOCH = ((uint64_t)116444736000000000ULL); + + SYSTEMTIME system_time; + FILETIME file_time; + uint64_t time; + + GetSystemTime(&system_time); + SystemTimeToFileTime(&system_time, &file_time); + time = ((uint64_t)file_time.dwLowDateTime); + time += ((uint64_t)file_time.dwHighDateTime) << 32; + + tp->tv_sec = (long)((time - EPOCH) / 10000000L); + tp->tv_usec = (long)(system_time.wMilliseconds * 1000); + return 0; +} |