• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 #ifndef __NOUVEAU_MM_H__
2 #define __NOUVEAU_MM_H__
3 
4 union nouveau_bo_config;
5 struct nouveau_mman;
6 
7 /* Since a resource can be migrated, we need to decouple allocations from
8  * them. This struct is linked with fences for delayed freeing of allocs.
9  */
10 struct nouveau_mm_allocation {
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                   union nouveau_bo_config *);
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__
33