mirror of
https://github.com/xzeldon/htop.git
synced 2024-12-23 22:55:46 +00:00
Add uptime calculation code.
This commit is contained in:
parent
1dd165c14b
commit
3ba3d6fa6f
@ -43,12 +43,10 @@ endif
|
||||
|
||||
if HTOP_FREEBSD
|
||||
myhtopplatsources = freebsd/Platform.c freebsd/FreeBSDProcessList.c \
|
||||
freebsd/FreeBSDCRT.c \
|
||||
freebsd/UptimeMeter.c
|
||||
freebsd/FreeBSDCRT.c
|
||||
|
||||
myhtopplatheaders = freebsd/Platform.h freebsd/FreeBSDProcessList.h \
|
||||
freebsd/FreeBSDCRT.h \
|
||||
freebsd/UptimeMeter.h
|
||||
freebsd/FreeBSDCRT.h
|
||||
endif
|
||||
|
||||
if HTOP_UNSUPPORTED
|
||||
|
@ -17,6 +17,11 @@ in the source distribution for its full text.
|
||||
#include "ClockMeter.h"
|
||||
#include "HostnameMeter.h"
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <sys/sysctl.h>
|
||||
#include <sys/time.h>
|
||||
#include <time.h>
|
||||
|
||||
/*{
|
||||
#include "Action.h"
|
||||
}*/
|
||||
@ -46,3 +51,16 @@ MeterClass* Platform_meterTypes[] = {
|
||||
NULL
|
||||
};
|
||||
|
||||
int Platform_getUptime() {
|
||||
struct timeval bootTime, currTime;
|
||||
int mib[2] = { CTL_KERN, KERN_BOOTTIME };
|
||||
size_t size = sizeof(bootTime);
|
||||
|
||||
int err = sysctl(mib, 2, &bootTime, &size, NULL, 0);
|
||||
if (err) {
|
||||
return -1;
|
||||
}
|
||||
gettimeofday(&currTime, NULL);
|
||||
|
||||
return (int) difftime(currTime.tv_sec, bootTime.tv_sec);
|
||||
}
|
||||
|
@ -15,5 +15,6 @@ void Platform_setBindings(Htop_Action* keys);
|
||||
|
||||
extern MeterClass* Platform_meterTypes[];
|
||||
|
||||
int Platform_getUptime();
|
||||
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue
Block a user