xref: /netbsd-src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/mmu/umem.h (revision 7649e88fcfe6a7c92de68bd5e592dec3e35224fb)
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