Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
torvalds
GitHub Repository: torvalds/linux
Path: blob/master/tools/thermal/lib/uptimeofday.c
26285 views
1
// SPDX-License-Identifier: LGPL-2.1+
2
// Copyright (C) 2022, Linaro Ltd - Daniel Lezcano <[email protected]>
3
#include <stdio.h>
4
#include <sys/time.h>
5
#include <linux/sysinfo.h>
6
#include "thermal-tools.h"
7
8
static unsigned long __offset;
9
static struct timeval __tv;
10
11
int uptimeofday_init(void)
12
{
13
struct sysinfo info;
14
15
if (sysinfo(&info))
16
return -1;
17
18
gettimeofday(&__tv, NULL);
19
20
__offset = __tv.tv_sec - info.uptime;
21
22
return 0;
23
}
24
25
unsigned long getuptimeofday_ms(void)
26
{
27
gettimeofday(&__tv, NULL);
28
29
return ((__tv.tv_sec - __offset) * 1000) + (__tv.tv_usec / 1000);
30
}
31
32
struct timespec msec_to_timespec(int msec)
33
{
34
struct timespec tv = {
35
.tv_sec = (msec / 1000),
36
.tv_nsec = (msec % 1000) * 1000000,
37
};
38
39
return tv;
40
}
41
42