50 |
|
#include <stdlib.h> |
51 |
|
#include <sys/param.h> |
52 |
|
#include <sys/sysctl.h> |
53 |
+ |
#if defined(FREEBSD) || defined(DFBSD) |
54 |
+ |
#include <sys/user.h> |
55 |
+ |
#else |
56 |
|
#include <sys/proc.h> |
57 |
|
#endif |
55 |
– |
#ifdef FREEBSD |
56 |
– |
#include <sys/user.h> |
58 |
|
#endif |
59 |
|
|
60 |
|
process_stat_t *get_process_stats(){ |
158 |
|
} |
159 |
|
|
160 |
|
if (sysctl(mib, 3, kp_stats, &size, NULL, 0) < 0) { |
161 |
+ |
free(kp_stats); |
162 |
|
return NULL; |
163 |
|
} |
164 |
|
|
168 |
|
#else |
169 |
|
switch (kp_stats[i].kp_proc.p_stat) { |
170 |
|
#endif |
169 |
– |
case SSLEEP: |
170 |
– |
process_stat.sleeping++; |
171 |
– |
break; |
172 |
– |
case SRUN: |
171 |
|
case SIDL: |
172 |
+ |
case SRUN: |
173 |
+ |
#ifdef SONPROC |
174 |
+ |
case SONPROC: /* NetBSD */ |
175 |
+ |
#endif |
176 |
|
process_stat.running++; |
177 |
|
break; |
178 |
< |
case SZOMB: |
179 |
< |
/*case SDEAD:*/ |
180 |
< |
process_stat.zombie++; |
178 |
> |
case SSLEEP: |
179 |
> |
#ifdef SWAIT |
180 |
> |
case SWAIT: /* FreeBSD 5 */ |
181 |
> |
#endif |
182 |
> |
#ifdef SLOCK |
183 |
> |
case SLOCK: /* FreeBSD 5 */ |
184 |
> |
#endif |
185 |
> |
process_stat.sleeping++; |
186 |
|
break; |
187 |
|
case SSTOP: |
188 |
|
process_stat.stopped++; |
189 |
|
break; |
190 |
+ |
case SZOMB: |
191 |
+ |
#ifdef SDEAD |
192 |
+ |
case SDEAD: /* OpenBSD & NetBSD */ |
193 |
+ |
#endif |
194 |
+ |
process_stat.zombie++; |
195 |
+ |
break; |
196 |
|
} |
197 |
|
} |
185 |
– |
#endif |
198 |
|
|
199 |
< |
free(kp_stats); |
199 |
> |
free(kp_stats); |
200 |
> |
#endif |
201 |
|
|
202 |
|
#ifdef CYGWIN |
203 |
|
return NULL; |