Lines Matching refs:page
49 * - a pointer to the orphaned page of the element, with the least
59 /* The page is an array of allocations in one block. */
62 /* Next page in the same child pool. */
68 /* Memory after the last member is dedicated to the page itself.
76 struct slab_page_header *page, unsigned index)
79 ((uint8_t*)&page[1] + (parent->element_size * index));
82 /* The given object/element belongs to an orphaned page (i.e. the owning child
83 * pool has been destroyed). Mark the element as freed and free the whole page
89 struct slab_page_header *page;
93 page = (struct slab_page_header *)(elt->owner & ~(intptr_t)1);
94 if (!p_atomic_dec_return(&page->u.num_remaining))
95 free(page);
148 struct slab_page_header *page = pool->pages;
149 pool->pages = page->u.next;
150 p_atomic_set(&page->u.num_remaining, pool->parent->num_elements);
153 struct slab_element_header *elt = slab_get_element(pool->parent, page, i);
154 p_atomic_set(&elt->owner, (intptr_t)page | 1);
179 struct slab_page_header *page = malloc(sizeof(struct slab_page_header) +
182 if (!page)
186 struct slab_element_header *elt = slab_get_element(pool->parent, page, i);
195 page->u.next = pool->pages;
196 pool->pages = page;
220 /* Now allocate a new page. */
272 /* The slow case: migration or an orphaned page. */