aboutsummaryrefslogtreecommitdiffstats
path: root/lib/kobject.c
diff options
context:
space:
mode:
authorKay Sievers <kay.sievers@vrfy.org>2007-11-02 08:47:53 -0400
committerGreg Kroah-Hartman <gregkh@suse.de>2008-01-24 23:40:18 -0500
commit23b5212cc7422f475b82124334b64277b5b43013 (patch)
tree15be8d1e0f9600d87d28244de865c60e80b3389c /lib/kobject.c
parent6dcec2511ff55b4abaca7ad3433011a7c04c2430 (diff)
Driver Core: add kobj_attribute handling
Add kobj_sysfs_ops to replace subsys_sysfs_ops. There is no need for special kset operations, we want to be able to use simple attribute operations at any kobject, not only ksets. The whole concept of any default sysfs attribute operations will go away with the upcoming removal of subsys_sysfs_ops. Signed-off-by: Kay Sievers <kay.sievers@vrfy.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'lib/kobject.c')
-rw-r--r--lib/kobject.c29
1 files changed, 29 insertions, 0 deletions
diff --git a/lib/kobject.c b/lib/kobject.c
index 67c3d38d48f0..1c343fe4ba63 100644
--- a/lib/kobject.c
+++ b/lib/kobject.c
@@ -697,6 +697,35 @@ void kset_init(struct kset * k)
697 spin_lock_init(&k->list_lock); 697 spin_lock_init(&k->list_lock);
698} 698}
699 699
700/* default kobject attribute operations */
701static ssize_t kobj_attr_show(struct kobject *kobj, struct attribute *attr,
702 char *buf)
703{
704 struct kobj_attribute *kattr;
705 ssize_t ret = -EIO;
706
707 kattr = container_of(attr, struct kobj_attribute, attr);
708 if (kattr->show)
709 ret = kattr->show(kobj, kattr, buf);
710 return ret;
711}
712
713static ssize_t kobj_attr_store(struct kobject *kobj, struct attribute *attr,
714 const char *buf, size_t count)
715{
716 struct kobj_attribute *kattr;
717 ssize_t ret = -EIO;
718
719 kattr = container_of(attr, struct kobj_attribute, attr);
720 if (kattr->store)
721 ret = kattr->store(kobj, kattr, buf, count);
722 return ret;
723}
724
725struct sysfs_ops kobj_sysfs_ops = {
726 .show = kobj_attr_show,
727 .store = kobj_attr_store,
728};
700 729
701/** 730/**
702 * kset_add - add a kset object to the hierarchy. 731 * kset_add - add a kset object to the hierarchy.