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.30 by tdb, Sat Apr 3 22:59:30 2004 UTC vs.
Revision 1.35 by tdb, Sun Apr 4 15:56:53 2004 UTC

# Line 207 | Line 207 | int get_proc_snapshot(proc_state_t **ps){
207   #endif
208  
209   #ifdef ALLBSD
210 +
211 + #if defined(NETBSD) || defined(OPENBSD)
212 +        kvmd = kvm_openfiles(NULL, NULL, NULL, O_RDONLY, NULL);
213 + #else
214          kvmd = kvm_openfiles(_PATH_DEVNULL, _PATH_DEVNULL, NULL, O_RDONLY, NULL);
215 + #endif
216  
217          if(kvmd == NULL) return NULL;
218  
# Line 229 | Line 234 | int get_proc_snapshot(proc_state_t **ps){
234   #ifdef FREEBSD5
235                  proc_state_ptr->process_name =
236                          strdup(kp_stats[i].ki_comm);
237 + #elif defined(DFBSD)
238 +                proc_state_ptr->process_name =
239 +                        strdup(kp_stats[i].kp_thread.td_comm);
240   #else
241                  proc_state_ptr->process_name =
242                          strdup(kp_stats[i].kp_proc.p_comm);
# Line 282 | Line 290 | int get_proc_snapshot(proc_state_t **ps){
290                  proc_state_ptr->euid = kp_stats[i].ki_uid;
291                  proc_state_ptr->gid = kp_stats[i].ki_rgid;
292                  proc_state_ptr->egid = kp_stats[i].ki_svgid;
293 + #elif defined(DFBSD)
294 +                proc_state_ptr->uid = kp_stats[i].kp_eproc.e_ucred.cr_ruid;
295 +                proc_state_ptr->euid = kp_stats[i].kp_eproc.e_ucred.cr_svuid;
296 +                proc_state_ptr->gid = kp_stats[i].kp_eproc.e_ucred.cr_rgid;
297 +                proc_state_ptr->egid = kp_stats[i].kp_eproc.e_ucred.cr_svgid;
298   #else
299                  proc_state_ptr->uid = kp_stats[i].kp_eproc.e_pcred.p_ruid;
300                  proc_state_ptr->euid = kp_stats[i].kp_eproc.e_pcred.p_svuid;
# Line 306 | Line 319 | int get_proc_snapshot(proc_state_t **ps){
319                  proc_state_ptr->proc_resident =
320                          kp_stats[i].kp_eproc.e_vm.vm_rssize * getpagesize();
321                  /* This is in microseconds */
322 + #if defined(NETBSD) || defined(OPENBSD)
323                  proc_state_ptr->time_spent =
324 +                        kp_stats[i].kp_proc.p_rtime.tv_sec;
325 + #elif defined(DFBSD)
326 +                proc_state_ptr->time_spent =
327 +                        ( kp_stats[i].kp_thread.td_uticks +
328 +                        kp_stats[i].kp_thread.td_sticks +
329 +                        kp_stats[i].kp_thread.td_iticks ) / 1000000;
330 + #else
331 +                proc_state_ptr->time_spent =
332                          kp_stats[i].kp_proc.p_runtime / 1000000;
333 + #endif
334                  proc_state_ptr->cpu_percent =
335                          ((double)kp_stats[i].kp_proc.p_pctcpu / FSCALE) * 100.0;
336                  proc_state_ptr->nice = kp_stats[i].kp_proc.p_nice;
# Line 343 | Line 366 | int get_proc_snapshot(proc_state_t **ps){
366   #endif
367                          proc_state_ptr->state = ZOMBIE;
368                          break;
369 +                default:
370 +                        proc_state_ptr->state = UNKNOWN;
371 +                        break;
372                  }
373                  proc_state_size++;
374          }
# Line 366 | Line 392 | process_stat_t *get_process_stats() {
392          process_stat.total = 0;
393  
394          ps_size = get_proc_snapshot(&ps);
395 +
396 +        if(ps_size == NULL) {
397 +                return NULL;
398 +        }
399  
400          for(x = 0; x < ps_size; x++) {
401                  switch (ps->state) {

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines