On Sun, 2005-03-27 at 23:43 +0200, Dominik Brodowski wrote: > On Sun, Mar 27, 2005 at 04:27:24PM -0500, Adam Belay wrote: > > > extern int device_create_file(struct device *device, struct device_attribute > > > * entry); > > > and delete them (e.g. in ->remove) using > > > extern void device_remove_file(struct device * dev, struct device_attribute > > > * attr); > > > > > > and there's also > > > > > > extern int driver_create_file(struct device_driver *, struct > > > driver_attribute *); > > > extern void driver_remove_file(struct device_driver *, struct > > > driver_attribute *); > > > > > > > > > Dominik > > > > Yes, I'm aware of these functions but they pollute the bus level > > namespace. I'm interested in reactions to this alternative approach. I > > wanted to explore the possibility of making a device driver instance a > > separate component with its own individual state and relationships. > > To be honest, I don't consider this to be a pollution of the "bus" > namespace, but I fear that having two different places for somewhat similar, > or even equal, data adds unneeded complexity to the driver model. In what > specific instances has the current design limited or obstructed your > intentions? > Fair enough. I just wanted to float this possibility. I appreciate your comments. The original intention for this design was to begin working on a framework for driver layering. (ex. snd-intel8x0m -> ac97, or the pci express bus abstraction) I was considering the possibility of having driver devices with parent and child relationships that reflect the internal layering of Linux drivers. I haven't really had a chance to fully develop this idea, so at this point, driver layering and my original email are just abstract concepts. Adam