• Home
  • Raw
  • Download

Lines Matching refs:cls

102 int class_create_file(struct class *cls, const struct class_attribute *attr)  in class_create_file()  argument
105 if (cls) in class_create_file()
106 error = sysfs_create_file(&cls->p->subsys.kobj, in class_create_file()
113 void class_remove_file(struct class *cls, const struct class_attribute *attr) in class_remove_file() argument
115 if (cls) in class_remove_file()
116 sysfs_remove_file(&cls->p->subsys.kobj, &attr->attr); in class_remove_file()
119 static struct class *class_get(struct class *cls) in class_get() argument
121 if (cls) in class_get()
122 kset_get(&cls->p->subsys); in class_get()
123 return cls; in class_get()
126 static void class_put(struct class *cls) in class_put() argument
128 if (cls) in class_put()
129 kset_put(&cls->p->subsys); in class_put()
132 static int add_class_attrs(struct class *cls) in add_class_attrs() argument
137 if (cls->class_attrs) { in add_class_attrs()
138 for (i = 0; attr_name(cls->class_attrs[i]); i++) { in add_class_attrs()
139 error = class_create_file(cls, &cls->class_attrs[i]); in add_class_attrs()
148 class_remove_file(cls, &cls->class_attrs[i]); in add_class_attrs()
152 static void remove_class_attrs(struct class *cls) in remove_class_attrs() argument
156 if (cls->class_attrs) { in remove_class_attrs()
157 for (i = 0; attr_name(cls->class_attrs[i]); i++) in remove_class_attrs()
158 class_remove_file(cls, &cls->class_attrs[i]); in remove_class_attrs()
176 int __class_register(struct class *cls, struct lock_class_key *key) in __class_register() argument
181 pr_debug("device class '%s': registering\n", cls->name); in __class_register()
190 error = kobject_set_name(&cp->subsys.kobj, "%s", cls->name); in __class_register()
197 if (!cls->dev_kobj) in __class_register()
198 cls->dev_kobj = sysfs_dev_char_kobj; in __class_register()
202 if (!sysfs_deprecated || cls != &block_class) in __class_register()
208 cp->class = cls; in __class_register()
209 cls->p = cp; in __class_register()
216 error = add_class_attrs(class_get(cls)); in __class_register()
217 class_put(cls); in __class_register()
222 void class_unregister(struct class *cls) in class_unregister() argument
224 pr_debug("device class '%s': unregistering\n", cls->name); in class_unregister()
225 remove_class_attrs(cls); in class_unregister()
226 kset_unregister(&cls->p->subsys); in class_unregister()
229 static void class_create_release(struct class *cls) in class_create_release() argument
231 pr_debug("%s called for %s\n", __func__, cls->name); in class_create_release()
232 kfree(cls); in class_create_release()
252 struct class *cls; in __class_create() local
255 cls = kzalloc(sizeof(*cls), GFP_KERNEL); in __class_create()
256 if (!cls) { in __class_create()
261 cls->name = name; in __class_create()
262 cls->owner = owner; in __class_create()
263 cls->class_release = class_create_release; in __class_create()
265 retval = __class_register(cls, key); in __class_create()
269 return cls; in __class_create()
272 kfree(cls); in __class_create()
284 void class_destroy(struct class *cls) in class_destroy() argument
286 if ((cls == NULL) || (IS_ERR(cls))) in class_destroy()
289 class_unregister(cls); in class_destroy()
521 struct class_compat *cls; in class_compat_register() local
523 cls = kmalloc(sizeof(struct class_compat), GFP_KERNEL); in class_compat_register()
524 if (!cls) in class_compat_register()
526 cls->kobj = kobject_create_and_add(name, &class_kset->kobj); in class_compat_register()
527 if (!cls->kobj) { in class_compat_register()
528 kfree(cls); in class_compat_register()
531 return cls; in class_compat_register()
539 void class_compat_unregister(struct class_compat *cls) in class_compat_unregister() argument
541 kobject_put(cls->kobj); in class_compat_unregister()
542 kfree(cls); in class_compat_unregister()
553 int class_compat_create_link(struct class_compat *cls, struct device *dev, in class_compat_create_link() argument
558 error = sysfs_create_link(cls->kobj, &dev->kobj, dev_name(dev)); in class_compat_create_link()
571 sysfs_remove_link(cls->kobj, dev_name(dev)); in class_compat_create_link()
586 void class_compat_remove_link(struct class_compat *cls, struct device *dev, in class_compat_remove_link() argument
591 sysfs_remove_link(cls->kobj, dev_name(dev)); in class_compat_remove_link()