On Wed, Aug 13, 2003 at 03:44:44PM -0400, Jeff Garzik wrote:
enums are easy putting direct references would be annoying, but I also argue it's potentially broken and wrong to store and export that information publicly anyway. The use of enums instead of pointers is practically required because there is a many-to-one relationship of ids to board information structs.
The hard part is that it's actually many-to-many. The same card can have
multiple drivers. one driver can support many cards.
Let me give you a true story that your solution needs to address.
I recently got myself a Compaq Evo with an eepro100 onboard. So I took
my Debian 3.0 CD and tried to install on it. Failed because the eepro
on the board had PCI IDs that were more recent than the driver.
So I took the driver module, put it on a floppy, hand-edited the binary
to replace one of the PCI IDs with the ones that came back from lspci.
Stuck the floppy back in the Evo, loaded the hacked module and finished
the install. Then compiled a new kernel ;-)
I haven't seen anything to address this in a nicer way yet.