1 /* $NetBSD: umem.h,v 1.3 2021/12/19 10:51:58 riastradh Exp $ */ 2 3 #ifndef __NVKM_UMEM_H__ 4 #define __NVKM_UMEM_H__ 5 #define nvkm_umem(p) container_of((p), struct nvkm_umem, object) 6 #include <core/object.h> 7 #include "mem.h" 8 9 struct nvkm_umem { 10 struct nvkm_object object; 11 struct nvkm_mmu *mmu; 12 u8 type:8; 13 bool priv:1; 14 bool mappable:1; 15 bool io:1; 16 17 struct nvkm_memory *memory; 18 struct list_head head; 19 20 union { 21 struct nvkm_vma *bar; 22 void *map; 23 }; 24 #ifdef __NetBSD__ 25 bus_dma_tag_t dmat; 26 bus_size_t size; 27 #endif 28 }; 29 30 int nvkm_umem_new(const struct nvkm_oclass *, void *argv, u32 argc, 31 struct nvkm_object **); 32 #endif 33