1*c83c4097SBen Skeggs #ifndef __NVKM_UMEM_H__ 2*c83c4097SBen Skeggs #define __NVKM_UMEM_H__ 3*c83c4097SBen Skeggs #define nvkm_umem(p) container_of((p), struct nvkm_umem, object) 4*c83c4097SBen Skeggs #include <core/object.h> 5*c83c4097SBen Skeggs #include "mem.h" 6*c83c4097SBen Skeggs 7*c83c4097SBen Skeggs struct nvkm_umem { 8*c83c4097SBen Skeggs struct nvkm_object object; 9*c83c4097SBen Skeggs struct nvkm_mmu *mmu; 10*c83c4097SBen Skeggs u8 type:8; 11*c83c4097SBen Skeggs bool mappable:1; 12*c83c4097SBen Skeggs bool io:1; 13*c83c4097SBen Skeggs 14*c83c4097SBen Skeggs struct nvkm_memory *memory; 15*c83c4097SBen Skeggs struct list_head head; 16*c83c4097SBen Skeggs 17*c83c4097SBen Skeggs union { 18*c83c4097SBen Skeggs struct nvkm_vma *bar; 19*c83c4097SBen Skeggs void *map; 20*c83c4097SBen Skeggs }; 21*c83c4097SBen Skeggs }; 22*c83c4097SBen Skeggs 23*c83c4097SBen Skeggs int nvkm_umem_new(const struct nvkm_oclass *, void *argv, u32 argc, 24*c83c4097SBen Skeggs struct nvkm_object **); 25*c83c4097SBen Skeggs #endif 26