From ad4cdf88107903138b6d0cf572bf9bd7554762b9 Mon Sep 17 00:00:00 2001 From: Vic Lee Date: Thu, 11 Jun 2015 15:11:19 +0800 Subject: [PATCH] winpr: add high-precision GetTickCountPrecise for Windows. --- winpr/include/winpr/sysinfo.h | 2 ++ winpr/libwinpr/sysinfo/sysinfo.c | 15 +++++++++++++++ 2 files changed, 17 insertions(+) diff --git a/winpr/include/winpr/sysinfo.h b/winpr/include/winpr/sysinfo.h index 120009a..a72297f 100644 --- a/winpr/include/winpr/sysinfo.h +++ b/winpr/include/winpr/sysinfo.h @@ -295,6 +295,8 @@ WINPR_API ULONGLONG GetTickCount64(void); #endif +WINPR_API DWORD GetTickCountPrecise(void); + WINPR_API BOOL IsProcessorFeaturePresentEx(DWORD ProcessorFeature); /* extended flags */ diff --git a/winpr/libwinpr/sysinfo/sysinfo.c b/winpr/libwinpr/sysinfo/sysinfo.c index 1aa7d87..8c7234b 100644 --- a/winpr/libwinpr/sysinfo/sysinfo.c +++ b/winpr/libwinpr/sysinfo/sysinfo.c @@ -678,6 +678,21 @@ BOOL IsProcessorFeaturePresent(DWORD ProcessorFeature) #endif //_WIN32 +DWORD GetTickCountPrecise(void) +{ +#ifdef _WIN32 + LARGE_INTEGER freq; + LARGE_INTEGER current; + + QueryPerformanceFrequency(&freq); + QueryPerformanceCounter(¤t); + + return (DWORD) (current.QuadPart * 1000LL / freq.QuadPart); +#else + return GetTickCount(); +#endif +} + BOOL IsProcessorFeaturePresentEx(DWORD ProcessorFeature) { BOOL ret = FALSE; -- 2.7.4