280 |
|
*ps = proc_state; |
281 |
|
return proc_state_size; |
282 |
|
} |
283 |
+ |
|
284 |
+ |
process_stat_t *get_process_stats() { |
285 |
+ |
static process_stat_t process_stat; |
286 |
+ |
proc_state_t *ps; |
287 |
+ |
int ps_size, x; |
288 |
+ |
|
289 |
+ |
process_stat.sleeping=0; |
290 |
+ |
process_stat.running=0; |
291 |
+ |
process_stat.zombie=0; |
292 |
+ |
process_stat.stopped=0; |
293 |
+ |
process_stat.total=0; |
294 |
+ |
|
295 |
+ |
ps_size = get_proc_snapshot(&ps); |
296 |
+ |
|
297 |
+ |
for(x = 0; x < ps_size; x++) { |
298 |
+ |
switch (ps->state) { |
299 |
+ |
case RUNNING: |
300 |
+ |
process_stat.running++; |
301 |
+ |
break; |
302 |
+ |
case SLEEPING: |
303 |
+ |
process_stat.sleeping++; |
304 |
+ |
break; |
305 |
+ |
case STOPPED: |
306 |
+ |
process_stat.stopped++; |
307 |
+ |
break; |
308 |
+ |
case ZOMBIE: |
309 |
+ |
process_stat.zombie++; |
310 |
+ |
break; |
311 |
+ |
} |
312 |
+ |
ps++; |
313 |
+ |
} |
314 |
+ |
|
315 |
+ |
process_stat.total = ps_size; |
316 |
+ |
|
317 |
+ |
return &process_stat; |
318 |
+ |
} |