Loading...
1/* SPDX-License-Identifier: MIT */
2#ifndef __NVIF_IOCTL_H__
3#define __NVIF_IOCTL_H__
4
5#define NVIF_VERSION_LATEST 0x0000000000000100ULL
6
7struct nvif_ioctl_v0 {
8 __u8 version;
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 pad02[4];
24#define NVIF_IOCTL_V0_OWNER_NVIF 0x00
25#define NVIF_IOCTL_V0_OWNER_ANY 0xff
26 __u8 owner;
27#define NVIF_IOCTL_V0_ROUTE_NVIF 0x00
28#define NVIF_IOCTL_V0_ROUTE_HIDDEN 0xff
29 __u8 route;
30 __u64 token;
31 __u64 object;
32 __u8 data[]; /* ioctl data (below) */
33};
34
35struct nvif_ioctl_nop_v0 {
36 __u64 version;
37};
38
39struct nvif_ioctl_sclass_v0 {
40 /* nvif_ioctl ... */
41 __u8 version;
42 __u8 count;
43 __u8 pad02[6];
44 struct nvif_ioctl_sclass_oclass_v0 {
45 __s32 oclass;
46 __s16 minver;
47 __s16 maxver;
48 } oclass[];
49};
50
51struct nvif_ioctl_new_v0 {
52 /* nvif_ioctl ... */
53 __u8 version;
54 __u8 pad01[6];
55 __u8 route;
56 __u64 token;
57 __u64 object;
58 __u32 handle;
59 __s32 oclass;
60 __u8 data[]; /* class data (class.h) */
61};
62
63struct nvif_ioctl_del {
64};
65
66struct nvif_ioctl_rd_v0 {
67 /* nvif_ioctl ... */
68 __u8 version;
69 __u8 size;
70 __u8 pad02[2];
71 __u32 data;
72 __u64 addr;
73};
74
75struct nvif_ioctl_wr_v0 {
76 /* nvif_ioctl ... */
77 __u8 version;
78 __u8 size;
79 __u8 pad02[2];
80 __u32 data;
81 __u64 addr;
82};
83
84struct nvif_ioctl_map_v0 {
85 /* nvif_ioctl ... */
86 __u8 version;
87#define NVIF_IOCTL_MAP_V0_IO 0x00
88#define NVIF_IOCTL_MAP_V0_VA 0x01
89 __u8 type;
90 __u8 pad02[6];
91 __u64 handle;
92 __u64 length;
93 __u8 data[];
94};
95
96struct nvif_ioctl_unmap {
97};
98
99struct nvif_ioctl_ntfy_new_v0 {
100 /* nvif_ioctl ... */
101 __u8 version;
102 __u8 event;
103 __u8 index;
104 __u8 pad03[5];
105 __u8 data[]; /* event request data (event.h) */
106};
107
108struct nvif_ioctl_ntfy_del_v0 {
109 /* nvif_ioctl ... */
110 __u8 version;
111 __u8 index;
112 __u8 pad02[6];
113};
114
115struct nvif_ioctl_ntfy_get_v0 {
116 /* nvif_ioctl ... */
117 __u8 version;
118 __u8 index;
119 __u8 pad02[6];
120};
121
122struct nvif_ioctl_ntfy_put_v0 {
123 /* nvif_ioctl ... */
124 __u8 version;
125 __u8 index;
126 __u8 pad02[6];
127};
128
129struct nvif_ioctl_mthd_v0 {
130 /* nvif_ioctl ... */
131 __u8 version;
132 __u8 method;
133 __u8 pad02[6];
134 __u8 data[]; /* method data (class.h) */
135};
136
137#endif
1/* SPDX-License-Identifier: MIT */
2#ifndef __NVIF_IOCTL_H__
3#define __NVIF_IOCTL_H__
4
5#define NVIF_VERSION_LATEST 0x0000000000000100ULL
6
7struct nvif_ioctl_v0 {
8 __u8 version;
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 __u8 type;
19 __u8 pad02[4];
20#define NVIF_IOCTL_V0_OWNER_NVIF 0x00
21#define NVIF_IOCTL_V0_OWNER_ANY 0xff
22 __u8 owner;
23#define NVIF_IOCTL_V0_ROUTE_NVIF 0x00
24#define NVIF_IOCTL_V0_ROUTE_HIDDEN 0xff
25 __u8 route;
26 __u64 token;
27 __u64 object;
28 __u8 data[]; /* ioctl data (below) */
29};
30
31struct nvif_ioctl_nop_v0 {
32 __u64 version;
33};
34
35struct nvif_ioctl_sclass_v0 {
36 /* nvif_ioctl ... */
37 __u8 version;
38 __u8 count;
39 __u8 pad02[6];
40 struct nvif_ioctl_sclass_oclass_v0 {
41 __s32 oclass;
42 __s16 minver;
43 __s16 maxver;
44 } oclass[];
45};
46
47struct nvif_ioctl_new_v0 {
48 /* nvif_ioctl ... */
49 __u8 version;
50 __u8 pad01[6];
51 __u8 route;
52 __u64 token;
53 __u64 object;
54 __u32 handle;
55 __s32 oclass;
56 __u8 data[]; /* class data (class.h) */
57};
58
59struct nvif_ioctl_del {
60};
61
62struct nvif_ioctl_mthd_v0 {
63 /* nvif_ioctl ... */
64 __u8 version;
65 __u8 method;
66 __u8 pad02[6];
67 __u8 data[]; /* method data (class.h) */
68};
69
70struct nvif_ioctl_rd_v0 {
71 /* nvif_ioctl ... */
72 __u8 version;
73 __u8 size;
74 __u8 pad02[2];
75 __u32 data;
76 __u64 addr;
77};
78
79struct nvif_ioctl_wr_v0 {
80 /* nvif_ioctl ... */
81 __u8 version;
82 __u8 size;
83 __u8 pad02[2];
84 __u32 data;
85 __u64 addr;
86};
87
88struct nvif_ioctl_map_v0 {
89 /* nvif_ioctl ... */
90 __u8 version;
91#define NVIF_IOCTL_MAP_V0_IO 0x00
92#define NVIF_IOCTL_MAP_V0_VA 0x01
93 __u8 type;
94 __u8 pad02[6];
95 __u64 handle;
96 __u64 length;
97 __u8 data[];
98};
99
100struct nvif_ioctl_unmap {
101};
102#endif