mirror of
https://github.com/GOSTSec/sgminer
synced 2025-01-10 23:08:07 +00:00
Abstract out the conversion of system time to an lldiv_t in decimicroseconds.
This commit is contained in:
parent
acc1b7df1b
commit
d8e2a43712
15
util.c
15
util.c
@ -944,18 +944,27 @@ void cgtime(struct timeval *tv)
|
|||||||
#else
|
#else
|
||||||
/* Windows start time is since 1601 lol so convert it to unix epoch 1970. */
|
/* Windows start time is since 1601 lol so convert it to unix epoch 1970. */
|
||||||
#define EPOCHFILETIME (116444736000000000LL)
|
#define EPOCHFILETIME (116444736000000000LL)
|
||||||
void cgtime(struct timeval *tv)
|
|
||||||
|
/* Return the system time as an lldiv_t in decimicroseconds. */
|
||||||
|
static void decius_time(lldiv_t *lidiv)
|
||||||
{
|
{
|
||||||
FILETIME ft;
|
FILETIME ft;
|
||||||
LARGE_INTEGER li;
|
LARGE_INTEGER li;
|
||||||
lldiv_t lidiv;
|
|
||||||
|
|
||||||
GetSystemTimeAsFileTime(&ft);
|
GetSystemTimeAsFileTime(&ft);
|
||||||
li.LowPart = ft.dwLowDateTime;
|
li.LowPart = ft.dwLowDateTime;
|
||||||
li.HighPart = ft.dwHighDateTime;
|
li.HighPart = ft.dwHighDateTime;
|
||||||
li.QuadPart -= EPOCHFILETIME;
|
li.QuadPart -= EPOCHFILETIME;
|
||||||
|
|
||||||
/* SystemTime is in decimicroseconds so divide by an unusual number */
|
/* SystemTime is in decimicroseconds so divide by an unusual number */
|
||||||
lidiv = lldiv(li.QuadPart, 10000000);
|
*lidiv = lldiv(li.QuadPart, 10000000);
|
||||||
|
}
|
||||||
|
|
||||||
|
void cgtime(struct timeval *tv)
|
||||||
|
{
|
||||||
|
lldiv_t lidiv;
|
||||||
|
|
||||||
|
decius_time(&lidiv);
|
||||||
tv->tv_sec = lidiv.quot;
|
tv->tv_sec = lidiv.quot;
|
||||||
tv->tv_usec = lidiv.rem / 10;
|
tv->tv_usec = lidiv.rem / 10;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user