Lines Matching refs:n_items
310 * Allocate a set of pointers to 'n_items' objects of size 'size'
313 * The 'size' and 'n_items' values are stashed in the opaque
337 size_t n_items; /* how many structs herein */
344 ddi_soft_state_init(void **state_p, size_t size, size_t n_items)
355 if (n_items < MIN_N_ITEMS)
356 ss->n_items = MIN_N_ITEMS;
360 if ((bitlog = ddi_fls(n_items)) == ddi_ffs(n_items))
362 ss->n_items = 1 << bitlog;
365 ASSERT(ss->n_items >= n_items);
367 ss->array = kmem_zalloc(ss->n_items * sizeof (void *), KM_SLEEP);
399 array = ss->array; /* NULL if ss->n_items == 0 */
400 ASSERT(ss->n_items != 0 && array != NULL);
405 if (item < ss->n_items && array[item] != NULL) {
418 if (item >= ss->n_items) {
440 new_n_items = ss->n_items;
451 bcopy(array, new_array, ss->n_items * sizeof (void *));
458 dirty->n_items = ss->n_items;
463 ss->n_items = new_n_items;
466 ASSERT(array != NULL && item < ss->n_items && array[item] == NULL);
501 if (item < ss->n_items && ss->array != NULL)
537 } else if (item < 0 || item >= ss->n_items) {
539 msg, item, ss->n_items - 1);
584 if (ss->n_items > 0) {
585 for (item = 0; item < ss->n_items; item++)
587 kmem_free(ss->array, ss->n_items * sizeof (void *));
595 kmem_free(dirty->array, dirty->n_items * sizeof (void *));