Lines Matching defs:nitems

42 static kern_return_t array_init(KXLDArray *array, size_t itemsize, u_int nitems);
45 static u_int reinit_pools(KXLDArray *array, u_int nitems);
50 kxld_array_init(KXLDArray *array, size_t itemsize, u_int nitems)
60 if (!nitems) {
85 * update their internal nitems counts.
87 if (array->maxitems < nitems) {
95 nitems = reinit_pools(array, nitems);
96 require_action(nitems == 0, finish, rval=KERN_FAILURE);
110 rval = array_init(array, itemsize, nitems);
138 array_init(KXLDArray *array, size_t itemsize, u_int nitems)
150 require_action(itemsize * nitems < array->pool_capacity,
155 array->pool_capacity = round_page(array->itemsize * nitems);
161 pool->nitems = nitems;
165 array->nitems = nitems;
225 needed_capacity = round_page(srcarray->nitems * srcarray->itemsize);
231 rval = array_init(dstarray, srcarray->itemsize, srcarray->nitems);
239 copysize = srcpool->nitems * srcarray->itemsize;
258 pool->nitems = 0;
260 array->nitems = 0;
305 if (idx >= array->nitems) goto finish;
308 if (idx < pool->nitems) {
386 kxld_array_resize(KXLDArray *array, u_int nitems)
393 while (nitems > array->maxitems) {
403 nitems = reinit_pools(array, nitems);
404 require_action(nitems == 0, finish, rval=KERN_FAILURE);
417 reinit_pools(KXLDArray *array, u_int nitems)
424 pool_nitems = nitems;
427 pool->nitems = array->pool_maxitems;
430 pool->nitems = pool_nitems;
434 array->nitems = nitems;
448 u_int nitems = 0;
452 if (idx >= array->nitems) {
460 require_action(array->npools < 2 || array->nitems < array->pool_maxitems,
472 nitems = pool->nitems - idx - 1;
473 memmove(dst, src, array->itemsize * nitems);
475 --pool->nitems;
476 --array->nitems;
479 dst += pool->nitems * array->itemsize;