[dpdk-dev] [PATCH v16 4/9] eal/Windows: add clock_gettime on Windows
From: Jie Zhou <hidden>
Date: 2021-06-29 20:50:52
Subsystem:
library code, the rest · Maintainers:
Andrew Morton, Linus Torvalds
From: Jie Zhou <hidden>
Date: 2021-06-29 20:50:52
Subsystem:
library code, the rest · Maintainers:
Andrew Morton, Linus Torvalds
Add clock_gettime on Windows in rte_os_shim.h Signed-off-by: Jie Zhou <redacted> Acked-by: Dmitry Kozlyuk <redacted> --- lib/eal/windows/include/rte_os_shim.h | 33 +++++++++++++++++++++++++++ 1 file changed, 33 insertions(+)
diff --git a/lib/eal/windows/include/rte_os_shim.h b/lib/eal/windows/include/rte_os_shim.h
index 824d9748ba..33619745ab 100644
--- a/lib/eal/windows/include/rte_os_shim.h
+++ b/lib/eal/windows/include/rte_os_shim.h@@ -77,4 +77,37 @@ rte_timespec_get(struct timespec *now, int base) #endif /* RTE_TOOLCHAIN_GCC */ +/* Identifier for system-wide realtime clock. */ +#define CLOCK_REALTIME 0 +/* Monotonic system-wide clock. */ +#define CLOCK_MONOTONIC 1 + +typedef int clockid_t; + +static inline int +rte_clock_gettime(clockid_t clock_id, struct timespec *tp) +{ + const int NS_PER_SEC = 1E9; + LARGE_INTEGER pf, pc; + LONGLONG nsec; + + switch (clock_id) { + case CLOCK_REALTIME: + if (timespec_get(tp, TIME_UTC) != TIME_UTC) + return -1; + return 0; + case CLOCK_MONOTONIC: + QueryPerformanceFrequency(&pf); + QueryPerformanceCounter(&pc); + + nsec = pc.QuadPart * NS_PER_SEC / pf.QuadPart; + tp->tv_sec = nsec / NS_PER_SEC; + tp->tv_nsec = nsec - tp->tv_sec * NS_PER_SEC; + return 0; + default: + return -1; + } +} +#define clock_gettime(clock_id, tp) rte_clock_gettime(clock_id, tp) + #endif /* _RTE_OS_SHIM_ */
--
2.31.0.vfs.0.1