mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-25 19:15:19 +07:00
eee0316497
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>
19 lines
525 B
C
19 lines
525 B
C
#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_ */
|