Lines Matching refs:heap
84 static struct mem_block *alloc_block(struct mem_block *heap, int size, in alloc_block() argument
90 list_for_each(p, heap) { in alloc_block()
99 static struct mem_block *find_block(struct mem_block *heap, int start) in find_block() argument
103 list_for_each(p, heap) in find_block()
136 static int init_heap(struct mem_block **heap, int start, int size) in init_heap() argument
143 *heap = kzalloc(sizeof(**heap), GFP_KERNEL); in init_heap()
144 if (!*heap) { in init_heap()
152 blocks->next = blocks->prev = *heap; in init_heap()
154 (*heap)->file_priv = (struct drm_file *) - 1; in init_heap()
155 (*heap)->next = (*heap)->prev = blocks; in init_heap()
161 void radeon_mem_release(struct drm_file *file_priv, struct mem_block *heap) in radeon_mem_release() argument
165 if (!heap || !heap->next) in radeon_mem_release()
168 list_for_each(p, heap) { in radeon_mem_release()
176 list_for_each(p, heap) { in radeon_mem_release()
189 void radeon_mem_takedown(struct mem_block **heap) in radeon_mem_takedown() argument
193 if (!*heap) in radeon_mem_takedown()
196 for (p = (*heap)->next; p != *heap;) { in radeon_mem_takedown()
202 kfree(*heap); in radeon_mem_takedown()
203 *heap = NULL; in radeon_mem_takedown()
224 struct mem_block *block, **heap; in radeon_mem_alloc() local
231 heap = get_heap(dev_priv, alloc->region); in radeon_mem_alloc()
232 if (!heap || !*heap) in radeon_mem_alloc()
241 block = alloc_block(*heap, alloc->size, alloc->alignment, file_priv); in radeon_mem_alloc()
259 struct mem_block *block, **heap; in radeon_mem_free() local
266 heap = get_heap(dev_priv, memfree->region); in radeon_mem_free()
267 if (!heap || !*heap) in radeon_mem_free()
270 block = find_block(*heap, memfree->region_offset); in radeon_mem_free()
285 struct mem_block **heap; in radeon_mem_init_heap() local
292 heap = get_heap(dev_priv, initheap->region); in radeon_mem_init_heap()
293 if (!heap) in radeon_mem_init_heap()
296 if (*heap) { in radeon_mem_init_heap()
301 return init_heap(heap, initheap->start, initheap->size); in radeon_mem_init_heap()