Hi Paul, On Fri, May 21, 2010 at 10:04 AM, Paul Goyette <p...@whooppee.com> wrote: > Is there any documentation on the modules interface or API? There does not > seem to be anything in the man pages...
I don't know if there is an "official" documentation already, but there is an article at hubertf's blog [http://www.feyrer.de/NetBSD/bx/blosxom.cgi/nb_20090922_2256.html]. There is also an exemple.c file in src/sys/modules. > My specific questions: > > What actually triggers an autoload of a module? (There seem to be very few > places where module_autoload() is called.) I can't help here, but I think that is related with dependences control. > What is the semantic difference between module_autoload() and a "normal" > module_load()? I can't help here too, but I think that autoload() just calls load(). > Does the code which calls either of these routines need to be concerned with > whether the module has been previously loaded? Is it OK to load a module > that has already been loaded? If you try to load an already loaded module, modload will return an error. > Given that there is a kernel thread that runs around and attempts to unload > any unreferenced modules that have been loaded "for a while", is it ever > necessary or desirable to explicitly unload a module? I think that you cannot unload a module that is a dependency of another loaded module. And I *think* also that autoload does the work of load/unload modules ondemand. But, it is just my assumption. > What happens if a global symbol referenced by a module doesn't exist? Does > the module get loaded anyway, leaving the reference unresolved? Not, the modload will return error. > Thanks in advance! > > > ------------------------------------------------------------------------- > | Paul Goyette | PGP Key fingerprint: | E-mail addresses: | > | Customer Service | FA29 0E3B 35AF E8AE 6651 | paul at whooppee.com | > | Network Engineer | 0786 F758 55DE 53BA 7731 | pgoyette at juniper.net | > | Kernel Developer | | pgoyette at netbsd.org | > ------------------------------------------------------------------------- > Cheers, -- Lourival Vieira Neto