eal/windows: add clock function
Add clock_gettime() on Windows in rte_os_shim.h. Signed-off-by: Jie Zhou <jizh@linux.microsoft.com> Acked-by: Dmitry Kozlyuk <dmitry.kozliuk@gmail.com>
This commit is contained in:
parent
3d2fcb0e0a
commit
799a5b9aca
@ -77,4 +77,37 @@ rte_timespec_get(struct timespec *now, int base)
|
|||||||
|
|
||||||
#endif /* RTE_TOOLCHAIN_GCC */
|
#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_ */
|
#endif /* _RTE_OS_SHIM_ */
|
||||||
|
Loading…
x
Reference in New Issue
Block a user