| #ifndef __NOUVEAU_MM_H__ |
| #define __NOUVEAU_MM_H__ |
| |
| union nouveau_bo_config; |
| struct nouveau_mman; |
| |
| /* Since a resource can be migrated, we need to decouple allocations from |
| * them. This struct is linked with fences for delayed freeing of allocs. |
| */ |
| struct nouveau_mm_allocation { |
| struct nouveau_mm_allocation *next; |
| void *priv; |
| uint32_t offset; |
| }; |
| |
| extern struct nouveau_mman * |
| nouveau_mm_create(struct nouveau_device *, uint32_t domain, |
| union nouveau_bo_config *); |
| |
| extern void |
| nouveau_mm_destroy(struct nouveau_mman *); |
| |
| extern struct nouveau_mm_allocation * |
| nouveau_mm_allocate(struct nouveau_mman *, uint32_t size, |
| struct nouveau_bo **, uint32_t *offset); |
| |
| extern void |
| nouveau_mm_free(struct nouveau_mm_allocation *); |
| |
| extern void |
| nouveau_mm_free_work(void *); |
| |
| #endif // __NOUVEAU_MM_H__ |