mirror of
				https://github.com/saitohirga/WSJT-X.git
				synced 2025-10-31 04:50:34 -04:00 
			
		
		
		
	git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/map65@626 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
		
			
				
	
	
		
			75 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			75 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /*
 | |
|  * timeval.h    1.0 01/12/19
 | |
|  *
 | |
|  * Defines gettimeofday, timeval, etc. for Win32
 | |
|  *
 | |
|  * By Wu Yongwei
 | |
|  *
 | |
|  */
 | |
| 
 | |
| #ifndef _TIMEVAL_H
 | |
| #define _TIMEVAL_H
 | |
| 
 | |
| #ifdef _WIN32
 | |
| 
 | |
| #define WIN32_LEAN_AND_MEAN
 | |
| #include <windows.h>
 | |
| #include <time.h>
 | |
| 
 | |
| #ifndef __GNUC__
 | |
| #define EPOCHFILETIME (116444736000000000i64)
 | |
| #else
 | |
| #define EPOCHFILETIME (116444736000000000LL)
 | |
| #endif
 | |
| 
 | |
| //struct timeval {
 | |
| //    long tv_sec;        /* seconds */
 | |
| //    long tv_usec;  /* microseconds */
 | |
| //};
 | |
| 
 | |
| struct timezone {
 | |
|     int tz_minuteswest; /* minutes W of Greenwich */
 | |
|     int tz_dsttime;     /* type of dst correction */
 | |
| };
 | |
| 
 | |
| __inline int gettimeofday(struct timeval *tv, struct timezone *tz)
 | |
| {
 | |
|     FILETIME        ft;
 | |
|     LARGE_INTEGER   li;
 | |
|     __int64         t;
 | |
|     static int      tzflag;
 | |
| 
 | |
|     if (tv)
 | |
|     {
 | |
|         GetSystemTimeAsFileTime(&ft);
 | |
|         li.LowPart  = ft.dwLowDateTime;
 | |
|         li.HighPart = ft.dwHighDateTime;
 | |
|         t  = li.QuadPart;       /* In 100-nanosecond intervals */
 | |
|         t -= EPOCHFILETIME;     /* Offset to the Epoch time */
 | |
|         t /= 10;                /* In microseconds */
 | |
|         tv->tv_sec  = (long)(t / 1000000);
 | |
|         tv->tv_usec = (long)(t % 1000000);
 | |
|     }
 | |
| 
 | |
|     if (tz)
 | |
|     {
 | |
|         if (!tzflag)
 | |
|         {
 | |
|             _tzset();
 | |
|             tzflag++;
 | |
|         }
 | |
|         tz->tz_minuteswest = _timezone / 60;
 | |
|         tz->tz_dsttime = _daylight;
 | |
|     }
 | |
| 
 | |
|     return 0;
 | |
| }
 | |
| 
 | |
| #else  /* _WIN32 */
 | |
| 
 | |
| #include <sys/time.h>
 | |
| 
 | |
| #endif /* _WIN32 */
 | |
| 
 | |
| #endif /* _TIMEVAL_H */
 |