Lines Matching defs:head
22 static void _remove_node(struct utspace_split_node **head, struct utspace_split_node *node)
27 assert(*head == node);
28 *head = node->next;
33 node->head = head;
36 static void _insert_node(struct utspace_split_node **head, struct utspace_split_node *node)
38 node->next = *head;
40 if (*head) {
41 (*head)->prev = node;
43 *head = node;
45 node->head = NULL;
73 static int _insert_new_node(allocman_t *alloc, struct utspace_split_node **head, cspacepath_t ut, uintptr_t paddr)
85 node->origin_head = head;
86 _insert_node(head, node);
225 static struct utspace_split_node **find_head_for_paddr(struct utspace_split_node **head, uintptr_t paddr,
231 for (node = head[i]; node; node = node->next) {
237 return head;
257 struct utspace_split_node **head = NULL;
262 head = find_head_for_paddr(split->dev_heads, paddr, size_bits);
263 if (!head) {
264 head = find_head_for_paddr(split->dev_mem_heads, paddr, size_bits);
267 if (!head) {
268 head = find_head_for_paddr(split->heads, paddr, size_bits);
270 if (!head) {
275 if (_refill_pool(alloc, split, head, size_bits, paddr)) {
284 for (node = head[size_bits]; node && (node->paddr == ALLOCMAN_NO_PADDR || node->paddr != paddr); node = node->next);
295 head = split->dev_mem_heads;
299 if (!head) {
300 head = split->heads;
301 if (_refill_pool(alloc, split, head, size_bits, ALLOCMAN_NO_PADDR)) {
309 node = head[size_bits];
321 _remove_node(&head[size_bits], node);
333 if (parent && !node->sibling->head) {
343 _insert_node(node->head, node);