Lines Matching defs:bin_info
301 arena_run_reg_alloc(arena_run_t *run, arena_bin_info_t *bin_info)
309 assert(!bitmap_full(run->bitmap, &bin_info->bitmap_info));
311 regind = (unsigned)bitmap_sfu(run->bitmap, &bin_info->bitmap_info);
314 ret = (void *)((uintptr_t)rpages + (uintptr_t)bin_info->reg0_offset +
315 (uintptr_t)(bin_info->reg_interval * regind));
327 arena_bin_info_t *bin_info = &arena_bin_info[binind];
328 size_t regind = arena_run_regind(run, bin_info, ptr);
330 assert(run->nfree < bin_info->nregs);
334 (uintptr_t)bin_info->reg0_offset)) %
335 (uintptr_t)bin_info->reg_interval == 0);
338 (uintptr_t)bin_info->reg0_offset);
340 assert(bitmap_get(run->bitmap, &bin_info->bitmap_info, regind));
342 bitmap_unset(run->bitmap, &bin_info->bitmap_info, regind);
1895 arena_bin_info_t *bin_info = &arena_bin_info[run->binind];
1896 size = bin_info->run_size;
2110 arena_bin_info_t *bin_info;
2119 bin_info = &arena_bin_info[binind];
2125 run = arena_run_alloc_small(arena, bin_info->run_size, binind);
2129 run->nfree = bin_info->nregs;
2130 bitmap_init(run->bitmap, &bin_info->bitmap_info);
2160 arena_bin_info_t *bin_info;
2164 bin_info = &arena_bin_info[binind];
2174 ret = arena_run_reg_alloc(bin->runcur, bin_info);
2187 if (run->nfree == bin_info->nregs)
2202 return (arena_run_reg_alloc(bin->runcur, bin_info));
2258 arena_alloc_junk_small(void *ptr, arena_bin_info_t *bin_info, bool zero)
2262 size_t redzone_size = bin_info->redzone_size;
2265 memset((void *)((uintptr_t)ptr + bin_info->reg_size), 0xa5,
2268 memset((void *)((uintptr_t)ptr - bin_info->redzone_size), 0xa5,
2269 bin_info->reg_interval);
2294 arena_redzones_validate(void *ptr, arena_bin_info_t *bin_info, bool reset)
2299 size_t size = bin_info->reg_size;
2300 size_t redzone_size = bin_info->redzone_size;
2334 arena_dalloc_junk_small(void *ptr, arena_bin_info_t *bin_info)
2336 size_t redzone_size = bin_info->redzone_size;
2338 arena_redzones_validate(ptr, bin_info, false);
2340 bin_info->reg_interval);
2353 arena_bin_info_t *bin_info;
2360 bin_info = &arena_bin_info[binind];
2361 arena_redzones_validate(ptr, bin_info, true);
2654 arena_bin_info_t *bin_info = &arena_bin_info[binind];
2656 if (bin_info->nregs != 1) {
2715 arena_bin_info_t *bin_info;
2723 bin_info = &arena_bin_info[binind];
2726 arena_dalloc_junk_small(ptr, bin_info);
2729 if (run->nfree == bin_info->nregs) {
3420 * Calculate bin_info->run_size such that it meets the following constraints:
3422 * *) bin_info->run_size <= arena_maxrun
3423 * *) bin_info->nregs <= RUN_MAXREGS
3425 * bin_info->nregs and bin_info->reg0_offset are also calculated here, since
3429 bin_info_run_size_calc(arena_bin_info_t *bin_info)
3443 size_t align_min = ZU(1) << (ffs_zu(bin_info
3445 bin_info->redzone_size = REDZONE_MINSIZE;
3448 bin_info->redzone_size = align_min >> 1;
3449 pad_size = bin_info->redzone_size;
3452 bin_info->redzone_size = 0;
3455 bin_info->reg_interval = bin_info->reg_size +
3456 (bin_info->redzone_size << 1);
3463 try_nregs = (uint32_t)(try_run_size / bin_info->reg_size);
3469 try_nregs = (uint32_t)(try_run_size / bin_info->reg_size);
3470 } while (perfect_run_size != perfect_nregs * bin_info->reg_size);
3475 bin_info->reg_interval);
3488 bin_info->reg_interval);
3497 bin_info->reg_interval);
3503 bin_info->run_size = actual_run_size;
3504 bin_info->nregs = actual_nregs;
3505 bin_info->reg0_offset = (uint32_t)(actual_run_size - (actual_nregs *
3506 bin_info->reg_interval) - pad_size + bin_info->redzone_size);
3511 assert(bin_info->reg0_offset - bin_info->redzone_size + (bin_info->nregs
3512 * bin_info->reg_interval) + pad_size == bin_info->run_size);
3518 arena_bin_info_t *bin_info;
3521 bin_info = &arena_bin_info[index]; \
3522 bin_info->reg_size = size; \
3523 bin_info_run_size_calc(bin_info); \
3524 bitmap_info_init(&bin_info->bitmap_info, bin_info->nregs);
3546 arena_bin_info_t *bin_info = &arena_bin_info[index]; \
3547 small_run_tab[bin_info->run_size >> LG_PAGE] = true; \