• Home
  • Raw
  • Download

Lines Matching full:parent

77 slab_get_element(struct slab_parent_pool *parent,  in slab_get_element()  argument
81 ((uint8_t*)&page[1] + (parent->element_size * index)); in slab_get_element()
101 * Create a parent pool for the allocation of same-sized objects.
107 slab_create_parent(struct slab_parent_pool *parent, in slab_create_parent() argument
111 mtx_init(&parent->mutex, mtx_plain); in slab_create_parent()
112 parent->element_size = ALIGN(sizeof(struct slab_element_header) + item_size, in slab_create_parent()
114 parent->num_elements = num_items; in slab_create_parent()
118 slab_destroy_parent(struct slab_parent_pool *parent) in slab_destroy_parent() argument
120 mtx_destroy(&parent->mutex); in slab_destroy_parent()
124 * Create a child pool linked to the given parent.
127 struct slab_parent_pool *parent) in slab_create_child() argument
129 pool->parent = parent; in slab_create_child()
143 mtx_lock(&pool->parent->mutex); in slab_destroy_child()
148 p_atomic_set(&page->u.num_remaining, pool->parent->num_elements); in slab_destroy_child()
150 for (unsigned i = 0; i < pool->parent->num_elements; ++i) { in slab_destroy_child()
151 struct slab_element_header *elt = slab_get_element(pool->parent, page, i); in slab_destroy_child()
162 mtx_unlock(&pool->parent->mutex); in slab_destroy_child()
171 pool->parent = NULL; in slab_destroy_child()
178 pool->parent->num_elements * pool->parent->element_size); in slab_add_new_page()
183 for (unsigned i = 0; i < pool->parent->num_elements; ++i) { in slab_add_new_page()
184 struct slab_element_header *elt = slab_get_element(pool->parent, page, i); in slab_add_new_page()
213 mtx_lock(&pool->parent->mutex); in slab_alloc()
216 mtx_unlock(&pool->parent->mutex); in slab_alloc()
238 * allocated is allowed, as long the pool belong to the same parent. No
259 mtx_lock(&pool->parent->mutex); in slab_free()
270 mtx_unlock(&pool->parent->mutex); in slab_free()
272 mtx_unlock(&pool->parent->mutex); in slab_free()
300 slab_destroy_parent(&pool->parent); in slab_destroy()
314 slab_create_parent(&pool->parent, item_size, num_items); in slab_create()
315 slab_create_child(&pool->child, &pool->parent); in slab_create()