[lkml]   [2002]   [Sep]   [25]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
Subjectdevicefs requests

1) As new drivers pick up the model, check that all xxx_bus_type objects
get EXPORT_SYMBOLd and included in a include/xxxx header somewhere - My BIOS
EDD code walks the list of bus types looking for attached devices to compare
against (pci, ide, scsi, usb, ...).
ide_bus_type is in include/linux/ide.h but isn't EXPORT_SYMBOL;
usb_bus_type is in include/linux/usb.h but isn't EXPORT_SYMBOL;

Alternately, keep the list of registered bus types accessible via a
list_for_each type macro. I like the exported symbols myself, it lets me

struct edd_known_bus_types_s {
struct bus_type *bus;
const char *edd_type;
int (*match)(struct device *edd_dev, struct device *dev);

static const struct edd_known_bus_types_s edd_known_bus_types[] = {
{bus:&scsi_driverfs_bus_type, edd_type: "SCSI", match:
// {bus:&ide_bus_type, edd_type: "ATA", match: NULL},
// {bus:&usb_bus_type, edd_type: "USB", match: NULL},
{bus:NULL, edd_type: NULL, match: NULL},

so I can supply my own match functions which match one type of device (e.g.
EDD's idea of a SCSI device) to that of the standard device. I could
accomplish the same using well-known names for bus_type I suppose, and doing
a list_for_each until I find it. Just a different thing getting exported, a
well-known name and a lookup method rather than the symbol itself.

2) bus_for_each_dev() is really restrictive right now due to all the locking
mechanisms in place. In my code I'd like to, given a struct device *, walk
a list of devices on a given bus and compare each device with the given
device, returning a match, or not. As it stands, bus_for_each_dev returns
either success (the callback worked for each device on the list), or failure
(the callback failed for some device on the list), but I don't see a
mechanism to return which device failed without excessive abuse of the
void*. For now I've made a private copy of bus_for_each_dev which I've
mucked with the return the properly matching device, and wonder if this
couldn't be made more generic somehow.



Matt Domsch
Sr. Software Engineer, Lead Engineer, Architect
Dell Linux Solutions
Linux on Dell mailing lists @

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to
More majordomo info at
Please read the FAQ at

 \ /
  Last update: 2005-03-22 13:29    [W:0.044 / U:5.168 seconds]
©2003-2018 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site