2011-02-24 17:23:50 +01:00
|
|
|
#include "hiclock.h"
|
2021-04-19 10:46:15 +02:00
|
|
|
#include <stddef.h>
|
2011-02-24 17:23:50 +01:00
|
|
|
|
|
|
|
#if defined(__WIN32) || defined(__WIN64)
|
|
|
|
LONGLONG HICLOCKS_PER_SEC = 0;
|
|
|
|
|
2021-04-19 10:46:15 +02:00
|
|
|
void hiclock_init()
|
|
|
|
{
|
|
|
|
LARGE_INTEGER freq;
|
|
|
|
QueryPerformanceFrequency(&freq);
|
|
|
|
HICLOCKS_PER_SEC = freq.QuadPart;
|
2011-02-24 17:23:50 +01:00
|
|
|
}
|
|
|
|
#endif
|
|
|
|
|
2021-04-19 10:46:15 +02:00
|
|
|
hiclock_t hiclock()
|
|
|
|
{
|
|
|
|
#if defined(__unix__)
|
|
|
|
struct timeval clocks;
|
|
|
|
gettimeofday(&clocks, NULL);
|
|
|
|
return ((uint64_t)clocks.tv_sec * 1000000ULL) + clocks.tv_usec;
|
|
|
|
#elif defined(__WIN32) || defined(__WIN64)
|
|
|
|
LARGE_INTEGER clocks;
|
|
|
|
QueryPerformanceCounter(&clocks);
|
|
|
|
return clocks.QuadPart;
|
|
|
|
#else
|
|
|
|
return clock();
|
|
|
|
#endif
|
2011-02-24 17:23:50 +01:00
|
|
|
}
|