Home | History | Annotate | Download | only in nouveau
      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    struct nouveau_mm_allocation *next;
     12    void *priv;
     13    uint32_t offset;
     14 };
     15 
     16 extern struct nouveau_mman *
     17 nouveau_mm_create(struct nouveau_device *, uint32_t domain,
     18                   union nouveau_bo_config *);
     19 
     20 extern void
     21 nouveau_mm_destroy(struct nouveau_mman *);
     22 
     23 extern struct nouveau_mm_allocation *
     24 nouveau_mm_allocate(struct nouveau_mman *, uint32_t size,
     25                     struct nouveau_bo **, uint32_t *offset);
     26 
     27 extern void
     28 nouveau_mm_free(struct nouveau_mm_allocation *);
     29 
     30 extern void
     31 nouveau_mm_free_work(void *);
     32 
     33 #endif // __NOUVEAU_MM_H__
     34