Lines Matching defs:item

3  * item.c - library routines for handling generic config items
31 * config_item_init - initialize item.
32 * @item: item in question.
34 static void config_item_init(struct config_item *item)
36 kref_init(&item->ci_kref);
37 INIT_LIST_HEAD(&item->ci_entry);
41 * config_item_set_name - Set the name of an item
42 * @item: item.
46 * dynamically allocated string that @item->ci_name points to.
47 * Otherwise, use the static @item->ci_namebuf array.
49 int config_item_set_name(struct config_item *item, const char *fmt, ...)
60 need = vsnprintf(item->ci_namebuf, limit, fmt, args);
63 name = item->ci_namebuf;
73 if (item->ci_name && item->ci_name != item->ci_namebuf)
74 kfree(item->ci_name);
77 item->ci_name = name;
82 void config_item_init_type_name(struct config_item *item,
86 config_item_set_name(item, "%s", name);
87 item->ci_type = type;
88 config_item_init(item);
101 struct config_item *config_item_get(struct config_item *item)
103 if (item)
104 kref_get(&item->ci_kref);
105 return item;
109 struct config_item *config_item_get_unless_zero(struct config_item *item)
111 if (item && kref_get_unless_zero(&item->ci_kref))
112 return item;
117 static void config_item_cleanup(struct config_item *item)
119 const struct config_item_type *t = item->ci_type;
120 struct config_group *s = item->ci_group;
121 struct config_item *parent = item->ci_parent;
123 pr_debug("config_item %s: cleaning up\n", config_item_name(item));
124 if (item->ci_name != item->ci_namebuf)
125 kfree(item->ci_name);
126 item->ci_name = NULL;
128 t->ct_item_ops->release(item);
141 * config_item_put - decrement refcount for item.
142 * @item: item.
146 void config_item_put(struct config_item *item)
148 if (item)
149 kref_put(&item->ci_kref, config_item_release);
166 * config_group_find_item - search for item in group.
168 * @name: item's name.
171 * If matching item is found take a reference and return the item.
181 struct config_item *item = to_item(entry);
182 if (config_item_name(item) &&
183 !strcmp(config_item_name(item), name)) {
184 ret = config_item_get(item);