aboutsummaryrefslogtreecommitdiff
path: root/fixtest/hiclock.c
diff options
context:
space:
mode:
Diffstat (limited to 'fixtest/hiclock.c')
-rw-r--r--fixtest/hiclock.c25
1 files changed, 25 insertions, 0 deletions
diff --git a/fixtest/hiclock.c b/fixtest/hiclock.c
new file mode 100644
index 0000000..94ed735
--- /dev/null
+++ b/fixtest/hiclock.c
@@ -0,0 +1,25 @@
+#include "hiclock.h"
+
+#if defined(__WIN32) || defined(__WIN64)
+LONGLONG HICLOCKS_PER_SEC = 0;
+
+void hiclock_init() {
+ LARGE_INTEGER freq;
+ QueryPerformanceFrequency(&freq);
+ HICLOCKS_PER_SEC = freq.QuadPart;
+}
+#endif
+
+hiclock_t hiclock() {
+ #if defined(__unix__)
+ 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
+}