Loading...
1#ifndef __NVIF_IF000C_H__
2#define __NVIF_IF000C_H__
3struct nvif_vmm_v0 {
4 __u8 version;
5 __u8 page_nr;
6 __u8 managed;
7 __u8 pad03[5];
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
18#define NVIF_VMM_V0_PFNMAP 0x05
19#define NVIF_VMM_V0_PFNCLR 0x06
20#define NVIF_VMM_V0_MTHD(i) ((i) + 0x80)
21
22struct 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
33struct 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
47struct nvif_vmm_put_v0 {
48 __u8 version;
49 __u8 pad01[7];
50 __u64 addr;
51};
52
53struct 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
63struct nvif_vmm_unmap_v0 {
64 __u8 version;
65 __u8 pad01[7];
66 __u64 addr;
67};
68
69struct 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_A 0x0000000000000004ULL
81#define NVIF_VMM_PFNMAP_V0_W 0x0000000000000002ULL
82#define NVIF_VMM_PFNMAP_V0_V 0x0000000000000001ULL
83#define NVIF_VMM_PFNMAP_V0_NONE 0x0000000000000000ULL
84 __u64 phys[];
85};
86
87struct nvif_vmm_pfnclr_v0 {
88 __u8 version;
89 __u8 pad01[7];
90 __u64 addr;
91 __u64 size;
92};
93#endif
1#ifndef __NVIF_IF000C_H__
2#define __NVIF_IF000C_H__
3struct 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
18struct 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
29struct 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
43struct nvif_vmm_put_v0 {
44 __u8 version;
45 __u8 pad01[7];
46 __u64 addr;
47};
48
49struct 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
59struct nvif_vmm_unmap_v0 {
60 __u8 version;
61 __u8 pad01[7];
62 __u64 addr;
63};
64#endif