KDE Bug? or an on-purpose?

Dave Leimbach leimySPAM2k at mac.com
Tue Dec 16 20:01:25 PST 2003


The problem with ksysguardd and also apparently kcontrol is that
they expect certain fields to exist in 

struct kinfo_proc.


These are in /usr/include/user.h I think :)

#ifndef _KERNEL

/*
 * stuff that *used* to be included by user.h, or is now needed.  The
 * expectation here is that the user program wants to mess with kernel
 * structures.  To be sure we get kernel structures we have to define
 * _KERNEL_STRUCTURES.  Otherwise we might get the user version.
 *
 * This is a really aweful hack.  Fortunately nobody includes sys/user.h
 * unless they really, really, really need kinfo_proc.
 */


KDE really really really really needs it :)

The offending line looks for a p_comm field in this structure.

if(proc_p.kp_eproc.e_ppid==ppid && p[num].kp_proc.p_comm && 
   0 == strcmp(p[num].kp_proc.p_comm, proc))
                if(pid)
                    error=true;
                else
                    pid=p[num].kp_proc.p_pid;

I am unfortunately not sure what p_comm was in FreeBSD or what the
replacement is in DragonFly.

The other field is p_runtime.  I am also not sure what the correct
solution is for this.

Dave





More information about the Kernel mailing list