summaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmm.h
blob: 3222acacb4b3647d9ac453b8772adb6db0030748 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#ifndef __NVKM_VMM_H__
#define __NVKM_VMM_H__
#include "priv.h"

struct nvkm_vmm_page {
	u8 shift;
#define NVKM_VMM_PAGE_COMP                                                 0x01
	u8 type;
};

struct nvkm_vmm_func {
	void *(*dtor)(struct nvkm_vmm *);

	const struct nvkm_vmm_page *(*page)(struct nvkm_vmm *);
	u64 page_block;
};

int nvkm_vmm_ctor(const struct nvkm_vmm_func *, struct nvkm_mmu *,
		  int vma_bits, u64 addr, u64 size, struct lock_class_key *,
		  struct nvkm_vmm *vmm);
void *nvkm_vmm_dtor(struct nvkm_vmm *);

struct nvkm_vmm_user {
	int (*ctor)(struct nvkm_mmu *, u64 addr, u64 size, void *args, u32 argc,
		    struct lock_class_key *, struct nvkm_vmm **);
};
#endif