xref: /linux/drivers/gpu/drm/nouveau/include/nvif/if000c.h (revision 3ad0876554cafa368f574d4d408468510543e9ff)
1 #ifndef __NVIF_IF000C_H__
2 #define __NVIF_IF000C_H__
3 struct nvif_vmm_v0 {
4 	__u8  version;
5 	__u8  page_nr;
6 	__u8  pad02[6];
7 	__u64 addr;
8 	__u64 size;
9 	__u8  data[];
10 };
11 
12 #define NVIF_VMM_V0_PAGE                                                   0x00
13 #define NVIF_VMM_V0_GET                                                    0x01
14 #define NVIF_VMM_V0_PUT                                                    0x02
15 #define NVIF_VMM_V0_MAP                                                    0x03
16 #define NVIF_VMM_V0_UNMAP                                                  0x04
17 
18 struct nvif_vmm_page_v0 {
19 	__u8  version;
20 	__u8  index;
21 	__u8  shift;
22 	__u8  sparse;
23 	__u8  vram;
24 	__u8  host;
25 	__u8  comp;
26 	__u8  pad07[1];
27 };
28 
29 struct nvif_vmm_get_v0 {
30 	__u8  version;
31 #define NVIF_VMM_GET_V0_ADDR                                               0x00
32 #define NVIF_VMM_GET_V0_PTES                                               0x01
33 #define NVIF_VMM_GET_V0_LAZY	                                           0x02
34 	__u8  type;
35 	__u8  sparse;
36 	__u8  page;
37 	__u8  align;
38 	__u8  pad05[3];
39 	__u64 size;
40 	__u64 addr;
41 };
42 
43 struct nvif_vmm_put_v0 {
44 	__u8  version;
45 	__u8  pad01[7];
46 	__u64 addr;
47 };
48 
49 struct nvif_vmm_map_v0 {
50 	__u8  version;
51 	__u8  pad01[7];
52 	__u64 addr;
53 	__u64 size;
54 	__u64 memory;
55 	__u64 offset;
56 	__u8  data[];
57 };
58 
59 struct nvif_vmm_unmap_v0 {
60 	__u8  version;
61 	__u8  pad01[7];
62 	__u64 addr;
63 };
64 #endif
65