[PATCH 1/2 UPDATED] klist: implement KLIST_INIT() and DEFINE_KLIST()

From: Tejun Heo
Date: Fri Apr 25 2008 - 14:16:34 EST


klist is missing static initializers and definition helper. Add them.

Signed-off-by: Tejun Heo <htejun@xxxxxxxxx>
Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
---
Updated to use _name.k_lock as advised.

Thanks.

include/linux/klist.h | 8 ++++++++
1 file changed, 8 insertions(+)

Index: work/include/linux/klist.h
===================================================================
--- work.orig/include/linux/klist.h
+++ work/include/linux/klist.h
@@ -25,6 +25,14 @@ struct klist {
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 *),
void (*put)(struct klist_node *));
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/