/* htop - freebsd/Platform.c (C) 2014 Hisham H. Muhammad Released under the GNU GPL, see the COPYING file in the source distribution for its full text. */ #include "Platform.h" #include "Meter.h" #include "CPUMeter.h" #include "MemoryMeter.h" #include "SwapMeter.h" #include "TasksMeter.h" #include "LoadAverageMeter.h" #include "UptimeMeter.h" #include "ClockMeter.h" #include "HostnameMeter.h" #include "FreeBSDProcess.h" #include #include #include #include #include #include /*{ #include "Action.h" #include "BatteryMeter.h" extern ProcessFieldData Process_fields[]; }*/ ProcessField Platform_defaultFields[] = { PID, USER, PRIORITY, NICE, M_SIZE, M_RESIDENT, STATE, PERCENT_CPU, PERCENT_MEM, TIME, COMM, 0 }; int Platform_numberOfFields = LAST_PROCESSFIELD; void Platform_setBindings(Htop_Action* keys) { (void) keys; } MeterClass* Platform_meterTypes[] = { &CPUMeter_class, &ClockMeter_class, &LoadAverageMeter_class, &LoadMeter_class, &MemoryMeter_class, &SwapMeter_class, &TasksMeter_class, &UptimeMeter_class, &BatteryMeter_class, &HostnameMeter_class, &AllCPUsMeter_class, &AllCPUs2Meter_class, &LeftCPUsMeter_class, &RightCPUsMeter_class, &LeftCPUs2Meter_class, &RightCPUs2Meter_class, &BlankMeter_class, 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); } void Platform_getLoadAverage(double* one, double* five, double* fifteen) { struct loadavg loadAverage; int mib[2] = { CTL_VM, VM_LOADAVG }; size_t size = sizeof(loadAverage); int err = sysctl(mib, 2, &loadAverage, &size, NULL, 0); if (err) { *one = 0; *five = 0; *fifteen = 0; return; } *one = (double) loadAverage.ldavg[0] / loadAverage.fscale; *five = (double) loadAverage.ldavg[1] / loadAverage.fscale; *fifteen = (double) loadAverage.ldavg[2] / loadAverage.fscale; } int Platform_getMaxPid() { int maxPid; size_t size = sizeof(maxPid); int err = sysctlbyname("kern.pid_max", &maxPid, &size, NULL, 0); if (err) { return 99999; } return maxPid; } double Platform_setCPUValues(Meter* this, int cpu) { // TODO } void Platform_setMemoryValues(Meter* this) { // TODO } void Platform_setSwapValues(Meter* this) { // TODO } void Platform_setTasksValues(Meter* this) { // TODO }