You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
32 lines
1.1 KiB
32 lines
1.1 KiB
#define WIN32_LEAN_AND_MEAN
|
|
//#include "ngspice/ngspice.h"
|
|
#include <Windows.h>
|
|
#include <winsock2.h>
|
|
#include <stdint.h> // portable: uint64_t MSVC: __int64
|
|
|
|
/*/ MSVC defines this in winsock2.h!?
|
|
typedef struct timeval {
|
|
long tv_sec;
|
|
long tv_usec;
|
|
} timeval;
|
|
*/
|
|
int gettimeofday(struct timeval * tp, void * unused)
|
|
{
|
|
// 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;
|
|
}
|