1#include "uptime.h"
2#include "common/time.h"
3
4#include <utmpx.h>
5
6const char* ffDetectUptime(FFUptimeResult* result) {
7 struct utmpx* ut;
8
9 setutxent();
10 while (nullptr != (ut = getutxent())) {
11 if (ut->ut_type == BOOT_TIME) {
12 result->bootTime = (uint64_t) ut->ut_tv.tv_sec * 1000 + (uint64_t) ut->ut_tv.tv_usec / 1000000;
13 result->uptime = ffTimeGetNow() - result->bootTime;
14 break;
15 }
16 }
17 endutxent();
18 return nullptr;
19}