[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    branches/KDE/4.6/kdebase/workspace/libs/ksysguard/processcore
From:       Raphael Kubo da Costa <kubito () gmail ! com>
Date:       2011-01-10 4:16:43
Message-ID: 20110110041643.90067AC8B2 () svn ! kde ! org
[Download RAW message or body]

SVN commit 1213286 by rkcosta:

Backport r1213285.

Add a process file for DragonFly BSD.

It should fix compilation on it, as well as provide meaningful stats
for it on ksysguard.

Original patch by Alex Hornung <alexh AT dragonflybsd DOT org> with
some minor style cleanups, thanks a lot!

FIXED-IN: 4.6.0
CCBUG: 247614



 A             processes_dragonfly_p.cpp   [License: LGPL (v2+)]
 M  +2 -48     processes_freebsd_p.cpp  
 M  +3 -1      processes_local_p.cpp  


--- branches/KDE/4.6/kdebase/workspace/libs/ksysguard/processcore/processes_freebsd_p.cpp \
#1213285:1213286 @@ -29,10 +29,6 @@
 #include <sys/types.h>
 #include <sys/user.h>
 #include <sys/resource.h>
-#if defined(__DragonFly__)
-#include <sys/resourcevar.h>
-#include <err.h>
-#endif
 #include <signal.h>
 #include <unistd.h>
 #include <stdlib.h>
@@ -77,53 +73,24 @@
     process->setGid(0);
     process->setTracerpid(0);
 
-
-#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
     process->setEuid(p->ki_uid);
     process->setUid(p->ki_ruid);
     process->setEgid(p->ki_svgid);
     process->setGid(p->ki_rgid);
     process->setName(QString(p->ki_comm ? p->ki_comm : "????"));
-#elif defined(__DragonFly__) && __DragonFly_version >= 190000
-    process->setUid(p->kp_uid);
-    process->setGid(p->kp_pgid);
-    process->setName(QString(p->kp_comm ? p->kp_comm : "????"));
-#else
-    process->setUid(p->kp_eproc.e_ucred.cr_uid);
-    process->setGid(p->kp_eproc.e_pgid);
-#endif
 }
 
 void ProcessesLocal::Private::readProcStat(struct kinfo_proc *p, Process *ps)
 {
     int status;
     struct rusage pru;
-#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
+
         ps->setUserTime(p->ki_rusage.ru_utime.tv_sec * 100 + \
                p->ki_rusage.ru_utime.tv_usec / 10000);
         ps->setSysTime(p->ki_rusage.ru_stime.tv_sec * 100 + \
p->ki_rusage.ru_stime.tv_usec / 10000);  ps->setNiceLevel(p->ki_nice);
         ps->setVmSize(p->ki_size / 1024);
         ps->setVmRSS(p->ki_rssize * getpagesize() / 1024);
         status = p->ki_stat;
-#elif defined(__DragonFly__)
-#if __DragonFly_version >= 190000
-        if (!getrusage(p->kp_pid, &pru)) {
-            errx(1, "failed to get rusage info");
-        }
-        ps->setUserTime(pru.ru_utime.tv_usec / 1000); /*p_runtime / 1000*/
-        ps->setNiceLevel(p->kp_nice);
-        ps->setVmSize(p->kp_vm_map_size);
-        ps->setVmRSS(p->kp_vm_rssize * getpagesize());
-        status = p->kp_stat;
-#else
-        ps->setUserTime(p->kp_proc.p_rtime.tv_sec*100+p->kp_proc.p_rtime.tv_usec/100);
                
-        ps->setNiceLevel(p->kp_proc.p_nice);
-        ps->setVmSize(p->kp_eproc.e_vm.vm_map.size);
-        ps->setVmRSS(p->kp_eproc.e_vm.vm_rssize * getpagesize());
-        status = p->kp_proc.p_stat;
-#endif
-        ps->setSysTime(0);
-#endif
 
 // "idle","run","sleep","stop","zombie"
     switch( status ) {
@@ -185,13 +152,7 @@
     struct kinfo_proc p;
     if(d->readProc(pid, &p))
     {
-#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
         ppid = p.ki_ppid;
-#elif defined(__DragonFly__) && __DragonFly_version >= 190000
-        ppid = p.kp_ppid;
-#else
-        ppid = p.kp_eproc.e_ppid;
-#endif
     }
     return ppid;
 }
@@ -230,16 +191,9 @@
 
     for (num = 0; num < len / sizeof(struct kinfo_proc); num++)
     {
-#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
         long pid = p[num].ki_pid;
         long long ppid = p[num].ki_ppid;
-#elif defined(__DragonFly__) && __DragonFly_version >= 190000
-        long pid = p[num].kp_pid;
-        long long ppid = p[num].kp_ppid;
-#else
-        long pid = p[num].kp_proc.p_pid;
-        long long ppid = p[num].kp_eproc.e_ppid;
-#endif
+
         //skip all process with parent id = 0 but init
         if(ppid == 0 && pid != 1)
             continue;
--- branches/KDE/4.6/kdebase/workspace/libs/ksysguard/processcore/processes_local_p.cpp \
#1213285:1213286 @@ -21,8 +21,10 @@
 
 #if defined __linux__
 #include "processes_linux_p.cpp"
-#elif defined __FreeBSD__ || defined __FreeBSD_kernel__ || defined __DragonFly__
+#elif defined __FreeBSD__ || defined __FreeBSD_kernel__
 #include "processes_freebsd_p.cpp"
+#elif defined __DragonFly__
+#include "processes_dragonfly_p.cpp"
 #elif defined __OpenBSD__
 #include "processes_openbsd_p.cpp"
 #elif defined __NetBSD__


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic