X-Git-Url: https://git.kernel.dk/?p=fio.git;a=blobdiff_plain;f=os%2Fwindows%2Fposix.c;h=5830e4c4edab4cd7bee764873fb9aafa61de3fdf;hp=fd3d9ab38111c0ecd46f86c664b62a7ec15bb145;hb=5de1ade5a8a8dd118bdfac835a6cfb4bcf013734;hpb=33477b4b5f61c2ba57bc3346b8968d9be8b56fc4 diff --git a/os/windows/posix.c b/os/windows/posix.c index fd3d9ab3..5830e4c4 100755 --- a/os/windows/posix.c +++ b/os/windows/posix.c @@ -232,10 +232,12 @@ char *dlerror(void) /* Copied from http://blogs.msdn.com/b/joshpoley/archive/2007/12/19/date-time-formats-and-conversions.aspx */ void Time_tToSystemTime(time_t dosTime, SYSTEMTIME *systemTime) { - LARGE_INTEGER jan1970FT; - LARGE_INTEGER utcFT; - jan1970FT.QuadPart = 116444736000000000LL; // january 1st 1970 - utcFT.QuadPart = ((unsigned __int64)dosTime) * 10000000 + jan1970FT.QuadPart; + FILETIME utcFT; + LONGLONG jan1970; + + jan1970 = Int32x32To64(dosTime, 10000000) + 116444736000000000; + utcFT.dwLowDateTime = (DWORD)jan1970; + utcFT.dwHighDateTime = jan1970 >> 32; FileTimeToSystemTime((FILETIME*)&utcFT, systemTime); }