Re: [PATCH] sysfs: add filter function to groups

Stefan Richter
2007-10-31T10:37:46Z

Cornelia Huck wrote:
> On Wed, 31 Oct 2007 10:52:35 +0100,
> Stefan Richter <stefanr@s5r6.in-berlin.de> wrote:
>> if (!grp->is_visible ||
>> grp->is_visible(kobj, *attr, i))
>> add or remove();
>>
>
> Hm, I find that a bit harder to parse...

if (grp->is_visible == NULL ||
grp->is_visible(kobj, *attr, i))
add or remove();

However, how beautiful the implementation of static void remove_files()
and static int create_files() looks doesn't matter. What's important is
that

struct attribute_group {
const char *name;
+ int (*is_visible)(struct kobject *,
+ struct attribute *, int);
struct attribute **attrs;
};

makes sense to users --- because this is the API.

[BTW, like most of the existing driver core APIs, there are kerneldoc
comments missing here.]

> mask_out() would also imply that the common use case is to have all
> attributes in the group created and that you need to take action to
> have an attribute not created.

Here you have a point. But James has a point too when he says:
| We basically want to show capability by which file is present.

Anyway, /if/ the reverse logic is preferred, it shouldn't be called
"mask_out()" but rather "is_masked()" or "is_hidden()" or the like.
--
Stefan Richter
-=====-=-=== =-=- =====