cvs commit: src/sys/i386/i386 machdep.c

M. Warner Losh imp at bsdimp.com
Thu Dec 4 10:14:48 PST 2003


In message: <20031204174838.GH54398 at funkthat.com>
            John-Mark Gurney <gurney_j at efn.org> writes:
: M. Warner Losh wrote this message on Wed, Dec 03, 2003 at 17:58 -0700:
: > : Ideally, acpi.ko would contain two modules: 1 main acpi.kld module
: > : that was required and one optional madt.kld module that just contained
: > : madt.o and was optional.  Then loading the module would succeed so
: > : long as the required 'acpi' module linked but if the optional 'madt'
: > : module failed to link, it would just be tossed.  We don't really seem
: > : to be setup to do such things right now though.  A more feasible model
: > : might be an acpi.a that contains acpi.ko and madt.ko and allow the
: > : kernel linker to handle foo.a by requiring the first .ko in the archive
: > : to link and having any additional .ko's be optional.  This would work
: > : both for the acpi.ko/madt.ko case as well as bus attachments for device
: > : drivers such as a sym.a with sym.ko/sym_pci.ko/sym_cbus.ko, etc.
: > 
: > I'm not sure I follow what you are saying here.  You need to have
: > something to resolve the symbols that madt provides.
: 
: I don't know the acpi/madt interface, but why wouldn't a SYSINIT in
: madt that calls an acpi function with a struct of function pointers
: to notify acpi that it exists work?  Then you don't have problems with
: acpi referencing madt's symbols and being required to load.  acpi will
: get the pointers registered if it exists.

This seems like a much more straight forward way to deal.  acpi.ko and
madt.ko aren't unloadable at this point anyway (and any extra work
that the table would cause is so lost in the noise to make the
reloadable as to not be worth considering now).

Function pointers or kobj are the same thing in this context, so
either could potentially be used.  However, it isn't an interface that
needs to be 'stable to external users' so the normal reason to use
kobj applies much less to this case.

Warner


More information about the cvs-all mailing list