Loading include/linux/kobject.h +2 −0 Original line number Diff line number Diff line Loading @@ -80,6 +80,8 @@ extern void kobject_unregister(struct kobject *); extern struct kobject * kobject_get(struct kobject *); extern void kobject_put(struct kobject *); extern struct kobject *kobject_add_dir(struct kobject *, const char *); extern char * kobject_get_path(struct kobject *, gfp_t); struct kobj_type { Loading lib/kobject.c +38 −0 Original line number Diff line number Diff line Loading @@ -385,6 +385,44 @@ void kobject_put(struct kobject * kobj) } static void dir_release(struct kobject *kobj) { kfree(kobj); } static struct kobj_type dir_ktype = { .release = dir_release, .sysfs_ops = NULL, .default_attrs = NULL, }; /** * kobject_add_dir - add sub directory of object. * @parent: object in which a directory is created. * @name: directory name. * * Add a plain directory object as child of given object. */ struct kobject *kobject_add_dir(struct kobject *parent, const char *name) { struct kobject *k; if (!parent) return NULL; k = kzalloc(sizeof(*k), GFP_KERNEL); if (!k) return NULL; k->parent = parent; k->ktype = &dir_ktype; kobject_set_name(k, name); kobject_register(k); return k; } EXPORT_SYMBOL_GPL(kobject_add_dir); /** * kset_init - initialize a kset for use * @k: kset Loading Loading
include/linux/kobject.h +2 −0 Original line number Diff line number Diff line Loading @@ -80,6 +80,8 @@ extern void kobject_unregister(struct kobject *); extern struct kobject * kobject_get(struct kobject *); extern void kobject_put(struct kobject *); extern struct kobject *kobject_add_dir(struct kobject *, const char *); extern char * kobject_get_path(struct kobject *, gfp_t); struct kobj_type { Loading
lib/kobject.c +38 −0 Original line number Diff line number Diff line Loading @@ -385,6 +385,44 @@ void kobject_put(struct kobject * kobj) } static void dir_release(struct kobject *kobj) { kfree(kobj); } static struct kobj_type dir_ktype = { .release = dir_release, .sysfs_ops = NULL, .default_attrs = NULL, }; /** * kobject_add_dir - add sub directory of object. * @parent: object in which a directory is created. * @name: directory name. * * Add a plain directory object as child of given object. */ struct kobject *kobject_add_dir(struct kobject *parent, const char *name) { struct kobject *k; if (!parent) return NULL; k = kzalloc(sizeof(*k), GFP_KERNEL); if (!k) return NULL; k->parent = parent; k->ktype = &dir_ktype; kobject_set_name(k, name); kobject_register(k); return k; } EXPORT_SYMBOL_GPL(kobject_add_dir); /** * kset_init - initialize a kset for use * @k: kset Loading