Lines Matching refs:size_bits

100 int _utspace_split_add_uts(allocman_t *alloc, void *_split, size_t num, const cspacepath_t *uts, size_t *size_bits,
121 error = _insert_new_node(alloc, &list[size_bits[i]], uts[i], paddr ? paddr[i] : ALLOCMAN_NO_PADDR);
129 static int _refill_pool(allocman_t *alloc, utspace_split_t *split, struct utspace_split_node **heads, size_t size_bits,
137 if (heads[size_bits]) {
142 for (node = heads[size_bits]; node; node = node->next) {
146 if (node->paddr <= paddr && paddr < node->paddr + BIT(size_bits)) {
152 if (size_bits >= sizeof(seL4_Word) * 8 - 2) {
154 ZF_LOGV("Failed to refill pool of size %zu, no larger pools", size_bits);
158 if (_refill_pool(alloc, split, heads, size_bits + 1, paddr)) {
160 ZF_LOGV("Failed to refill pool of size %zu", size_bits);
165 node = heads[size_bits + 1];
167 for (node = heads[size_bits + 1]; node && (node->paddr == ALLOCMAN_NO_PADDR || !(node->paddr <= paddr
168 && paddr < node->paddr + BIT(size_bits + 1))); node = node->next);
185 sel4_error = seL4_Untyped_Retype(node->ut.capPtr, seL4_UntypedObject, size_bits, left->ut.root, left->ut.dest,
195 sel4_error = seL4_Untyped_Retype(node->ut.capPtr, seL4_UntypedObject, size_bits, right->ut.root, right->ut.dest,
206 _remove_node(&heads[size_bits + 1], node);
209 left->origin_head = &heads[size_bits];
210 right->origin_head = &heads[size_bits];
214 right->paddr = node->paddr + BIT(size_bits);
220 _insert_node(&heads[size_bits], right);
221 _insert_node(&heads[size_bits], left);
226 size_t size_bits)
236 if (node->paddr <= paddr && paddr + BIT(size_bits) <= node->paddr + BIT(i)) {
244 seL4_Word _utspace_split_alloc(allocman_t *alloc, void *_split, size_t size_bits, seL4_Word type,
252 sel4_size_bits = get_sel4_object_size(type, size_bits);
253 if (size_bits != vka_get_object_size(type, sel4_size_bits) || size_bits == 0) {
262 head = find_head_for_paddr(split->dev_heads, paddr, size_bits);
264 head = find_head_for_paddr(split->dev_mem_heads, paddr, size_bits);
268 head = find_head_for_paddr(split->heads, paddr, size_bits);
275 if (_refill_pool(alloc, split, head, size_bits, paddr)) {
278 ZF_LOGV("Failed to refill pool to allocate object of size %zu", size_bits);
284 for (node = head[size_bits]; node && (node->paddr == ALLOCMAN_NO_PADDR || node->paddr != paddr); node = node->next);
290 if (_refill_pool(alloc, split, split->dev_mem_heads, size_bits, ALLOCMAN_NO_PADDR)) {
292 ZF_LOGV("Failed to refill device memory pool to allocate object of size %zu", size_bits);
301 if (_refill_pool(alloc, split, head, size_bits, ALLOCMAN_NO_PADDR)) {
304 ZF_LOGV("Failed to refill pool to allocate object of size %zu", size_bits);
309 node = head[size_bits];
321 _remove_node(&head[size_bits], node);
327 void _utspace_split_free(allocman_t *alloc, void *_split, seL4_Word cookie, size_t size_bits)
340 _utspace_split_free(alloc, split, (seL4_Word) parent, size_bits + 1);
347 uintptr_t _utspace_split_paddr(void *_split, seL4_Word cookie, size_t size_bits)