Skip to content

Commit

Permalink
[PATCH] kobject_add_dir
Browse files Browse the repository at this point in the history
Adding kobject_add_dir() function which creates a subdirectory
for a given kobject.

Signed-off-by: Jun'ichi Nomura <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
  • Loading branch information
nomuranec authored and gregkh committed Mar 20, 2006
1 parent dd308bc commit 7423172
Show file tree
Hide file tree
Showing 2 changed files with 40 additions and 0 deletions.
2 changes: 2 additions & 0 deletions include/linux/kobject.h
Original file line number Diff line number Diff line change
Expand Up @@ -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 {
Expand Down
38 changes: 38 additions & 0 deletions lib/kobject.c
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down

0 comments on commit 7423172

Please sign in to comment.