Checking sysctl values from within the kernel.
Thordur I. Bjornsson
thib at mi.is
Fri Aug 5 16:04:27 GMT 2005
On Fri, 05 Aug 2005 09:33:06 -0600
Scott Long <scottl at samsco.org> wrote:
> Dan Nelson wrote:
>
> > In the last episode (Aug 05), Thordur I. Bjornsson said:
> >
> >>If I want to check a sysctl value from within the kernel (e.g. an
> >>KLD), should I use the system calls described in sysctl(3) ?
> >>
> >>If not, what is the propper way to do so ?
> >
> >
> > Since most sysctls are direct mappings onto integer variables in the
> > kernel, just check the variable directly.
> >
>
> Most of those integer values are also declared static, so they won't
> be visible to external code, especially not kld's.
>
> There is no easy way to do this. I'm sure that you could hack up some
> code to simulate a sysctl syscall from within the kernel, but that
> would be really really gross, evil, and wrong. What values are you
> trying to get at? Would it make more sense to export them via real
> accessor functions?
>
> Scott
I thought that would be a proplem. I'm trying to see the value of
net.inet.tcp.drop_synfin . I could always just use the
#ifdef TCP_DROP_SYNFIN wich gets set with the kernel option but that
does not mean that the sysctl is set and the user/admin want's to drop
SYNFIN packet's.
Since I'm a novice/newbie when it comes to "kernel" programming any tips
will be really good.
I'll continue to search for this.
PS: If you don't mind, what is a "real accessor function" ?
--
Thordur I. <bzthib at gmail.com>
Humppa!
More information about the freebsd-hackers
mailing list