.. | .. |
---|
3 | 3 | struct nvif_vmm_v0 { |
---|
4 | 4 | __u8 version; |
---|
5 | 5 | __u8 page_nr; |
---|
6 | | - __u8 pad02[6]; |
---|
| 6 | + __u8 managed; |
---|
| 7 | + __u8 pad03[5]; |
---|
7 | 8 | __u64 addr; |
---|
8 | 9 | __u64 size; |
---|
9 | 10 | __u8 data[]; |
---|
.. | .. |
---|
14 | 15 | #define NVIF_VMM_V0_PUT 0x02 |
---|
15 | 16 | #define NVIF_VMM_V0_MAP 0x03 |
---|
16 | 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) |
---|
17 | 21 | |
---|
18 | 22 | struct nvif_vmm_page_v0 { |
---|
19 | 23 | __u8 version; |
---|
.. | .. |
---|
61 | 65 | __u8 pad01[7]; |
---|
62 | 66 | __u64 addr; |
---|
63 | 67 | }; |
---|
| 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 | +}; |
---|
64 | 92 | #endif |
---|