Xinqi Bao's Git
projects
/
slstatus.git
/ blobdiff
summary
|
log
|
commit
|
diff
|
tree
raw
|
inline
| side by side
battery: Remove unnecessary defines for paths
[slstatus.git]
/
components
/
uptime.c
diff --git
a/components/uptime.c
b/components/uptime.c
index
36f03b1
..
f957f17
100644
(file)
--- a/
components/uptime.c
+++ b/
components/uptime.c
@@
-1,20
+1,23
@@
/* See LICENSE file for copyright and license details. */
/* See LICENSE file for copyright and license details. */
-#ifdef __linux__
-#include <sys/sysinfo.h>
+#include <inttypes.h>
+#include <stdio.h>
+#include <time.h>
#include "../util.h"
const char *
uptime(void)
{
#include "../util.h"
const char *
uptime(void)
{
- struct sysinfo info;
- int h = 0;
- int m = 0;
+ uint64_t h, m;
+ struct timespec uptime;
- sysinfo(&info);
- h = info.uptime / 3600;
- m = (info.uptime - h * 3600 ) / 60;
+ if (clock_gettime(CLOCK_BOOTTIME, &uptime) < 0) {
+ warn("clock_gettime 'CLOCK_BOOTTIME'");
+ return NULL;
+ }
- return bprintf("%dh %dm", h, m);
+ h = uptime.tv_sec / 3600;
+ m = uptime.tv_sec % 3600 / 60;
+
+ return bprintf("%" PRIu64 "h %" PRIu64 "m", h, m);
}
}
-#endif