]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/blob - drivers/gpu/drm/nouveau/include/nvif/ioctl.h
drm/nouveau/core/object: allow arguments to be passed to map function
[mirror_ubuntu-bionic-kernel.git] / drivers / gpu / drm / nouveau / include / nvif / ioctl.h
1 #ifndef __NVIF_IOCTL_H__
2 #define __NVIF_IOCTL_H__
3
4 #define NVIF_VERSION_LATEST 0x0000000000000100ULL
5
6 struct nvif_ioctl_v0 {
7 __u8 version;
8 #define NVIF_IOCTL_V0_NOP 0x00
9 #define NVIF_IOCTL_V0_SCLASS 0x01
10 #define NVIF_IOCTL_V0_NEW 0x02
11 #define NVIF_IOCTL_V0_DEL 0x03
12 #define NVIF_IOCTL_V0_MTHD 0x04
13 #define NVIF_IOCTL_V0_RD 0x05
14 #define NVIF_IOCTL_V0_WR 0x06
15 #define NVIF_IOCTL_V0_MAP 0x07
16 #define NVIF_IOCTL_V0_UNMAP 0x08
17 #define NVIF_IOCTL_V0_NTFY_NEW 0x09
18 #define NVIF_IOCTL_V0_NTFY_DEL 0x0a
19 #define NVIF_IOCTL_V0_NTFY_GET 0x0b
20 #define NVIF_IOCTL_V0_NTFY_PUT 0x0c
21 __u8 type;
22 __u8 pad02[4];
23 #define NVIF_IOCTL_V0_OWNER_NVIF 0x00
24 #define NVIF_IOCTL_V0_OWNER_ANY 0xff
25 __u8 owner;
26 #define NVIF_IOCTL_V0_ROUTE_NVIF 0x00
27 #define NVIF_IOCTL_V0_ROUTE_HIDDEN 0xff
28 __u8 route;
29 __u64 token;
30 __u64 object;
31 __u8 data[]; /* ioctl data (below) */
32 };
33
34 struct nvif_ioctl_nop_v0 {
35 __u64 version;
36 };
37
38 struct nvif_ioctl_sclass_v0 {
39 /* nvif_ioctl ... */
40 __u8 version;
41 __u8 count;
42 __u8 pad02[6];
43 struct nvif_ioctl_sclass_oclass_v0 {
44 __s32 oclass;
45 __s16 minver;
46 __s16 maxver;
47 } oclass[];
48 };
49
50 struct nvif_ioctl_new_v0 {
51 /* nvif_ioctl ... */
52 __u8 version;
53 __u8 pad01[6];
54 __u8 route;
55 __u64 token;
56 __u64 object;
57 __u32 handle;
58 __s32 oclass;
59 __u8 data[]; /* class data (class.h) */
60 };
61
62 struct nvif_ioctl_del {
63 };
64
65 struct nvif_ioctl_rd_v0 {
66 /* nvif_ioctl ... */
67 __u8 version;
68 __u8 size;
69 __u8 pad02[2];
70 __u32 data;
71 __u64 addr;
72 };
73
74 struct nvif_ioctl_wr_v0 {
75 /* nvif_ioctl ... */
76 __u8 version;
77 __u8 size;
78 __u8 pad02[2];
79 __u32 data;
80 __u64 addr;
81 };
82
83 struct nvif_ioctl_map_v0 {
84 /* nvif_ioctl ... */
85 __u8 version;
86 #define NVIF_IOCTL_MAP_V0_IO 0x00
87 #define NVIF_IOCTL_MAP_V0_VA 0x01
88 __u8 type;
89 __u8 pad02[6];
90 __u64 handle;
91 __u64 length;
92 __u8 data[];
93 };
94
95 struct nvif_ioctl_unmap {
96 };
97
98 struct nvif_ioctl_ntfy_new_v0 {
99 /* nvif_ioctl ... */
100 __u8 version;
101 __u8 event;
102 __u8 index;
103 __u8 pad03[5];
104 __u8 data[]; /* event request data (event.h) */
105 };
106
107 struct nvif_ioctl_ntfy_del_v0 {
108 /* nvif_ioctl ... */
109 __u8 version;
110 __u8 index;
111 __u8 pad02[6];
112 };
113
114 struct nvif_ioctl_ntfy_get_v0 {
115 /* nvif_ioctl ... */
116 __u8 version;
117 __u8 index;
118 __u8 pad02[6];
119 };
120
121 struct nvif_ioctl_ntfy_put_v0 {
122 /* nvif_ioctl ... */
123 __u8 version;
124 __u8 index;
125 __u8 pad02[6];
126 };
127
128 struct nvif_ioctl_mthd_v0 {
129 /* nvif_ioctl ... */
130 __u8 version;
131 __u8 method;
132 __u8 pad02[6];
133 __u8 data[]; /* method data (class.h) */
134 };
135
136 #endif