Discussion on the future of floppies in 5.x and 6.x
Matthew D. Fuller
fullermd at over-yonder.net
Fri Jan 9 14:28:54 PST 2004
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) | fullermd at over-yonder.net
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"
More information about the freebsd-hackers
mailing list