Re: Attr Groups in sysfs.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Apr 18, 2011 at 11:45:23AM +0200, Gasparini Andrea wrote:
> Hi,
> 
> I've a pattern similar to this in sysfs: /sys/.../mykobj/myattr_group/attr.
> And I've some different attr groups, but I'm willing to group also the
> get/set functions and recognize at runtime which kobj,group,and
> attribute is called inside the functions.
> 
> But, if I'm not wrong the attribute functions are called:
> 
> static ssize_t some_attribute_set(struct kobject *kobj,
>         struct container_attribute *attr, const char *buf, size_t count)
> 
> And I can get the "mykobj" name with kobj->name,
> and attribute names by attr->attr.name.
> 
> I'm missing only the myattr_group name... anyone has a clue of how can
> I access this?

You can't.

> Just for completeness, I'm working on a 2.6.38 kernel, and  I'm
> declaring the groups this way:
> 
> struct container_attribute {
>     struct attribute    attr;
>     ssize_t (*show)(struct kobject *, struct container_attribute *, char *);
>     ssize_t (*store)(struct kobject *, struct container_attribute *,
> const char *, size_t);
> };
> 
> static struct attribute *lot_of_attrs[] = {
>     first_attribute.attr,
>     and_so_on.attr,
>     NULL,
> };
> 
> static struct attribute_group my_attr_group_0 = {
>     .name = "myattr_group_0",
>     .attrs = lots_of_attrs,
> };
> 
> And adding to my kobject this way:
>     retval = sysfs_create_group(mykobj, &my_attr_group_0);

Ick, no, please don't do that, you want the group to be created before
the device shows up to userspace, otherwise you just raced with
userspace and bad things will happen.

Why are you using a struct kobject directly and not a struct device
instead?  Please don't use kobjects unless you are doing something very
strange, and even then, please reconsider.

Care to explain what you are using sysfs for?

thanks,

greg k-h

_______________________________________________
Kernelnewbies mailing list
Kernelnewbies@xxxxxxxxxxxxxxxxx
http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies


[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux