ProcessList.h 4.11 KB
Newer Older
Hisham Muhammad's avatar
Hisham Muhammad committed
1
/* Do not edit this file. It was automatically generated. */
Hisham Muhammad's avatar
Hisham Muhammad committed
2
3
4
5

#ifndef HEADER_ProcessList
#define HEADER_ProcessList
/*
Hisham Muhammad's avatar
Hisham Muhammad committed
6
htop - ProcessList.h
Hisham Muhammad's avatar
Hisham Muhammad committed
7
(C) 2004,2005 Hisham H. Muhammad
Hisham Muhammad's avatar
Hisham Muhammad committed
8
9
10
11
Released under the GNU GPL, see the COPYING file
in the source distribution for its full text.
*/

12
#include "Vector.h"
Hisham Muhammad's avatar
Hisham Muhammad committed
13
#include "Hashtable.h"
Hisham Muhammad's avatar
Hisham Muhammad committed
14
#include "UsersTable.h"
15
#include "Panel.h"
Hisham Muhammad's avatar
Hisham Muhammad committed
16
#include "Process.h"
17

Hisham Muhammad's avatar
Hisham Muhammad committed
18
19
20
21
22
#ifndef PROCDIR
#define PROCDIR "/proc"
#endif

#ifndef PROCSTATFILE
23
#define PROCSTATFILE PROCDIR "/stat"
Hisham Muhammad's avatar
Hisham Muhammad committed
24
25
26
#endif

#ifndef PROCMEMINFOFILE
27
#define PROCMEMINFOFILE PROCDIR "/meminfo"
Hisham Muhammad's avatar
Hisham Muhammad committed
28
29
30
31
32
33
#endif

#ifndef MAX_NAME
#define MAX_NAME 128
#endif

Hisham Muhammad's avatar
Hisham Muhammad committed
34
#ifndef MAX_READ
35
#define MAX_READ 2048
Hisham Muhammad's avatar
Hisham Muhammad committed
36
37
#endif

38
#ifndef ProcessList_cpuId
39
#define ProcessList_cpuId(pl, cpu) ((pl)->countCPUsFromZero ? (cpu) : (cpu)+1)
40
#endif
Hisham Muhammad's avatar
Hisham Muhammad committed
41

42
43
44
45
46
47
48
49
50
51
52
typedef enum TreeStr_ {
   TREE_STR_HORZ,
   TREE_STR_VERT,
   TREE_STR_RTEE,
   TREE_STR_BEND,
   TREE_STR_TEND,
   TREE_STR_OPEN,
   TREE_STR_SHUT,
   TREE_STR_COUNT
} TreeStr;

53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
typedef struct CPUData_ {
   unsigned long long int totalTime;
   unsigned long long int userTime;
   unsigned long long int systemTime;
   unsigned long long int systemAllTime;
   unsigned long long int idleAllTime;
   unsigned long long int idleTime;
   unsigned long long int niceTime;
   unsigned long long int ioWaitTime;
   unsigned long long int irqTime;
   unsigned long long int softIrqTime;
   unsigned long long int stealTime;
   unsigned long long int guestTime;
   
   unsigned long long int totalPeriod;
   unsigned long long int userPeriod;
   unsigned long long int systemPeriod;
   unsigned long long int systemAllPeriod;
   unsigned long long int idleAllPeriod;
   unsigned long long int idlePeriod;
   unsigned long long int nicePeriod;
   unsigned long long int ioWaitPeriod;
   unsigned long long int irqPeriod;
   unsigned long long int softIrqPeriod;
   unsigned long long int stealPeriod;
   unsigned long long int guestPeriod;
} CPUData;

