Its full potential has not been recognized in this discussion.
If we're going to use strings for device ID matching,
then we can consolidate all of the xxx_device_id types into one:
struct device_id {
const char *pattern;
/* In practice, many drivers want scalar driver data, many
want an integer, and a few could benefit from having both.
Alternatively, we could have no extra match data at all
and make drivers declare a parallel table, for it, but
most drivers only have a few ID's to match, so the cost of
providing these fields is small. */
int match_scalar;
void *match_ptr;
};
There would be a long period of backward compatability wrappers
and porting to use the interface directly, but eventually we would have:
- only one kind of module device table for generating module aliases,
- device ID matching consolidated into drivers/base,
- No need for user level programs to query devices to generate
hotplug information (goodbye pcimodules, usbmodules,
isapnpmodules),
- Zero changes to user or kernel needed to add a new hotplug
bus type (just drop the driver modules in /lib/modules/nnn/
and run depmod).
Adam J. Richter __ ______________ 575 Oroville Road
adam@yggdrasil.com \ / Milpitas, California 95035
+1 408 309-6081 | g g d r a s i l United States of America
"Free Software For The Rest Of Us."
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/