Xinqi Bao's Git
projects
/
slstatus.git
/ blobdiff
summary
|
log
|
commit
|
diff
|
tree
raw
|
inline
| side by side
Add FreeBSD support for netspeeds, entropy and ip components
[slstatus.git]
/
components
/
uptime.c
diff --git
a/components/uptime.c
b/components/uptime.c
index
f957f17
..
7c23c98
100644
(file)
--- a/
components/uptime.c
+++ b/
components/uptime.c
@@
-1,23
+1,33
@@
/* See LICENSE file for copyright and license details. */
/* See LICENSE file for copyright and license details. */
-#include <
inttypes
.h>
+#include <
stdint
.h>
#include <stdio.h>
#include <time.h>
#include "../util.h"
#include <stdio.h>
#include <time.h>
#include "../util.h"
+#if defined(CLOCK_BOOTTIME)
+ #define UPTIME_FLAG CLOCK_BOOTTIME
+#elif defined(CLOCK_UPTIME)
+ #define UPTIME_FLAG CLOCK_UPTIME
+#else
+ #define UPTIME_FLAG CLOCK_MONOTONIC
+#endif
+
const char *
uptime(void)
{
const char *
uptime(void)
{
- uint64_t h, m;
+ char warn_buf[256];
+ uintmax_t h, m;
struct timespec uptime;
struct timespec uptime;
- if (clock_gettime(CLOCK_BOOTTIME, &uptime) < 0) {
- warn("clock_gettime 'CLOCK_BOOTTIME'");
+ if (clock_gettime(UPTIME_FLAG, &uptime) < 0) {
+ snprintf(warn_buf, 256, "clock_gettime %d", UPTIME_FLAG);
+ warn(warn_buf);
return NULL;
}
h = uptime.tv_sec / 3600;
m = uptime.tv_sec % 3600 / 60;
return NULL;
}
h = uptime.tv_sec / 3600;
m = uptime.tv_sec % 3600 / 60;
- return bprintf("%
" PRIu64 "h %" PRIu64 "
m", h, m);
+ return bprintf("%
juh %ju
m", h, m);
}
}