On Fri, Jan 09, 2004 at 02:23:58PM -0700 I heard the voice of
Scott Long, and lo! it spake thus:
> Dag-Erling Sm?rgrav wrote:
> >
> >yes, we need something like
> >
> >struct pci_device_info {
> >        uint32_t        pciid;
> >        char            brand[64];
> >        char            model[64];
> >} my_supported_devices[] = {
> >        { 0x12345678, "Acme", "Nutcracker 2000" }
> >};
> >
> >which is placed in a separate ELF section so we can extract it from
> >the module.
> >
> >except it needs to be flexible enough to support other buses than PCI
> >(SBUS, USB...)
> >
> >DES
> 
> Yeah, this is a good suggestion, the only problem being in making it 
> flexible enough to not be a burden on the drivers.  Many drivers
> keep one or more flag elements in their tables to flag hardware than
> needs special attention.  I'm sure that there are also countless other
> pieces of state that drivers would want to associate with a table like
> this.

I was poking around a bit (in my completely kernel-fu-lacking way) at
this last night.  For one thing, we could avoid the struct definition,
and instead just mandate a few fields in the structure with given names
as above.  Then, write a little helper .c file with a main() that goes
through the array (with the name given as a preprocessor -D or something)
and spits the info out into a text file.  Compile it up and run it for
each module as we compile it, and assemble the results in a big reference
file.  Then, a userland program (like sysinstall, in this case) can
easily poke through that text file to find and describe the drivers for
devices found.

I also was thinking that perhaps we should just stick the vendor/model
ID's (and maybe submodel and bus, too) into a string and export it via
sysctl; that was we don't have to use another tool or manually grub
around /dev/pci and whatever other buses there might be, to identify
devices pining away for a driver to mate with.


-- 
Matthew Fuller     (MF4839)   |  [EMAIL PROTECTED]
Systems/Network Administrator |  http://www.over-yonder.net/~fullermd/

"The only reason I'm burning my candle at both ends, is because I
      haven't figured out how to light the middle yet"
_______________________________________________
[EMAIL PROTECTED] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to