Lines Matching refs:cs
223 struct string *cs, *tmp; in alloc_string() local
227 list_for_each_entry(cs, free_list, list) { in alloc_string()
228 if (cs->size < size) in alloc_string()
230 if (cs->size > size + sizeof(struct string)) { in alloc_string()
231 char *endaddr = (char *) (cs + 1) + cs->size; in alloc_string()
234 cs->size -= size + sizeof(struct string); in alloc_string()
235 cs = tmp; in alloc_string()
237 list_del(&cs->list); in alloc_string()
238 cs->len = len; in alloc_string()
239 INIT_LIST_HEAD(&cs->list); in alloc_string()
240 INIT_LIST_HEAD(&cs->update); in alloc_string()
241 return cs; in alloc_string()
247 free_string(struct list_head *free_list, struct string *cs) in free_string() argument
255 if (list_entry(p, struct string, list) > cs) in free_string()
262 if ((char *) (cs + 1) + cs->size == (char *) tmp) { in free_string()
264 cs->size += tmp->size + sizeof(struct string); in free_string()
270 if ((char *) (tmp + 1) + tmp->size == (char *) cs) { in free_string()
271 tmp->size += cs->size + sizeof(struct string); in free_string()
275 __list_add(&cs->list, left, left->next); in free_string()
276 return cs->size; in free_string()
282 struct string *cs; in add_string_memory() local
284 cs = (struct string *) mem; in add_string_memory()
285 cs->size = size - sizeof(struct string); in add_string_memory()
286 free_string(free_list, cs); in add_string_memory()