Lines Matching refs:klist
3 * klist.c - Routines for manipulating klists.
7 * This klist interface provides a couple of structures that wrap around
8 * struct list_head to provide explicit list "head" (struct klist) and list
9 * "node" (struct klist_node) objects. For struct klist, a spinlock is
11 * klist_node provides a pointer to the klist that owns it and a kref
23 * Internally, that routine takes the klist's lock, decrements the
27 * There are primitives for adding and removing nodes to/from a klist.
36 #include <linux/klist.h>
47 static struct klist *knode_klist(struct klist_node *knode)
49 return (struct klist *)
58 static void knode_set_klist(struct klist_node *knode, struct klist *klist)
60 knode->n_klist = klist;
73 * klist_init - Initialize a klist structure.
74 * @k: The klist we're initializing.
78 * Initialises the klist structure. If the klist_node structures are
84 void klist_init(struct klist *k, void (*get)(struct klist_node *),
94 static void add_head(struct klist *k, struct klist_node *n)
101 static void add_tail(struct klist *k, struct klist_node *n)
108 static void klist_node_init(struct klist *k, struct klist_node *n)
120 * @k: klist it's going on.
122 void klist_add_head(struct klist_node *n, struct klist *k)
132 * @k: klist it's going on.
134 void klist_add_tail(struct klist_node *n, struct klist *k)
148 struct klist *k = knode_klist(pos);
164 struct klist *k = knode_klist(pos);
211 struct klist *k = knode_klist(n);
273 * @k: klist we're iterating.
280 void klist_iter_init_node(struct klist *k, struct klist_iter *i,
292 * @k: klist we're iterating.
297 void klist_iter_init(struct klist *k, struct klist_iter *i)