klist: implement KLIST_INIT() and DEFINE_KLIST()
klist is missing static initializers and definition helper. Add them. Signed-off-by: Tejun Heo <htejun@gmail.com> Cc: Peter Zijlstra <peterz@infradead.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
Родитель
40a2159abf
Коммит
1da43e4a9e
|
@ -25,6 +25,14 @@ struct klist {
|
||||||
void (*put)(struct klist_node *);
|
void (*put)(struct klist_node *);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#define KLIST_INIT(_name, _get, _put) \
|
||||||
|
{ .k_lock = __SPIN_LOCK_UNLOCKED(_name.k_lock), \
|
||||||
|
.k_list = LIST_HEAD_INIT(_name.k_list), \
|
||||||
|
.get = _get, \
|
||||||
|
.put = _put, }
|
||||||
|
|
||||||
|
#define DEFINE_KLIST(_name, _get, _put) \
|
||||||
|
struct klist _name = KLIST_INIT(_name, _get, _put)
|
||||||
|
|
||||||
extern void klist_init(struct klist * k, void (*get)(struct klist_node *),
|
extern void klist_init(struct klist * k, void (*get)(struct klist_node *),
|
||||||
void (*put)(struct klist_node *));
|
void (*put)(struct klist_node *));
|
||||||
|
|
Загрузка…
Ссылка в новой задаче