Training courses
Kernel and Embedded Linux
Bootlin training courses
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159
/* $NetBSD: ioctl.h,v 1.4 2018/08/27 14:54:32 riastradh Exp $ */ #ifndef __NVIF_IOCTL_H__ #define __NVIF_IOCTL_H__ #define NVIF_VERSION_LATEST 0x0000000000000000ULL struct nvif_ioctl_v0 { __u8 version; #define NVIF_IOCTL_V0_NOP 0x00 #define NVIF_IOCTL_V0_SCLASS 0x01 #define NVIF_IOCTL_V0_NEW 0x02 #define NVIF_IOCTL_V0_DEL 0x03 #define NVIF_IOCTL_V0_MTHD 0x04 #define NVIF_IOCTL_V0_RD 0x05 #define NVIF_IOCTL_V0_WR 0x06 #define NVIF_IOCTL_V0_MAP 0x07 #define NVIF_IOCTL_V0_UNMAP 0x08 #define NVIF_IOCTL_V0_NTFY_NEW 0x09 #define NVIF_IOCTL_V0_NTFY_DEL 0x0a #define NVIF_IOCTL_V0_NTFY_GET 0x0b #define NVIF_IOCTL_V0_NTFY_PUT 0x0c #ifdef __NetBSD__ /* XXX Kludge for NetBSD kernel-only use. */ #define NVIF_IOCTL_V0_MAP_NETBSD 0x0d #endif __u8 type; __u8 pad02[4]; #define NVIF_IOCTL_V0_OWNER_NVIF 0x00 #define NVIF_IOCTL_V0_OWNER_ANY 0xff __u8 owner; #define NVIF_IOCTL_V0_ROUTE_NVIF 0x00 #define NVIF_IOCTL_V0_ROUTE_HIDDEN 0xff __u8 route; __u64 token; __u64 object; __u8 data[]; /* ioctl data (below) */ }; struct nvif_ioctl_nop_v0 { __u64 version; }; struct nvif_ioctl_sclass_v0 { /* nvif_ioctl ... */ __u8 version; __u8 count; __u8 pad02[6]; struct nvif_ioctl_sclass_oclass_v0 { __s32 oclass; __s16 minver; __s16 maxver; } oclass[]; }; struct nvif_ioctl_new_v0 { /* nvif_ioctl ... */ __u8 version; __u8 pad01[6]; __u8 route; __u64 token; __u64 object; __u32 handle; /* these class numbers are made up by us, and not nvidia-assigned */ #define NVIF_IOCTL_NEW_V0_CONTROL -1 #define NVIF_IOCTL_NEW_V0_PERFMON -2 #define NVIF_IOCTL_NEW_V0_PERFDOM -3 #define NVIF_IOCTL_NEW_V0_SW_NV04 -4 #define NVIF_IOCTL_NEW_V0_SW_NV10 -5 #define NVIF_IOCTL_NEW_V0_SW_NV50 -6 #define NVIF_IOCTL_NEW_V0_SW_GF100 -7 __s32 oclass; __u8 data[]; /* class data (class.h) */ }; struct nvif_ioctl_del { }; struct nvif_ioctl_rd_v0 { /* nvif_ioctl ... */ __u8 version; __u8 size; __u8 pad02[2]; __u32 data; __u64 addr; }; struct nvif_ioctl_wr_v0 { /* nvif_ioctl ... */ __u8 version; __u8 size; __u8 pad02[2]; __u32 data; __u64 addr; }; struct nvif_ioctl_map_v0 { /* nvif_ioctl ... */ __u8 version; __u8 pad01[3]; __u32 length; __u64 handle; }; #ifdef __NetBSD__ /* XXX Kludge for NetBSD kernel-only use. */ #include <sys/bus.h> struct nvif_ioctl_map_netbsd_v0 { /* nvif_ioctl ... */ __u8 version; __u8 pad01[3]; bus_space_tag_t tag; __u32 length; __u64 handle; }; #endif struct nvif_ioctl_unmap { }; struct nvif_ioctl_ntfy_new_v0 { /* nvif_ioctl ... */ __u8 version; __u8 event; __u8 index; __u8 pad03[5]; __u8 data[]; /* event request data (event.h) */ }; struct nvif_ioctl_ntfy_del_v0 { /* nvif_ioctl ... */ __u8 version; __u8 index; __u8 pad02[6]; }; struct nvif_ioctl_ntfy_get_v0 { /* nvif_ioctl ... */ __u8 version; __u8 index; __u8 pad02[6]; }; struct nvif_ioctl_ntfy_put_v0 { /* nvif_ioctl ... */ __u8 version; __u8 index; __u8 pad02[6]; }; struct nvif_ioctl_mthd_v0 { /* nvif_ioctl ... */ __u8 version; __u8 method; __u8 pad02[6]; __u8 data[]; /* method data (class.h) */ }; #endif