ViewVC Help
View File | Revision Log | Show Annotations | Revision Graph | Root Listing
root/i-scream/projects/libstatgrab/src/libstatgrab/process_stats.c
(Generate patch)

Comparing projects/libstatgrab/src/libstatgrab/process_stats.c (file contents):
Revision 1.26 by tdb, Tue Mar 30 22:10:04 2004 UTC vs.
Revision 1.28 by tdb, Sat Apr 3 16:57:32 2004 UTC

# Line 226 | Line 226 | int get_proc_snapshot(proc_state_t **ps){
226                  proc_state_ptr->process_name = strdup(kp_stats[i].ki_comm);
227                  /* Seems we don't have access to that bit of memory */
228                  /*proc_state_ptr->proctitle = strdup(kp_stats[i].ki_args->ar_args);*/
229 +                proc_state_ptr->proctitle = NULL;
230  
231                  proc_state_ptr->pid = kp_stats[i].ki_pid;
232                  proc_state_ptr->parent = kp_stats[i].ki_ppid;
# Line 239 | Line 240 | int get_proc_snapshot(proc_state_t **ps){
240                  proc_state_ptr->proc_size = kp_stats[i].ki_size;
241                  /* This is in pages */
242                  proc_state_ptr->proc_resident = kp_stats[i].ki_rssize * getpagesize();
243 <                /* This seems to be in microseconds */
243 >                /* This is in microseconds */
244                  proc_state_ptr->time_spent = kp_stats[i].ki_runtime / 1000000;
245 <                proc_state_ptr->cpu_percent = kp_stats[i].ki_pctcpu;
245 >                proc_state_ptr->cpu_percent = ((double) kp_stats[i].ki_pctcpu / FSCALE) * 100.0;
246                  proc_state_ptr->nice = kp_stats[i].ki_nice;
247  
248                  switch (kp_stats[i].ki_stat) {
# Line 279 | Line 280 | int get_proc_snapshot(proc_state_t **ps){
280  
281          *ps = proc_state;
282          return proc_state_size;
283 + }
284 +
285 + process_stat_t *get_process_stats() {
286 +        static process_stat_t process_stat;
287 +        proc_state_t *ps;
288 +        int ps_size, x;
289 +
290 +        process_stat.sleeping=0;
291 +        process_stat.running=0;
292 +        process_stat.zombie=0;
293 +        process_stat.stopped=0;
294 +        process_stat.total=0;
295 +
296 +        ps_size = get_proc_snapshot(&ps);
297 +
298 +        for(x = 0; x < ps_size; x++) {
299 +                switch (ps->state) {
300 +                case RUNNING:
301 +                        process_stat.running++;
302 +                        break;
303 +                case SLEEPING:
304 +                        process_stat.sleeping++;
305 +                        break;
306 +                case STOPPED:
307 +                        process_stat.stopped++;
308 +                        break;
309 +                case ZOMBIE:
310 +                        process_stat.zombie++;
311 +                        break;
312 +                }
313 +                ps++;
314 +        }
315 +
316 +        process_stat.total = ps_size;
317 +
318 +        return &process_stat;
319   }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines