remove second ifdefs for windows timing by introducing ported version of clock_gettime
This commit is contained in:
@@ -365,15 +365,9 @@ int argmax(float* v, int n) {
|
|||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
long time_in_ms() {
|
long time_in_ms() {
|
||||||
#if defined _WIN32
|
|
||||||
// windows specific way to get time
|
|
||||||
return GetTickCount();
|
|
||||||
#else
|
|
||||||
// linux specific way to get time
|
|
||||||
struct timespec time;
|
struct timespec time;
|
||||||
clock_gettime(CLOCK_REALTIME, &time);
|
clock_gettime(CLOCK_REALTIME, &time);
|
||||||
return time.tv_sec * 1000 + time.tv_nsec / 1000000;
|
return time.tv_sec * 1000 + time.tv_nsec / 1000000;
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int main(int argc, char *argv[]) {
|
int main(int argc, char *argv[]) {
|
||||||
|
|||||||
@@ -176,3 +176,11 @@ int munlock(const void *addr, size_t len)
|
|||||||
|
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Portable clock_gettime function for Windows
|
||||||
|
int clock_gettime(int clk_id, struct timespec *tp) {
|
||||||
|
DWORD ticks = GetTickCount();
|
||||||
|
tp->tv_sec = ticks / 1000;
|
||||||
|
tp->tv_nsec = (ticks % 1000) * 1000000;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|||||||
@@ -3,6 +3,7 @@
|
|||||||
|
|
||||||
#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers
|
#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers
|
||||||
#include <windows.h>
|
#include <windows.h>
|
||||||
|
#include <time.h>
|
||||||
|
|
||||||
|
|
||||||
// Below code is originally from mman-win32
|
// Below code is originally from mman-win32
|
||||||
@@ -47,12 +48,16 @@ extern "C" {
|
|||||||
#define MS_SYNC 2
|
#define MS_SYNC 2
|
||||||
#define MS_INVALIDATE 4
|
#define MS_INVALIDATE 4
|
||||||
|
|
||||||
|
/* Flags for portable clock_gettime call. */
|
||||||
|
#define CLOCK_REALTIME 0
|
||||||
|
|
||||||
void* mmap(void *addr, size_t len, int prot, int flags, int fildes, off_t off);
|
void* mmap(void *addr, size_t len, int prot, int flags, int fildes, off_t off);
|
||||||
int munmap(void *addr, size_t len);
|
int munmap(void *addr, size_t len);
|
||||||
int mprotect(void *addr, size_t len, int prot);
|
int mprotect(void *addr, size_t len, int prot);
|
||||||
int msync(void *addr, size_t len, int flags);
|
int msync(void *addr, size_t len, int flags);
|
||||||
int mlock(const void *addr, size_t len);
|
int mlock(const void *addr, size_t len);
|
||||||
int munlock(const void *addr, size_t len);
|
int munlock(const void *addr, size_t len);
|
||||||
|
int clock_gettime(int clk_id, struct timespec *tp);
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user