Platform.c 5.25 KB
Newer Older
1
2
3
/*
htop - unsupported/Platform.c
(C) 2014 Hisham H. Muhammad
David Hunt's avatar
David Hunt committed
4
(C) 2015 David C. Hunt
5
6
7
8
9
Released under the GNU GPL, see the COPYING file
in the source distribution for its full text.
*/

#include "Platform.h"
10
11
12
13
14
15
16
#include "CPUMeter.h"
#include "MemoryMeter.h"
#include "SwapMeter.h"
#include "TasksMeter.h"
#include "LoadAverageMeter.h"
#include "ClockMeter.h"
#include "HostnameMeter.h"
17
#include "UptimeMeter.h"
18
19
20

/*{
#include "Action.h"
21
#include "BatteryMeter.h"
22
#include "SignalsPanel.h"
23
#include "UnsupportedProcess.h"
24
25
}*/

26
27
28
29
30
31
SignalItem Platform_signals[] = {
   { .name = " 0 Cancel",    .number =  0 },
};

unsigned int Platform_numberOfSignals = sizeof(Platform_signals)/sizeof(SignalItem);

David Hunt's avatar
David Hunt committed
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
ProcessField Platform_defaultFields[] = { PID, USER, PRIORITY, NICE, M_SIZE, M_RESIDENT, STATE, PERCENT_CPU, PERCENT_MEM, TIME, COMM, 0 };

ProcessFieldData Process_fields[] = {
   [0] = { .name = "", .title = NULL, .description = NULL, .flags = 0, },
   [PID] = { .name = "PID", .title = "    PID ", .description = "Process/thread ID", .flags = 0, },
   [COMM] = { .name = "Command", .title = "Command ", .description = "Command line", .flags = 0, },
   [STATE] = { .name = "STATE", .title = "S ", .description = "Process state (S sleeping, R running, D disk, Z zombie, T traced, W paging)", .flags = 0, },
   [PPID] = { .name = "PPID", .title = "   PPID ", .description = "Parent process ID", .flags = 0, },
   [PGRP] = { .name = "PGRP", .title = "   PGRP ", .description = "Process group ID", .flags = 0, },
   [SESSION] = { .name = "SESSION", .title = "   SESN ", .description = "Process's session ID", .flags = 0, },
   [TTY_NR] = { .name = "TTY_NR", .title = "  TTY ", .description = "Controlling terminal", .flags = 0, },
   [TPGID] = { .name = "TPGID", .title = "  TPGID ", .description = "Process ID of the fg process group of the controlling terminal", .flags = 0, },
   [MINFLT] = { .name = "MINFLT", .title = "     MINFLT ", .description = "Number of minor faults which have not required loading a memory page from disk", .flags = 0, },
   [MAJFLT] = { .name = "MAJFLT", .title = "     MAJFLT ", .description = "Number of major faults which have required loading a memory page from disk", .flags = 0, },
   [PRIORITY] = { .name = "PRIORITY", .title = "PRI ", .description = "Kernel's internal priority for the process", .flags = 0, },
   [NICE] = { .name = "NICE", .title = " NI ", .description = "Nice value (the higher the value, the more it lets other processes take priority)", .flags = 0, },
   [STARTTIME] = { .name = "STARTTIME", .title = "START ", .description = "Time the process was started", .flags = 0, },

   [PROCESSOR] = { .name = "PROCESSOR", .title = "CPU ", .description = "Id of the CPU the process last executed on", .flags = 0, },
   [M_SIZE] = { .name = "M_SIZE", .title = " VIRT ", .description = "Total program size in virtual memory", .flags = 0, },
   [M_RESIDENT] = { .name = "M_RESIDENT", .title = "  RES ", .description = "Resident set size, size of the text and data sections, plus stack usage", .flags = 0, },
   [ST_UID] = { .name = "ST_UID", .title = " UID ", .description = "User ID of the process owner", .flags = 0, },
   [PERCENT_CPU] = { .name = "PERCENT_CPU", .title = "CPU% ", .description = "Percentage of the CPU time the process used in the last sampling", .flags = 0, },
   [PERCENT_MEM] = { .name = "PERCENT_MEM", .title = "MEM% ", .description = "Percentage of the memory the process is using, based on resident memory size", .flags = 0, },
   [USER] = { .name = "USER", .title = "USER      ", .description = "Username of the process owner (or user ID if name cannot be determined)", .flags = 0, },
   [TIME] = { .name = "TIME", .title = "  TIME+  ", .description = "Total time the process has spent in user and system time", .flags = 0, },
   [NLWP] = { .name = "NLWP", .title = "NLWP ", .description = "Number of threads in the process", .flags = 0, },
   [TGID] = { .name = "TGID", .title = "   TGID ", .description = "Thread group ID (i.e. process ID)", .flags = 0, },
   [100] = { .name = "*** report bug! ***", .title = NULL, .description = NULL, .flags = 0, },
};
62

63
64
65
66
67
68
69
70
71
72
MeterClass* Platform_meterTypes[] = {
   &CPUMeter_class,
   &ClockMeter_class,
   &LoadAverageMeter_class,
   &LoadMeter_class,
   &MemoryMeter_class,
   &SwapMeter_class,
   &TasksMeter_class,
   &BatteryMeter_class,
   &HostnameMeter_class,
73
   &UptimeMeter_class,
74
75
76
77
78
79
80
81
82
83
   &AllCPUsMeter_class,
   &AllCPUs2Meter_class,
   &LeftCPUsMeter_class,
   &RightCPUsMeter_class,
   &LeftCPUs2Meter_class,
   &RightCPUs2Meter_class,
   &BlankMeter_class,
   NULL
};

David Hunt's avatar
David Hunt committed
84
85
86
87
88
void Platform_setBindings(Htop_Action* keys) {
   (void) keys;
}

int Platform_numberOfFields = 100;
89
90
91
92
93
94

extern char Process_pidFormat[20];

ProcessPidColumn Process_pidColumns[] = {
   { .id = 0, .label = NULL },
};
David Hunt's avatar
David Hunt committed
95

96
int Platform_getUptime() {
David Hunt's avatar
David Hunt committed
97
   return 0;
98
}
99
100
101
102
103
104

void Platform_getLoadAverage(double* one, double* five, double* fifteen) {
   *one = 0;
   *five = 0;
   *fifteen = 0;
}
105
106

int Platform_getMaxPid() {
David Hunt's avatar
David Hunt committed
107
108
109
110
   return 1;
}

double Platform_setCPUValues(Meter* this, int cpu) {
111
112
113
   (void) this;
   (void) cpu;
   return 0.0;
David Hunt's avatar
David Hunt committed
114
115
116
}

void Platform_setMemoryValues(Meter* this) {
117
   (void) this;
David Hunt's avatar
David Hunt committed
118
119
120
}

void Platform_setSwapValues(Meter* this) {
121
   (void) this;
David Hunt's avatar
David Hunt committed
122
123
124
}

bool Process_isThread(Process* this) {
125
   (void) this;
David Hunt's avatar
David Hunt committed
126
   return false;
127
}
128

Michael Klein's avatar
Michael Klein committed
129
char* Platform_getProcessEnv(pid_t pid) {
130
   (void) pid;
Michael Klein's avatar
Michael Klein committed
131
132
   return NULL;
}