1 #ifndef __NVIF_IOCTL_H__ 2 #define __NVIF_IOCTL_H__ 3 4 struct nvif_ioctl_v0 { 5 __u8 version; 6 #define NVIF_IOCTL_V0_OWNER_NVIF 0x00 7 #define NVIF_IOCTL_V0_OWNER_ANY 0xff 8 __u8 owner; 9 #define NVIF_IOCTL_V0_NOP 0x00 10 #define NVIF_IOCTL_V0_SCLASS 0x01 11 #define NVIF_IOCTL_V0_NEW 0x02 12 #define NVIF_IOCTL_V0_DEL 0x03 13 #define NVIF_IOCTL_V0_MTHD 0x04 14 #define NVIF_IOCTL_V0_RD 0x05 15 #define NVIF_IOCTL_V0_WR 0x06 16 #define NVIF_IOCTL_V0_MAP 0x07 17 #define NVIF_IOCTL_V0_UNMAP 0x08 18 #define NVIF_IOCTL_V0_NTFY_NEW 0x09 19 #define NVIF_IOCTL_V0_NTFY_DEL 0x0a 20 #define NVIF_IOCTL_V0_NTFY_GET 0x0b 21 #define NVIF_IOCTL_V0_NTFY_PUT 0x0c 22 __u8 type; 23 __u8 path_nr; 24 #define NVIF_IOCTL_V0_ROUTE_NVIF 0x00 25 #define NVIF_IOCTL_V0_ROUTE_HIDDEN 0xff 26 __u8 pad04[3]; 27 __u8 route; 28 __u64 token; 29 __u32 path[8]; /* in reverse */ 30 __u8 data[]; /* ioctl data (below) */ 31 }; 32 33 struct nvif_ioctl_nop { 34 }; 35 36 struct nvif_ioctl_sclass_v0 { 37 /* nvif_ioctl ... */ 38 __u8 version; 39 __u8 count; 40 __u8 pad02[6]; 41 __u32 oclass[]; 42 }; 43 44 struct nvif_ioctl_new_v0 { 45 /* nvif_ioctl ... */ 46 __u8 version; 47 __u8 pad01[6]; 48 __u8 route; 49 __u64 token; 50 __u32 handle; 51 /* these class numbers are made up by us, and not nvidia-assigned */ 52 #define NVIF_IOCTL_NEW_V0_PERFMON 0x0000ffff 53 #define NVIF_IOCTL_NEW_V0_PERFDOM 0x0000fffe 54 #define NVIF_IOCTL_NEW_V0_CONTROL 0x0000fffd 55 __u32 oclass; 56 __u8 data[]; /* class data (class.h) */ 57 }; 58 59 struct nvif_ioctl_del { 60 }; 61 62 struct nvif_ioctl_rd_v0 { 63 /* nvif_ioctl ... */ 64 __u8 version; 65 __u8 size; 66 __u8 pad02[2]; 67 __u32 data; 68 __u64 addr; 69 }; 70 71 struct nvif_ioctl_wr_v0 { 72 /* nvif_ioctl ... */ 73 __u8 version; 74 __u8 size; 75 __u8 pad02[2]; 76 __u32 data; 77 __u64 addr; 78 }; 79 80 struct nvif_ioctl_map_v0 { 81 /* nvif_ioctl ... */ 82 __u8 version; 83 __u8 pad01[3]; 84 __u32 length; 85 __u64 handle; 86 }; 87 88 struct nvif_ioctl_unmap { 89 }; 90 91 struct nvif_ioctl_ntfy_new_v0 { 92 /* nvif_ioctl ... */ 93 __u8 version; 94 __u8 event; 95 __u8 index; 96 __u8 pad03[5]; 97 __u8 data[]; /* event request data (event.h) */ 98 }; 99 100 struct nvif_ioctl_ntfy_del_v0 { 101 /* nvif_ioctl ... */ 102 __u8 version; 103 __u8 index; 104 __u8 pad02[6]; 105 }; 106 107 struct nvif_ioctl_ntfy_get_v0 { 108 /* nvif_ioctl ... */ 109 __u8 version; 110 __u8 index; 111 __u8 pad02[6]; 112 }; 113 114 struct nvif_ioctl_ntfy_put_v0 { 115 /* nvif_ioctl ... */ 116 __u8 version; 117 __u8 index; 118 __u8 pad02[6]; 119 }; 120 121 struct nvif_ioctl_mthd_v0 { 122 /* nvif_ioctl ... */ 123 __u8 version; 124 __u8 method; 125 __u8 pad02[6]; 126 __u8 data[]; /* method data (class.h) */ 127 }; 128 129 #endif 130