kobject: introduce kobj_completion
A common way to handle kobject lifetimes in embedded in objects with different lifetime rules is to pair the kobject with a struct completion. This introduces a kobj_completion structure that can be used in place of the pairing, along with several convenience functions for initialization, release, and put-and-wait. Signed-off-by: Jeff Mahoney <jeffm@suse.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:

committed by
Greg Kroah-Hartman

parent
1296fc02c2
commit
eee0316497
18
include/linux/kobj_completion.h
Normal file
18
include/linux/kobj_completion.h
Normal file
@@ -0,0 +1,18 @@
|
||||
#ifndef _KOBJ_COMPLETION_H_
|
||||
#define _KOBJ_COMPLETION_H_
|
||||
|
||||
#include <linux/kobject.h>
|
||||
#include <linux/completion.h>
|
||||
|
||||
struct kobj_completion {
|
||||
struct kobject kc_kobj;
|
||||
struct completion kc_unregister;
|
||||
};
|
||||
|
||||
#define kobj_to_kobj_completion(kobj) \
|
||||
container_of(kobj, struct kobj_completion, kc_kobj)
|
||||
|
||||
void kobj_completion_init(struct kobj_completion *kc, struct kobj_type *ktype);
|
||||
void kobj_completion_release(struct kobject *kobj);
|
||||
void kobj_completion_del_and_wait(struct kobj_completion *kc);
|
||||
#endif /* _KOBJ_COMPLETION_H_ */
|
Reference in New Issue
Block a user