Lines Matching refs:cls

89 int class_create_file_ns(struct class *cls, const struct class_attribute *attr,  in class_create_file_ns()  argument
94 if (cls) in class_create_file_ns()
95 error = sysfs_create_file_ns(&cls->p->subsys.kobj, in class_create_file_ns()
102 void class_remove_file_ns(struct class *cls, const struct class_attribute *attr, in class_remove_file_ns() argument
105 if (cls) in class_remove_file_ns()
106 sysfs_remove_file_ns(&cls->p->subsys.kobj, &attr->attr, ns); in class_remove_file_ns()
109 static struct class *class_get(struct class *cls) in class_get() argument
111 if (cls) in class_get()
112 kset_get(&cls->p->subsys); in class_get()
113 return cls; in class_get()
116 static void class_put(struct class *cls) in class_put() argument
118 if (cls) in class_put()
119 kset_put(&cls->p->subsys); in class_put()
122 static int add_class_attrs(struct class *cls) in add_class_attrs() argument
127 if (cls->class_attrs) { in add_class_attrs()
128 for (i = 0; cls->class_attrs[i].attr.name; i++) { in add_class_attrs()
129 error = class_create_file(cls, &cls->class_attrs[i]); in add_class_attrs()
138 class_remove_file(cls, &cls->class_attrs[i]); in add_class_attrs()
142 static void remove_class_attrs(struct class *cls) in remove_class_attrs() argument
146 if (cls->class_attrs) { in remove_class_attrs()
147 for (i = 0; cls->class_attrs[i].attr.name; i++) in remove_class_attrs()
148 class_remove_file(cls, &cls->class_attrs[i]); in remove_class_attrs()
166 int __class_register(struct class *cls, struct lock_class_key *key) in __class_register() argument
171 pr_debug("device class '%s': registering\n", cls->name); in __class_register()
180 error = kobject_set_name(&cp->subsys.kobj, "%s", cls->name); in __class_register()
187 if (!cls->dev_kobj) in __class_register()
188 cls->dev_kobj = sysfs_dev_char_kobj; in __class_register()
192 if (!sysfs_deprecated || cls != &block_class) in __class_register()
198 cp->class = cls; in __class_register()
199 cls->p = cp; in __class_register()
206 error = add_class_attrs(class_get(cls)); in __class_register()
207 class_put(cls); in __class_register()
212 void class_unregister(struct class *cls) in class_unregister() argument
214 pr_debug("device class '%s': unregistering\n", cls->name); in class_unregister()
215 remove_class_attrs(cls); in class_unregister()
216 kset_unregister(&cls->p->subsys); in class_unregister()
219 static void class_create_release(struct class *cls) in class_create_release() argument
221 pr_debug("%s called for %s\n", __func__, cls->name); in class_create_release()
222 kfree(cls); in class_create_release()
242 struct class *cls; in __class_create() local
245 cls = kzalloc(sizeof(*cls), GFP_KERNEL); in __class_create()
246 if (!cls) { in __class_create()
251 cls->name = name; in __class_create()
252 cls->owner = owner; in __class_create()
253 cls->class_release = class_create_release; in __class_create()
255 retval = __class_register(cls, key); in __class_create()
259 return cls; in __class_create()
262 kfree(cls); in __class_create()
274 void class_destroy(struct class *cls) in class_destroy() argument
276 if ((cls == NULL) || (IS_ERR(cls))) in class_destroy()
279 class_unregister(cls); in class_destroy()
512 struct class_compat *cls; in class_compat_register() local
514 cls = kmalloc(sizeof(struct class_compat), GFP_KERNEL); in class_compat_register()
515 if (!cls) in class_compat_register()
517 cls->kobj = kobject_create_and_add(name, &class_kset->kobj); in class_compat_register()
518 if (!cls->kobj) { in class_compat_register()
519 kfree(cls); in class_compat_register()
522 return cls; in class_compat_register()
530 void class_compat_unregister(struct class_compat *cls) in class_compat_unregister() argument
532 kobject_put(cls->kobj); in class_compat_unregister()
533 kfree(cls); in class_compat_unregister()
544 int class_compat_create_link(struct class_compat *cls, struct device *dev, in class_compat_create_link() argument
549 error = sysfs_create_link(cls->kobj, &dev->kobj, dev_name(dev)); in class_compat_create_link()
562 sysfs_remove_link(cls->kobj, dev_name(dev)); in class_compat_create_link()
577 void class_compat_remove_link(struct class_compat *cls, struct device *dev, in class_compat_remove_link() argument
582 sysfs_remove_link(cls->kobj, dev_name(dev)); in class_compat_remove_link()