| #ifndef __NOUVEAU_VMA_H__ |
| #define __NOUVEAU_VMA_H__ |
| #include <nvif/vmm.h> |
| struct nouveau_bo; |
| struct nouveau_mem; |
| |
| struct nouveau_vma { |
| struct nouveau_vmm *vmm; |
| int refs; |
| struct list_head head; |
| u64 addr; |
| |
| struct nouveau_mem *mem; |
| }; |
| |
| struct nouveau_vma *nouveau_vma_find(struct nouveau_bo *, struct nouveau_vmm *); |
| int nouveau_vma_new(struct nouveau_bo *, struct nouveau_vmm *, |
| struct nouveau_vma **); |
| void nouveau_vma_del(struct nouveau_vma **); |
| int nouveau_vma_map(struct nouveau_vma *, struct nouveau_mem *); |
| void nouveau_vma_unmap(struct nouveau_vma *); |
| |
| struct nouveau_vmm { |
| struct nouveau_cli *cli; |
| struct nvif_vmm vmm; |
| struct nvkm_vm *vm; |
| }; |
| |
| int nouveau_vmm_init(struct nouveau_cli *, s32 oclass, struct nouveau_vmm *); |
| void nouveau_vmm_fini(struct nouveau_vmm *); |
| #endif |