Lines Matching refs:pool

44 static void pool_destroy(KXLDArrayPool *pool, size_t capacity);
141 KXLDArrayPool *pool = NULL; in array_init() local
148 pool = STAILQ_FIRST(&array->pools); in array_init()
149 if (pool) { in array_init()
153 bzero(pool->buffer, array->pool_capacity); in array_init()
157 pool = pool_create(array->pool_capacity); in array_init()
158 require_action(pool, finish, rval = KERN_RESOURCE_SHORTAGE); in array_init()
159 STAILQ_INSERT_HEAD(&array->pools, pool, entries); in array_init()
161 pool->nitems = nitems; in array_init()
178 KXLDArrayPool *pool = NULL, *rval = NULL; in pool_create() local
180 pool = kxld_calloc(sizeof(*pool)); in pool_create()
181 require(pool, finish); in pool_create()
183 pool->buffer = kxld_page_alloc(capacity); in pool_create()
184 require(pool->buffer, finish); in pool_create()
186 rval = pool; in pool_create()
187 pool = NULL; in pool_create()
190 if (pool) { in pool_create()
191 pool_destroy(pool, capacity); in pool_create()
199 pool_destroy(KXLDArrayPool *pool, size_t capacity) in pool_destroy() argument
201 if (pool) { in pool_destroy()
202 if (pool->buffer) { in pool_destroy()
203 kxld_page_free(pool->buffer, capacity); in pool_destroy()
205 kxld_free(pool, sizeof(*pool)); in pool_destroy()
257 KXLDArrayPool *pool = NULL; in kxld_array_reset() local
260 STAILQ_FOREACH(pool, &array->pools, entries) { in kxld_array_reset()
261 pool->nitems = 0; in kxld_array_reset()
272 KXLDArrayPool *pool = NULL; in kxld_array_clear() local
276 STAILQ_FOREACH(pool, &array->pools, entries) { in kxld_array_clear()
277 bzero(pool->buffer, array->pool_capacity); in kxld_array_clear()
287 KXLDArrayPool *pool = NULL, *tmp = NULL; in kxld_array_deinit() local
290 STAILQ_FOREACH_SAFE(pool, &array->pools, entries, tmp) { in kxld_array_deinit()
291 STAILQ_REMOVE(&array->pools, pool, kxld_array_pool, entries); in kxld_array_deinit()
292 pool_destroy(pool, array->pool_capacity); in kxld_array_deinit()
303 KXLDArrayPool *pool = NULL; in kxld_array_get_item() local
312 STAILQ_FOREACH(pool, &array->pools, entries) { in kxld_array_get_item()
313 if (idx < pool->nitems) { in kxld_array_get_item()
314 item = (void *) (pool->buffer + (array->itemsize * idx)); in kxld_array_get_item()
330 KXLDArrayPool *pool = NULL; in kxld_array_get_slot() local
339 STAILQ_FOREACH(pool, &array->pools, entries) { in kxld_array_get_slot()
341 item = (void *) (pool->buffer + (array->itemsize * idx)); in kxld_array_get_slot()
358 KXLDArrayPool *pool = NULL; in kxld_array_get_index() local
370 STAILQ_FOREACH(pool, &array->pools, entries) { in kxld_array_get_index()
371 if (pool->buffer <= it && it < pool->buffer + array->pool_capacity) { in kxld_array_get_index()
372 diff = it - pool->buffer; in kxld_array_get_index()
396 KXLDArrayPool *pool = NULL; in kxld_array_resize() local
401 pool = pool_create(array->pool_capacity); in kxld_array_resize()
402 require_action(pool, finish, rval = KERN_FAILURE); in kxld_array_resize()
404 STAILQ_INSERT_TAIL(&array->pools, pool, entries); in kxld_array_resize()
426 KXLDArrayPool *pool = NULL; in reinit_pools() local
432 STAILQ_FOREACH(pool, &array->pools, entries) { in reinit_pools()
434 pool->nitems = array->pool_maxitems; in reinit_pools()
437 pool->nitems = pool_nitems; in reinit_pools()
452 KXLDArrayPool *pool = NULL; in kxld_array_remove() local
470 pool = STAILQ_FIRST(&array->pools); in kxld_array_remove()
471 require_action(pool, finish, rval = KERN_FAILURE); in kxld_array_remove()
473 dst = pool->buffer; in kxld_array_remove()
476 src = pool->buffer; in kxld_array_remove()
479 nitems = pool->nitems - idx - 1; in kxld_array_remove()
482 --pool->nitems; in kxld_array_remove()
485 dst = pool->buffer; in kxld_array_remove()
486 dst += pool->nitems * array->itemsize; in kxld_array_remove()