On Mon, 2007-10-29 at 17:54 +0100, Kay Sievers wrote: > On Mon, 2007-10-29 at 10:16 -0500, James Bottomley wrote: > > In the SCSI transport classes (and soon to be in the AEN event > > subsystem) we have a lot of need for a grouping that doesn't include all > > files in the group. We basically want to show capability by which file > > is present. A classic example of this is the SPI transport class > > connected to the 53c700 card. It's incapable of doing all of the modern > > LVD functions, so we don't show any of those capabilities in its sysfs > > directory. However, we have a lot of horrible logic to generate > > separate per host groupings of attributes for this. We would be able to > > use the standard sysfs group attributes *if* there were a way of > > filtering them so that certain attributes didn't appear. > > Sounds fine. > > > This patch is a first pass at adding a filter function to the group > > attributes, just to see how the idea flies. If everyone's OK with this, > > I think the next thing that we might do is add bitmap functions (so > > every bit in the bitmap has a name, but also might not appear) to > > groups. > > Bitmaps in the attribute groups? Actually, no ... that would spoil our one group for all devices rule. So they would be a set of helper functions for manipulating bitmaps, but the bitmap would have to be in separate storage elsewhere. > > struct attribute_group { > > const char *name; > > + int (*filter_show)(struct kobject *, int); > > Are you sure that you want to return an array index here, instead of the > actual attribute? Like: Actually, it returns a true/false value indicating whether the given attribute should be displayed. > int (*filter_show)(struct kobject *kobj, struct attribute *attr); > > The names "show" and "store" are the ususal file-operation names, and we > are not filtering a "show" here, right? Maybe "create", or "export", or > something else might be a better name? how about (*attribute_is_visible)? James - To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html