Lines Matching refs:heap
83 static struct mem_block *alloc_block(struct mem_block *heap, int size,
89 list_for_each(p, heap) {
98 static struct mem_block *find_block(struct mem_block *heap, int start)
102 list_for_each(p, heap)
114 * 'heap' to stop it being subsumed.
133 /* Initialize. How to check for an uninitialized heap?
135 static int init_heap(struct mem_block **heap, int start, int size)
142 *heap = drm_alloc(sizeof(**heap), DRM_MEM_BUFS);
143 if (!*heap) {
151 blocks->next = blocks->prev = *heap;
153 memset(*heap, 0, sizeof(**heap));
154 (*heap)->filp = (DRMFILE) - 1;
155 (*heap)->next = (*heap)->prev = blocks;
161 void radeon_mem_release(DRMFILE filp, struct mem_block *heap)
165 if (!heap || !heap->next)
168 list_for_each(p, heap) {
174 * 'heap' to stop it being subsumed.
176 list_for_each(p, heap) {
189 void radeon_mem_takedown(struct mem_block **heap)
193 if (!*heap)
196 for (p = (*heap)->next; p != *heap;) {
202 drm_free(*heap, sizeof(**heap), DRM_MEM_DRIVER);
203 *heap = NULL;
225 struct mem_block *block, **heap;
235 heap = get_heap(dev_priv, alloc.region);
236 if (!heap || !*heap)
245 block = alloc_block(*heap, alloc.size, alloc.alignment, filp);
263 struct mem_block *block, **heap;
273 heap = get_heap(dev_priv, memfree.region);
274 if (!heap || !*heap)
277 block = find_block(*heap, memfree.region_offset);
293 struct mem_block **heap;
304 heap = get_heap(dev_priv, initheap.region);
305 if (!heap)
308 if (*heap) {
309 DRM_ERROR("heap already initialized?");
313 return init_heap(heap, initheap.start, initheap.size);