2014-11-24 20:55:49 +00:00
|
|
|
/*
|
|
|
|
htop - unsupported/Platform.c
|
|
|
|
(C) 2014 Hisham H. Muhammad
|
2015-07-12 16:26:33 +00:00
|
|
|
(C) 2015 David C. Hunt
|
2020-10-05 07:51:32 +00:00
|
|
|
Released under the GNU GPLv2, see the COPYING file
|
2014-11-24 20:55:49 +00:00
|
|
|
in the source distribution for its full text.
|
|
|
|
*/
|
|
|
|
|
2020-09-07 10:24:32 +00:00
|
|
|
#include <math.h>
|
|
|
|
|
2014-11-24 20:55:49 +00:00
|
|
|
#include "Platform.h"
|
2020-10-03 20:00:27 +00:00
|
|
|
#include "Macros.h"
|
2014-11-27 21:18:14 +00:00
|
|
|
#include "CPUMeter.h"
|
|
|
|
#include "MemoryMeter.h"
|
|
|
|
#include "SwapMeter.h"
|
|
|
|
#include "TasksMeter.h"
|
|
|
|
#include "LoadAverageMeter.h"
|
|
|
|
#include "ClockMeter.h"
|
2020-10-05 11:52:58 +00:00
|
|
|
#include "DateMeter.h"
|
|
|
|
#include "DateTimeMeter.h"
|
2014-11-27 21:18:14 +00:00
|
|
|
#include "HostnameMeter.h"
|
2014-11-27 21:41:14 +00:00
|
|
|
#include "UptimeMeter.h"
|
2014-11-24 20:55:49 +00:00
|
|
|
|
|
|
|
|
2016-08-30 12:41:17 +00:00
|
|
|
const SignalItem Platform_signals[] = {
|
2016-02-14 13:45:47 +00:00
|
|
|
{ .name = " 0 Cancel", .number = 0 },
|
|
|
|
};
|
|
|
|
|
2020-10-03 20:00:27 +00:00
|
|
|
const unsigned int Platform_numberOfSignals = ARRAYSIZE(Platform_signals);
|
2016-02-14 13:45:47 +00:00
|
|
|
|
2020-11-20 16:09:34 +00:00
|
|
|
ProcessField Platform_defaultFields[] = { PID, USER, PRIORITY, NICE, M_VIRT, M_RESIDENT, STATE, PERCENT_CPU, PERCENT_MEM, TIME, COMM, 0 };
|
2015-07-12 16:26:33 +00:00
|
|
|
|
2020-10-05 11:19:50 +00:00
|
|
|
const MeterClass* const Platform_meterTypes[] = {
|
2014-11-27 21:18:14 +00:00
|
|
|
&CPUMeter_class,
|
|
|
|
&ClockMeter_class,
|
2020-10-05 11:52:58 +00:00
|
|
|
&DateMeter_class,
|
|
|
|
&DateTimeMeter_class,
|
2014-11-27 21:18:14 +00:00
|
|
|
&LoadAverageMeter_class,
|
|
|
|
&LoadMeter_class,
|
|
|
|
&MemoryMeter_class,
|
|
|
|
&SwapMeter_class,
|
|
|
|
&TasksMeter_class,
|
|
|
|
&BatteryMeter_class,
|
|
|
|
&HostnameMeter_class,
|
2014-11-27 21:41:14 +00:00
|
|
|
&UptimeMeter_class,
|
2014-11-27 21:18:14 +00:00
|
|
|
&AllCPUsMeter_class,
|
|
|
|
&AllCPUs2Meter_class,
|
2020-09-24 19:50:29 +00:00
|
|
|
&AllCPUs4Meter_class,
|
2020-09-24 19:56:40 +00:00
|
|
|
&AllCPUs8Meter_class,
|
2014-11-27 21:18:14 +00:00
|
|
|
&LeftCPUsMeter_class,
|
|
|
|
&RightCPUsMeter_class,
|
|
|
|
&LeftCPUs2Meter_class,
|
|
|
|
&RightCPUs2Meter_class,
|
2020-09-24 19:50:29 +00:00
|
|
|
&LeftCPUs4Meter_class,
|
|
|
|
&RightCPUs4Meter_class,
|
2020-09-24 19:56:40 +00:00
|
|
|
&LeftCPUs8Meter_class,
|
|
|
|
&RightCPUs8Meter_class,
|
2014-11-27 21:18:14 +00:00
|
|
|
&BlankMeter_class,
|
|
|
|
NULL
|
|
|
|
};
|
|
|
|
|
2015-07-12 16:26:33 +00:00
|
|
|
int Platform_numberOfFields = 100;
|
2016-02-14 13:45:47 +00:00
|
|
|
|
|
|
|
ProcessPidColumn Process_pidColumns[] = {
|
|
|
|
{ .id = 0, .label = NULL },
|
|
|
|
};
|
2015-07-12 16:26:33 +00:00
|
|
|
|
2020-11-19 01:32:07 +00:00
|
|
|
void Platform_init(void) {
|
|
|
|
/* no platform-specific setup needed */
|
|
|
|
}
|
|
|
|
|
|
|
|
void Platform_done(void) {
|
|
|
|
/* no platform-specific cleanup needed */
|
|
|
|
}
|
|
|
|
|
|
|
|
void Platform_setBindings(Htop_Action* keys) {
|
|
|
|
/* no platform-specific key bindings */
|
|
|
|
(void) keys;
|
|
|
|
}
|
|
|
|
|
2014-11-27 21:41:14 +00:00
|
|
|
int Platform_getUptime() {
|
2015-07-12 16:26:33 +00:00
|
|
|
return 0;
|
2014-11-27 21:41:14 +00:00
|
|
|
}
|
2014-11-27 21:57:24 +00:00
|
|
|
|
|
|
|
void Platform_getLoadAverage(double* one, double* five, double* fifteen) {
|
|
|
|
*one = 0;
|
|
|
|
*five = 0;
|
|
|
|
*fifteen = 0;
|
|
|
|
}
|
2014-11-27 22:10:23 +00:00
|
|
|
|
|
|
|
int Platform_getMaxPid() {
|
2015-07-12 16:26:33 +00:00
|
|
|
return 1;
|
|
|
|
}
|
|
|
|
|
|
|
|
double Platform_setCPUValues(Meter* this, int cpu) {
|
2016-02-14 13:45:47 +00:00
|
|
|
(void) cpu;
|
2019-08-11 00:17:45 +00:00
|
|
|
|
|
|
|
double* v = this->values;
|
2020-09-07 10:24:32 +00:00
|
|
|
v[CPU_METER_FREQUENCY] = NAN;
|
2020-09-10 17:56:33 +00:00
|
|
|
v[CPU_METER_TEMPERATURE] = NAN;
|
2019-08-11 00:17:45 +00:00
|
|
|
|
2016-02-14 13:45:47 +00:00
|
|
|
return 0.0;
|
2015-07-12 16:26:33 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
void Platform_setMemoryValues(Meter* this) {
|
2016-02-14 13:45:47 +00:00
|
|
|
(void) this;
|
2015-07-12 16:26:33 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
void Platform_setSwapValues(Meter* this) {
|
2016-02-14 13:45:47 +00:00
|
|
|
(void) this;
|
2015-07-12 16:26:33 +00:00
|
|
|
}
|
|
|
|
|
2020-10-07 17:02:15 +00:00
|
|
|
bool Process_isThread(const Process* this) {
|
2016-02-14 13:45:47 +00:00
|
|
|
(void) this;
|
2015-07-12 16:26:33 +00:00
|
|
|
return false;
|
2014-11-27 22:10:23 +00:00
|
|
|
}
|
2014-11-27 23:02:52 +00:00
|
|
|
|
2015-12-03 21:16:10 +00:00
|
|
|
char* Platform_getProcessEnv(pid_t pid) {
|
2016-02-14 13:45:47 +00:00
|
|
|
(void) pid;
|
2015-12-03 21:16:10 +00:00
|
|
|
return NULL;
|
|
|
|
}
|
2020-09-13 17:46:34 +00:00
|
|
|
|
2020-11-11 21:15:35 +00:00
|
|
|
char* Platform_getInodeFilename(pid_t pid, ino_t inode) {
|
|
|
|
(void)pid;
|
|
|
|
(void)inode;
|
|
|
|
return NULL;
|
|
|
|
}
|
|
|
|
|
|
|
|
FileLocks_ProcessData* Platform_getProcessLocks(pid_t pid) {
|
|
|
|
(void)pid;
|
|
|
|
return NULL;
|
|
|
|
}
|
|
|
|
|
2020-10-21 15:06:32 +00:00
|
|
|
bool Platform_getDiskIO(DiskIOData* data) {
|
|
|
|
(void)data;
|
2020-10-20 19:40:51 +00:00
|
|
|
return false;
|
2020-09-13 17:46:34 +00:00
|
|
|
}
|
2020-10-08 14:34:54 +00:00
|
|
|
|
2020-10-31 22:28:02 +00:00
|
|
|
bool Platform_getNetworkIO(unsigned long int* bytesReceived,
|
|
|
|
unsigned long int* packetsReceived,
|
|
|
|
unsigned long int* bytesTransmitted,
|
|
|
|
unsigned long int* packetsTransmitted) {
|
2020-10-08 14:34:54 +00:00
|
|
|
*bytesReceived = 0;
|
|
|
|
*packetsReceived = 0;
|
|
|
|
*bytesTransmitted = 0;
|
|
|
|
*packetsTransmitted = 0;
|
2020-10-20 19:40:51 +00:00
|
|
|
return false;
|
2020-10-08 14:34:54 +00:00
|
|
|
}
|
2020-11-17 07:12:38 +00:00
|
|
|
|
2020-11-25 11:46:00 +00:00
|
|
|
void Platform_getBattery(double* percent, ACPresence* isOnAC) {
|
|
|
|
*percent = NAN;
|
2020-11-17 07:12:38 +00:00
|
|
|
*isOnAC = AC_ERROR;
|
|
|
|
}
|