118 lines · c
1#ifndef __NVIF_IF000C_H__2#define __NVIF_IF000C_H__3struct nvif_vmm_v0 {4 __u8 version;5 __u8 page_nr;6#define NVIF_VMM_V0_TYPE_UNMANAGED 0x007#define NVIF_VMM_V0_TYPE_MANAGED 0x018#define NVIF_VMM_V0_TYPE_RAW 0x029 __u8 type;10 __u8 pad03[5];11 __u64 addr;12 __u64 size;13 __u8 data[];14};15 16#define NVIF_VMM_V0_PAGE 0x0017#define NVIF_VMM_V0_GET 0x0118#define NVIF_VMM_V0_PUT 0x0219#define NVIF_VMM_V0_MAP 0x0320#define NVIF_VMM_V0_UNMAP 0x0421#define NVIF_VMM_V0_PFNMAP 0x0522#define NVIF_VMM_V0_PFNCLR 0x0623#define NVIF_VMM_V0_RAW 0x0724#define NVIF_VMM_V0_MTHD(i) ((i) + 0x80)25 26struct nvif_vmm_page_v0 {27 __u8 version;28 __u8 index;29 __u8 shift;30 __u8 sparse;31 __u8 vram;32 __u8 host;33 __u8 comp;34 __u8 pad07[1];35};36 37struct nvif_vmm_get_v0 {38 __u8 version;39#define NVIF_VMM_GET_V0_ADDR 0x0040#define NVIF_VMM_GET_V0_PTES 0x0141#define NVIF_VMM_GET_V0_LAZY 0x0242 __u8 type;43 __u8 sparse;44 __u8 page;45 __u8 align;46 __u8 pad05[3];47 __u64 size;48 __u64 addr;49};50 51struct nvif_vmm_put_v0 {52 __u8 version;53 __u8 pad01[7];54 __u64 addr;55};56 57struct nvif_vmm_map_v0 {58 __u8 version;59 __u8 pad01[7];60 __u64 addr;61 __u64 size;62 __u64 memory;63 __u64 offset;64 __u8 data[];65};66 67struct nvif_vmm_unmap_v0 {68 __u8 version;69 __u8 pad01[7];70 __u64 addr;71};72 73struct nvif_vmm_raw_v0 {74 __u8 version;75#define NVIF_VMM_RAW_V0_GET 0x076#define NVIF_VMM_RAW_V0_PUT 0x177#define NVIF_VMM_RAW_V0_MAP 0x278#define NVIF_VMM_RAW_V0_UNMAP 0x379#define NVIF_VMM_RAW_V0_SPARSE 0x480 __u8 op;81 __u8 sparse;82 __u8 ref;83 __u8 shift;84 __u32 argc;85 __u8 pad01[7];86 __u64 addr;87 __u64 size;88 __u64 offset;89 __u64 memory;90 __u64 argv;91};92 93struct nvif_vmm_pfnmap_v0 {94 __u8 version;95 __u8 page;96 __u8 pad02[6];97 __u64 addr;98 __u64 size;99#define NVIF_VMM_PFNMAP_V0_ADDR 0xfffffffffffff000ULL100#define NVIF_VMM_PFNMAP_V0_ADDR_SHIFT 12101#define NVIF_VMM_PFNMAP_V0_APER 0x00000000000000f0ULL102#define NVIF_VMM_PFNMAP_V0_HOST 0x0000000000000000ULL103#define NVIF_VMM_PFNMAP_V0_VRAM 0x0000000000000010ULL104#define NVIF_VMM_PFNMAP_V0_A 0x0000000000000004ULL105#define NVIF_VMM_PFNMAP_V0_W 0x0000000000000002ULL106#define NVIF_VMM_PFNMAP_V0_V 0x0000000000000001ULL107#define NVIF_VMM_PFNMAP_V0_NONE 0x0000000000000000ULL108 __u64 phys[];109};110 111struct nvif_vmm_pfnclr_v0 {112 __u8 version;113 __u8 pad01[7];114 __u64 addr;115 __u64 size;116};117#endif118