Lines Matching defs:n_items
5936 * Allocate a set of pointers to 'n_items' objects of size 'size'
5939 * The 'size' and 'n_items' values are stashed in the opaque
5959 ddi_soft_state_init(void **state_p, size_t size, size_t n_items)
5970 if (n_items < MIN_N_ITEMS)
5971 ss->n_items = MIN_N_ITEMS;
5975 if ((bitlog = ddi_fls(n_items)) == ddi_ffs(n_items))
5977 ss->n_items = 1 << bitlog;
5980 ASSERT(ss->n_items >= n_items);
5982 ss->array = kmem_zalloc(ss->n_items * sizeof (void *), KM_SLEEP);
6013 array = ss->array; /* NULL if ss->n_items == 0 */
6014 ASSERT(ss->n_items != 0 && array != NULL);
6019 if (item < ss->n_items && array[item] != NULL) {
6032 if (item >= ss->n_items) {
6054 new_n_items = ss->n_items;
6065 bcopy(array, new_array, ss->n_items * sizeof (void *));
6072 dirty->n_items = ss->n_items;
6077 ss->n_items = new_n_items;
6080 ASSERT(array != NULL && item < ss->n_items && array[item] == NULL);
6114 if (item < ss->n_items && ss->array != NULL)
6150 } else if (item < 0 || item >= ss->n_items) {
6152 msg, item, ss->n_items - 1, mod_containing_pc(caller()));
6197 if (ss->n_items > 0) {
6198 for (item = 0; item < ss->n_items; item++)
6200 kmem_free(ss->array, ss->n_items * sizeof (void *));
6208 kmem_free(dirty->array, dirty->n_items * sizeof (void *));
6224 int n_items)
6229 ASSERT(state_p && size && n_items);
6230 if ((state_p == NULL) || (size == 0) || (n_items == 0))
6233 /* current implementation is based on hash, convert n_items to hash */
6234 hash_sz = n_items / SS_N_ITEMS_PER_HASH;
6333 ddi_strid_init(ddi_strid **strid_p, int n_items)
6341 /* current implementation is based on hash, convert n_items to hash */
6342 hash_sz = n_items / SS_N_ITEMS_PER_HASH;
6349 ss->strid_chunksz = n_items;
6350 ss->strid_spacesz = n_items;
6351 ss->strid_space = id_space_create("strid", 1, n_items);