ProcessList.h 4.06 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"
Hisham Muhammad's avatar
Hisham Muhammad committed
17
#include <sys/types.h>
18

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

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

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

#ifndef MAX_NAME
#define MAX_NAME 128
#endif

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

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

43
44
45
46
47
48
49
50
51
52
53
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;

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
81
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
82
typedef struct ProcessList_ {
83
84
   Vector* processes;
   Vector* processes2;
Hisham Muhammad's avatar
Hisham Muhammad committed
85
86
87
   Hashtable* processTable;
   UsersTable* usersTable;

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

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

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

   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
116
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
   const char **treeStr;
Hisham Muhammad's avatar
Hisham Muhammad committed
134
135
136

} ProcessList;

137
138
139
140
141

extern const char *ProcessList_treeStrAscii[TREE_STR_COUNT];

extern const char *ProcessList_treeStrUtf8[TREE_STR_COUNT];

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

void ProcessList_delete(ProcessList* this);

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

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

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

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

int ProcessList_size(ProcessList* this);

void ProcessList_sort(ProcessList* this);

158
159
#ifdef HAVE_TASKSTATS

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

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


Hisham Muhammad's avatar
Hisham Muhammad committed
175
176
void ProcessList_scan(ProcessList* this);

177
178
ProcessField ProcessList_keyAt(ProcessList* this, int at);

179
180
void ProcessList_expandTree(ProcessList* this);

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

Hisham Muhammad's avatar
Hisham Muhammad committed
183
#endif