summaryrefslogtreecommitdiff
path: root/plugins/SecureIM/src/gettime.cpp
blob: 04bcef35f7d4c5ee40cd962ddc27b6bbc052e562 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include "commonheaders.h"


/* FILETIME unit is 100 nanoseconds */
const static long div_100_nsec = 10000000;

/* POSIX or Unix Epoch (1-Jan-1970 00:00) in FILETIME units */
const static ULONGLONG ix_epoch = 116444736000000000;

uint32_t gettime(void)
{
	ULONGLONG diff_100_nsec;
	union
	{
		FILETIME	f;
		ULARGE_INTEGER	u;
	} now;

	GetSystemTimeAsFileTime(&now.f);

	diff_100_nsec = now.u.QuadPart - ix_epoch;

	return (uint32_t)(diff_100_nsec / div_100_nsec);
}