[kde-freebsd] KDE/kdebase/workspace/libs/ksysguard/processcore

Martin Wilke miwi at FreeBSD.org
Mon Dec 15 20:26:26 CET 2008


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Yay! Many Thanks.

On Mon, Dec 15, 2008 at 05:05:21PM +0000, Manolo Valdes wrote:
> SVN commit 897293 by mvaldes:
> 
> apply patch-libs-ksysguard-processcore-processes_freebsd_p.cpp
> to the upstream
> 
> CCMAIL: kde-freebsd at kde.org
> 
> 
> 
>  M  +40 -31    processes_freebsd_p.cpp  
> 
> 
> --- trunk/KDE/kdebase/workspace/libs/ksysguard/processcore/processes_freebsd_p.cpp #897292:897293
> @@ -78,9 +78,11 @@
>      process->setTracerpid(0);
>  
>  
> -#if defined(__FreeBSD__) && __FreeBSD_version >= 500015
> -    process->setUid(p->ki_uid);    
> -    process->setGid(p->ki_pgid);
> +#if defined(__FreeBSD__)
> +    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);
> @@ -96,13 +98,15 @@
>  {
>      int status;
>      struct rusage pru;
> -#if defined(__FreeBSD__) && __FreeBSD_version >= 500015
> -        ps->setUserTime(p->ki_runtime / 10000);
> +#if defined(__FreeBSD__)
> +        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);
> -        ps->setVmRSS(p->ki_rssize * getpagesize());
> +        ps->setVmSize(p->ki_size / 1024);
> +        ps->setVmRSS(p->ki_rssize * getpagesize() / 1024);
>          status = p->ki_stat;
> -#elif defined(__DragonFly__) && __DragonFly_version >= 190000
> +#elif defined(__DragonFly__) 
> +#if __DragonFly_version >= 190000
>          if (!getrusage(p->kp_pid, &pru)) {
>              errx(1, "failed to get rusage info");
>          }
> @@ -119,22 +123,22 @@
>          status = p->kp_proc.p_stat;
>  #endif
>          ps->setSysTime(0);
> +#endif
>  
>  // "idle","run","sleep","stop","zombie"
>      switch( status ) {
> -      case '0':
> -        ps->setStatus(Process::DiskSleep);
> -	break;
> -      case '1':
> -        ps->setStatus(Process::Running);
> -	break;
> -      case '2':
> -        ps->setStatus(Process::Sleeping);
> -	break;
> -      case '3':
> -        ps->setStatus(Process::Stopped);
> -	break;
> -      case '4':
> +      case SRUN:
> +         ps->setStatus(Process::Running);
> +	 break;
> +      case SSLEEP:
> +      case SWAIT:
> +      case SLOCK:
> +         ps->setStatus(Process::Sleeping);
> +	 break;
> +      case SSTOP:
> +         ps->setStatus(Process::Stopped);
> +         break;
> +      case SZOMB:
>           ps->setStatus(Process::Zombie);
>           break;
>        default:
> @@ -145,10 +149,7 @@
>  
>  void ProcessesLocal::Private::readProcStatm(struct kinfo_proc *p, Process *process)
>  {
> -// TODO
> -
> -//     unsigned long shared;    
> -//     process->setVmURSS(process->vmRSS - (shared * sysconf(_SC_PAGESIZE) / 1024));
> +    process->setVmURSS(-1);
>  }
>  
>  bool ProcessesLocal::Private::readProcCmdline(long pid, Process *process)
> @@ -184,7 +185,7 @@
>      struct kinfo_proc p;
>      if(d->readProc(pid, &p))
>      {
> -#if defined(__FreeBSD__) && __FreeBSD_version >= 500015
> +#if defined(__FreeBSD__)
>          ppid = p.ki_ppid;
>  #elif defined(__DragonFly__) && __DragonFly_version >= 190000
>          ppid = p.kp_ppid;
> @@ -218,13 +219,18 @@
>      mib[0] = CTL_KERN;
>      mib[1] = KERN_PROC;
>      mib[2] = KERN_PROC_ALL;
> -    sysctl(mib, 3, NULL, &len, NULL, 0);
> -    p = (kinfo_proc *) malloc(len);
> -    sysctl(mib, 3, p, &len, NULL, 0);
> +    if (sysctl(mib, 3, NULL, &len, NULL, 0) == -1)
> +        return pids;
> +    if ((p = (kinfo_proc *) malloc(len)) == NULL)
> +        return pids;    
> +    if (sysctl(mib, 3, p, &len, NULL, 0) == -1) {
> +	free(p);
> +        return pids;
> +    }
>  
>      for (num = 0; num < len / sizeof(struct kinfo_proc); num++)
>      {
> -#if defined(__FreeBSD__) && __FreeBSD_version >= 500015
> +#if defined(__FreeBSD__)
>          long pid = p[num].ki_pid;
>          long long ppid = p[num].ki_ppid;
>  #elif defined(__DragonFly__) && __DragonFly_version >= 190000
> @@ -294,8 +300,11 @@
>  
>      size_t Total;
>      size_t len;
> +
>      len = sizeof (Total);
> -    sysctlbyname("hw.physmem", &Total, &len, NULL, 0);
> +    if (sysctlbyname("hw.physmem", &Total, &len, NULL, 0) == -1)
> +        return 0;
> +
>      return Total /= 1024;
>  }
>  
> _______________________________________________
> kde-freebsd mailing list
> kde-freebsd at kde.org
> https://mail.kde.org/mailman/listinfo/kde-freebsd
> See also http://freebsd.kde.org/ for latest information
> 

- -- 

+-----------------------+-------------------------------+
|  PGP    : 0x05682353  |  Jabber : miwi(at)BSDCrew.de  |
|  ICQ    : 169139903   |  Mail   : miwi(at)FreeBSD.org |
+-----------------------+-------------------------------+
|	Mess with the Best, Die like the Rest!		|
+-----------------------+-------------------------------+
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.9 (FreeBSD)

iEYEARECAAYFAklGr2IACgkQFwpycAVoI1Og1QCfY8jWd9fhOiDdehRghUkAlg0U
4DoAoJB9o2sFongJ9zJ3B02cmjg6Gyqn
=WGSo
-----END PGP SIGNATURE-----


More information about the kde-freebsd mailing list