Lines Matching refs:base

106 base_extent_bump_alloc_post(tsdn_t *tsdn, base_t *base, extent_t *extent,  in base_extent_bump_alloc_post()  argument
116 extent_heap_insert(&base->avail[index_floor], extent); in base_extent_bump_alloc_post()
120 base->allocated += size; in base_extent_bump_alloc_post()
125 base->resident += PAGE_CEILING((uintptr_t)addr + size) - in base_extent_bump_alloc_post()
127 assert(base->allocated <= base->resident); in base_extent_bump_alloc_post()
128 assert(base->resident <= base->mapped); in base_extent_bump_alloc_post()
133 base_extent_bump_alloc(tsdn_t *tsdn, base_t *base, extent_t *extent, in base_extent_bump_alloc() argument
140 base_extent_bump_alloc_post(tsdn, base, extent, gap_size, ret, size); in base_extent_bump_alloc()
177 base_extent_alloc(tsdn_t *tsdn, base_t *base, size_t size, size_t alignment) in base_extent_alloc() argument
179 extent_hooks_t *extent_hooks = base_extent_hooks_get(base); in base_extent_alloc()
182 malloc_mutex_assert_owner(tsdn, &base->mtx); in base_extent_alloc()
184 block = base_block_alloc(extent_hooks, base_ind_get(base), in base_extent_alloc()
185 &base->extent_sn_next, size, alignment); in base_extent_alloc()
188 block->next = base->blocks; in base_extent_alloc()
189 base->blocks = block; in base_extent_alloc()
191 base->allocated += sizeof(base_block_t); in base_extent_alloc()
192 base->resident += PAGE_CEILING(sizeof(base_block_t)); in base_extent_alloc()
193 base->mapped += block->size; in base_extent_alloc()
194 assert(base->allocated <= base->resident); in base_extent_alloc()
195 assert(base->resident <= base->mapped); in base_extent_alloc()
209 base_t *base; in base_new() local
222 base = (base_t *)base_extent_bump_alloc_helper(&block->extent, in base_new()
224 base->ind = ind; in base_new()
225 base->extent_hooks = extent_hooks; in base_new()
226 if (malloc_mutex_init(&base->mtx, "base", WITNESS_RANK_BASE)) { in base_new()
230 base->extent_sn_next = extent_sn_next; in base_new()
231 base->blocks = block; in base_new()
233 extent_heap_new(&base->avail[i]); in base_new()
235 base->allocated = sizeof(base_block_t); in base_new()
236 base->resident = PAGE_CEILING(sizeof(base_block_t)); in base_new()
237 base->mapped = block->size; in base_new()
238 assert(base->allocated <= base->resident); in base_new()
239 assert(base->resident <= base->mapped); in base_new()
241 base_extent_bump_alloc_post(tsdn, base, &block->extent, gap_size, base, in base_new()
244 return (base); in base_new()
248 base_delete(base_t *base) in base_delete() argument
250 extent_hooks_t *extent_hooks = base_extent_hooks_get(base); in base_delete()
251 base_block_t *next = base->blocks; in base_delete()
255 base_unmap(extent_hooks, base_ind_get(base), block, in base_delete()
261 base_extent_hooks_get(base_t *base) in base_extent_hooks_get() argument
263 return ((extent_hooks_t *)atomic_read_p(&base->extent_hooks_pun)); in base_extent_hooks_get()
267 base_extent_hooks_set(base_t *base, extent_hooks_t *extent_hooks) in base_extent_hooks_set() argument
269 extent_hooks_t *old_extent_hooks = base_extent_hooks_get(base); in base_extent_hooks_set()
275 u.h = &base->extent_hooks; in base_extent_hooks_set()
290 base_alloc(tsdn_t *tsdn, base_t *base, size_t size, size_t alignment) in base_alloc() argument
302 malloc_mutex_lock(tsdn, &base->mtx); in base_alloc()
304 extent = extent_heap_remove_first(&base->avail[i]); in base_alloc()
312 extent = base_extent_alloc(tsdn, base, usize, alignment); in base_alloc()
319 ret = base_extent_bump_alloc(tsdn, base, extent, usize, alignment); in base_alloc()
321 malloc_mutex_unlock(tsdn, &base->mtx); in base_alloc()
326 base_stats_get(tsdn_t *tsdn, base_t *base, size_t *allocated, size_t *resident, in base_stats_get() argument
331 malloc_mutex_lock(tsdn, &base->mtx); in base_stats_get()
332 assert(base->allocated <= base->resident); in base_stats_get()
333 assert(base->resident <= base->mapped); in base_stats_get()
334 *allocated = base->allocated; in base_stats_get()
335 *resident = base->resident; in base_stats_get()
336 *mapped = base->mapped; in base_stats_get()
337 malloc_mutex_unlock(tsdn, &base->mtx); in base_stats_get()
341 base_prefork(tsdn_t *tsdn, base_t *base) in base_prefork() argument
343 malloc_mutex_prefork(tsdn, &base->mtx); in base_prefork()
347 base_postfork_parent(tsdn_t *tsdn, base_t *base) in base_postfork_parent() argument
349 malloc_mutex_postfork_parent(tsdn, &base->mtx); in base_postfork_parent()
353 base_postfork_child(tsdn_t *tsdn, base_t *base) in base_postfork_child() argument
355 malloc_mutex_postfork_child(tsdn, &base->mtx); in base_postfork_child()