Merge remote branch 'origin/master' into pipe-video
[mesa.git] / src / gallium / drivers / nouveau / nouveau_mm.h
1 #ifndef __NOUVEAU_MM_H__
2 #define __NOUVEAU_MM_H__
3
4 struct nouveau_mman;
5
6 /* Since a resource can be migrated, we need to decouple allocations from
7 * them. This struct is linked with fences for delayed freeing of allocs.
8 */
9 struct nouveau_mm_allocation {
10 struct nouveau_mm_allocation *next;
11 void *priv;
12 uint32_t offset;
13 };
14
15 extern struct nouveau_mman *
16 nouveau_mm_create(struct nouveau_device *, uint32_t domain,
17 uint32_t storage_type);
18
19 extern void
20 nouveau_mm_destroy(struct nouveau_mman *);
21
22 extern struct nouveau_mm_allocation *
23 nouveau_mm_allocate(struct nouveau_mman *, uint32_t size,
24 struct nouveau_bo **, uint32_t *offset);
25
26 extern void
27 nouveau_mm_free(struct nouveau_mm_allocation *);
28
29 extern void
30 nouveau_mm_free_work(void *);
31
32 #endif // __NOUVEAU_MM_H__