Commit | Line | Data |
---|---|---|
806a7335 BS |
1 | #ifndef __NVIF_IF000C_H__ |
2 | #define __NVIF_IF000C_H__ | |
920d2b5e BS |
3 | struct nvif_vmm_v0 { |
4 | __u8 version; | |
5 | __u8 page_nr; | |
2606f291 BS |
6 | __u8 managed; |
7 | __u8 pad03[5]; | |
920d2b5e BS |
8 | __u64 addr; |
9 | __u64 size; | |
10 | __u8 data[]; | |
11 | }; | |
12 | ||
13 | #define NVIF_VMM_V0_PAGE 0x00 | |
14 | #define NVIF_VMM_V0_GET 0x01 | |
15 | #define NVIF_VMM_V0_PUT 0x02 | |
16 | #define NVIF_VMM_V0_MAP 0x03 | |
17 | #define NVIF_VMM_V0_UNMAP 0x04 | |
a5ff307f BS |
18 | #define NVIF_VMM_V0_PFNMAP 0x05 |
19 | #define NVIF_VMM_V0_PFNCLR 0x06 | |
71871aa6 | 20 | #define NVIF_VMM_V0_MTHD(i) ((i) + 0x80) |
920d2b5e BS |
21 | |
22 | struct nvif_vmm_page_v0 { | |
23 | __u8 version; | |
24 | __u8 index; | |
25 | __u8 shift; | |
26 | __u8 sparse; | |
27 | __u8 vram; | |
28 | __u8 host; | |
29 | __u8 comp; | |
30 | __u8 pad07[1]; | |
31 | }; | |
32 | ||
33 | struct nvif_vmm_get_v0 { | |
34 | __u8 version; | |
35 | #define NVIF_VMM_GET_V0_ADDR 0x00 | |
36 | #define NVIF_VMM_GET_V0_PTES 0x01 | |
37 | #define NVIF_VMM_GET_V0_LAZY 0x02 | |
38 | __u8 type; | |
39 | __u8 sparse; | |
40 | __u8 page; | |
41 | __u8 align; | |
42 | __u8 pad05[3]; | |
43 | __u64 size; | |
44 | __u64 addr; | |
45 | }; | |
46 | ||
47 | struct nvif_vmm_put_v0 { | |
48 | __u8 version; | |
49 | __u8 pad01[7]; | |
50 | __u64 addr; | |
51 | }; | |
52 | ||
53 | struct nvif_vmm_map_v0 { | |
54 | __u8 version; | |
55 | __u8 pad01[7]; | |
56 | __u64 addr; | |
57 | __u64 size; | |
58 | __u64 memory; | |
59 | __u64 offset; | |
60 | __u8 data[]; | |
61 | }; | |
62 | ||
63 | struct nvif_vmm_unmap_v0 { | |
64 | __u8 version; | |
65 | __u8 pad01[7]; | |
66 | __u64 addr; | |
67 | }; | |
a5ff307f BS |
68 | |
69 | struct nvif_vmm_pfnmap_v0 { | |
70 | __u8 version; | |
71 | __u8 page; | |
72 | __u8 pad02[6]; | |
73 | __u64 addr; | |
74 | __u64 size; | |
75 | #define NVIF_VMM_PFNMAP_V0_ADDR 0xfffffffffffff000ULL | |
76 | #define NVIF_VMM_PFNMAP_V0_ADDR_SHIFT 12 | |
77 | #define NVIF_VMM_PFNMAP_V0_APER 0x00000000000000f0ULL | |
78 | #define NVIF_VMM_PFNMAP_V0_HOST 0x0000000000000000ULL | |
79 | #define NVIF_VMM_PFNMAP_V0_VRAM 0x0000000000000010ULL | |
80 | #define NVIF_VMM_PFNMAP_V0_W 0x0000000000000002ULL | |
81 | #define NVIF_VMM_PFNMAP_V0_V 0x0000000000000001ULL | |
82 | #define NVIF_VMM_PFNMAP_V0_NONE 0x0000000000000000ULL | |
83 | __u64 phys[]; | |
84 | }; | |
85 | ||
86 | struct nvif_vmm_pfnclr_v0 { | |
87 | __u8 version; | |
88 | __u8 pad01[7]; | |
89 | __u64 addr; | |
90 | __u64 size; | |
91 | }; | |
806a7335 | 92 | #endif |