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