Hisham Muhammad's avatar
Hisham Muhammad committed
81
typedef struct ProcessList_ {
82
83
   Vector* processes;
   Vector* processes2;
Hisham Muhammad's avatar
Hisham Muhammad committed
84
85
86
   Hashtable* processTable;
   UsersTable* usersTable;

87
   Panel* panel;
88
   int following;
89
90
91
   bool userOnly;
   uid_t userId;
   const char* incFilter;
92
   Hashtable* pidWhiteList;
93

94
   int cpuCount;
Hisham Muhammad's avatar
Hisham Muhammad committed
95
   int totalTasks;
96
97
   int userlandThreads;
   int kernelThreads;
Hisham Muhammad's avatar
Hisham Muhammad committed
98
99
   int runningTasks;

100
   #ifdef HAVE_LIBHWLOC
101
102
103
   hwloc_topology_t topology;
   bool topologyOk;
   #endif
104
   CPUData* cpus;
105
106
107
108
109
110
111
112
113
114

   unsigned long long int totalMem;
   unsigned long long int usedMem;
   unsigned long long int freeMem;
   unsigned long long int sharedMem;
   unsigned long long int buffersMem;
   unsigned long long int cachedMem;
   unsigned long long int totalSwap;
   unsigned long long int usedSwap;
   unsigned long long int freeSwap;
Hisham Muhammad's avatar
Hisham Muhammad committed
115

116
   int flags;
Hisham Muhammad's avatar
Hisham Muhammad committed
117
118
119
120
121
   ProcessField* fields;
   ProcessField sortKey;
   int direction;
   bool hideThreads;
   bool shadowOtherUsers;
Hisham Muhammad's avatar
Hisham Muhammad committed
122
123
   bool showThreadNames;
   bool showingThreadNames;
Hisham Muhammad's avatar
Hisham Muhammad committed
124
125
126
127
128
   bool hideKernelThreads;
   bool hideUserlandThreads;
   bool treeView;
   bool highlightBaseName;
   bool highlightMegabytes;
129
   bool highlightThreads;
130
   bool detailedCPUTime;
131
   bool countCPUsFromZero;
132
   bool updateProcessNames;
133
   bool accountGuestInCPUMeter;
134
   const char **treeStr;
Hisham Muhammad's avatar
Hisham Muhammad committed
135
136
137

} ProcessList;

138
139
140
141
142

extern const char *ProcessList_treeStrAscii[TREE_STR_COUNT];

extern const char *ProcessList_treeStrUtf8[TREE_STR_COUNT];

143
ProcessList* ProcessList_new(UsersTable* usersTable, Hashtable* pidWhiteList);
Hisham Muhammad's avatar
Hisham Muhammad committed
144
145
146

void ProcessList_delete(ProcessList* this);

147
148
void ProcessList_setPanel(ProcessList* this, Panel* panel);

Hisham Muhammad's avatar
Hisham Muhammad committed
149
150
void ProcessList_invertSortOrder(ProcessList* this);

151
void ProcessList_printHeader(ProcessList* this, RichString* header);
Hisham Muhammad's avatar
Hisham Muhammad committed
152

Hisham Muhammad's avatar
Hisham Muhammad committed
153
Process* ProcessList_get(ProcessList* this, int idx);
Hisham Muhammad's avatar
Hisham Muhammad committed
154
155
156
157
158

int ProcessList_size(ProcessList* this);

void ProcessList_sort(ProcessList* this);

159
160
#ifdef HAVE_TASKSTATS

161
#endif
Hisham Muhammad's avatar
Hisham Muhammad committed
162

163
164
165
166
167
168
169
170
171
172
173
174
#ifdef HAVE_OPENVZ

#endif

#ifdef HAVE_CGROUP

#endif

#ifdef HAVE_VSERVER

#endif

175
176
177
178
#ifdef HAVE_OOM

#endif

179

Hisham Muhammad's avatar
Hisham Muhammad committed
180
181
void ProcessList_scan(ProcessList* this);

182
183
ProcessField ProcessList_keyAt(ProcessList* this, int at);

184
185
void ProcessList_expandTree(ProcessList* this);

186
void ProcessList_rebuildPanel(ProcessList* this, bool flags, int following, bool userOnly, uid_t userId, const char* incFilter);
187

Hisham Muhammad's avatar
Hisham Muhammad committed
188
#endif