Home | History | Annotate | Line # | Download | only in mmu
      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