Archie Cobbs wrote:
> Julian Elischer writes:
> > On Fri, 22 Jan 1999, Archie Cobbs wrote:
> > > Unrelated question: SYSINIT() doesn't work from KLD modules.
> > > Is this problem being addressed?
> > 
> > you mean sysctl
> 
> Oops, thanks.. SYSCTL() doesn't work from KLD modules but SYSINIT() does.
> 
> -Archie

Yes, this is well known. :-(  The only way it's going to work is by a major
rebuild of the underlying linker set based initialization mechanism. linker
sets cannot be updated at module load/unload time.  The present mechanism
has the nice advantage that the directory tree part of the name is kept in
the symbol space and only the terminal node name is an ascii string in the
kernel data space.  I can't think of an easy way of rebuilding sysctl
without loosing that feature.  About the best I can think of is some sort 
of gensetdefs-like tool to scan the binaries of the modules to create a 
descriptor for any internal sysctl tables - at minimum it needs to know 
where in the heirarchy it needs to be attached.  kern_linker.c can then 
look for it and attach it to the sysctl tree, once sysctl gets updated to 
allow dynamic extensions like that.

Cheers,
-Peter
--
Peter Wemm <pe...@netplex.com.au>   Netplex Consulting
"No coffee, No workee!" :-)



To Unsubscribe: send mail to majord...@freebsd.org
with "unsubscribe freebsd-current" in the body of the message

Reply via email to