xref: /aosp_15_r20/bionic/libc/kernel/uapi/drm/vmwgfx_drm.h (revision 8d67ca893c1523eb926b9080dbe4e2ffd2a27ba1)
1*8d67ca89SAndroid Build Coastguard Worker /*
2*8d67ca89SAndroid Build Coastguard Worker  * This file is auto-generated. Modifications will be lost.
3*8d67ca89SAndroid Build Coastguard Worker  *
4*8d67ca89SAndroid Build Coastguard Worker  * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
5*8d67ca89SAndroid Build Coastguard Worker  * for more information.
6*8d67ca89SAndroid Build Coastguard Worker  */
7*8d67ca89SAndroid Build Coastguard Worker #ifndef __VMWGFX_DRM_H__
8*8d67ca89SAndroid Build Coastguard Worker #define __VMWGFX_DRM_H__
9*8d67ca89SAndroid Build Coastguard Worker #include "drm.h"
10*8d67ca89SAndroid Build Coastguard Worker #ifdef __cplusplus
11*8d67ca89SAndroid Build Coastguard Worker extern "C" {
12*8d67ca89SAndroid Build Coastguard Worker #endif
13*8d67ca89SAndroid Build Coastguard Worker #define DRM_VMW_MAX_SURFACE_FACES 6
14*8d67ca89SAndroid Build Coastguard Worker #define DRM_VMW_MAX_MIP_LEVELS 24
15*8d67ca89SAndroid Build Coastguard Worker #define DRM_VMW_GET_PARAM 0
16*8d67ca89SAndroid Build Coastguard Worker #define DRM_VMW_ALLOC_DMABUF 1
17*8d67ca89SAndroid Build Coastguard Worker #define DRM_VMW_ALLOC_BO 1
18*8d67ca89SAndroid Build Coastguard Worker #define DRM_VMW_UNREF_DMABUF 2
19*8d67ca89SAndroid Build Coastguard Worker #define DRM_VMW_HANDLE_CLOSE 2
20*8d67ca89SAndroid Build Coastguard Worker #define DRM_VMW_CURSOR_BYPASS 3
21*8d67ca89SAndroid Build Coastguard Worker #define DRM_VMW_CONTROL_STREAM 4
22*8d67ca89SAndroid Build Coastguard Worker #define DRM_VMW_CLAIM_STREAM 5
23*8d67ca89SAndroid Build Coastguard Worker #define DRM_VMW_UNREF_STREAM 6
24*8d67ca89SAndroid Build Coastguard Worker #define DRM_VMW_CREATE_CONTEXT 7
25*8d67ca89SAndroid Build Coastguard Worker #define DRM_VMW_UNREF_CONTEXT 8
26*8d67ca89SAndroid Build Coastguard Worker #define DRM_VMW_CREATE_SURFACE 9
27*8d67ca89SAndroid Build Coastguard Worker #define DRM_VMW_UNREF_SURFACE 10
28*8d67ca89SAndroid Build Coastguard Worker #define DRM_VMW_REF_SURFACE 11
29*8d67ca89SAndroid Build Coastguard Worker #define DRM_VMW_EXECBUF 12
30*8d67ca89SAndroid Build Coastguard Worker #define DRM_VMW_GET_3D_CAP 13
31*8d67ca89SAndroid Build Coastguard Worker #define DRM_VMW_FENCE_WAIT 14
32*8d67ca89SAndroid Build Coastguard Worker #define DRM_VMW_FENCE_SIGNALED 15
33*8d67ca89SAndroid Build Coastguard Worker #define DRM_VMW_FENCE_UNREF 16
34*8d67ca89SAndroid Build Coastguard Worker #define DRM_VMW_FENCE_EVENT 17
35*8d67ca89SAndroid Build Coastguard Worker #define DRM_VMW_PRESENT 18
36*8d67ca89SAndroid Build Coastguard Worker #define DRM_VMW_PRESENT_READBACK 19
37*8d67ca89SAndroid Build Coastguard Worker #define DRM_VMW_UPDATE_LAYOUT 20
38*8d67ca89SAndroid Build Coastguard Worker #define DRM_VMW_CREATE_SHADER 21
39*8d67ca89SAndroid Build Coastguard Worker #define DRM_VMW_UNREF_SHADER 22
40*8d67ca89SAndroid Build Coastguard Worker #define DRM_VMW_GB_SURFACE_CREATE 23
41*8d67ca89SAndroid Build Coastguard Worker #define DRM_VMW_GB_SURFACE_REF 24
42*8d67ca89SAndroid Build Coastguard Worker #define DRM_VMW_SYNCCPU 25
43*8d67ca89SAndroid Build Coastguard Worker #define DRM_VMW_CREATE_EXTENDED_CONTEXT 26
44*8d67ca89SAndroid Build Coastguard Worker #define DRM_VMW_GB_SURFACE_CREATE_EXT 27
45*8d67ca89SAndroid Build Coastguard Worker #define DRM_VMW_GB_SURFACE_REF_EXT 28
46*8d67ca89SAndroid Build Coastguard Worker #define DRM_VMW_MSG 29
47*8d67ca89SAndroid Build Coastguard Worker #define DRM_VMW_MKSSTAT_RESET 30
48*8d67ca89SAndroid Build Coastguard Worker #define DRM_VMW_MKSSTAT_ADD 31
49*8d67ca89SAndroid Build Coastguard Worker #define DRM_VMW_MKSSTAT_REMOVE 32
50*8d67ca89SAndroid Build Coastguard Worker #define DRM_VMW_PARAM_NUM_STREAMS 0
51*8d67ca89SAndroid Build Coastguard Worker #define DRM_VMW_PARAM_NUM_FREE_STREAMS 1
52*8d67ca89SAndroid Build Coastguard Worker #define DRM_VMW_PARAM_3D 2
53*8d67ca89SAndroid Build Coastguard Worker #define DRM_VMW_PARAM_HW_CAPS 3
54*8d67ca89SAndroid Build Coastguard Worker #define DRM_VMW_PARAM_FIFO_CAPS 4
55*8d67ca89SAndroid Build Coastguard Worker #define DRM_VMW_PARAM_MAX_FB_SIZE 5
56*8d67ca89SAndroid Build Coastguard Worker #define DRM_VMW_PARAM_FIFO_HW_VERSION 6
57*8d67ca89SAndroid Build Coastguard Worker #define DRM_VMW_PARAM_MAX_SURF_MEMORY 7
58*8d67ca89SAndroid Build Coastguard Worker #define DRM_VMW_PARAM_3D_CAPS_SIZE 8
59*8d67ca89SAndroid Build Coastguard Worker #define DRM_VMW_PARAM_MAX_MOB_MEMORY 9
60*8d67ca89SAndroid Build Coastguard Worker #define DRM_VMW_PARAM_MAX_MOB_SIZE 10
61*8d67ca89SAndroid Build Coastguard Worker #define DRM_VMW_PARAM_SCREEN_TARGET 11
62*8d67ca89SAndroid Build Coastguard Worker #define DRM_VMW_PARAM_DX 12
63*8d67ca89SAndroid Build Coastguard Worker #define DRM_VMW_PARAM_HW_CAPS2 13
64*8d67ca89SAndroid Build Coastguard Worker #define DRM_VMW_PARAM_SM4_1 14
65*8d67ca89SAndroid Build Coastguard Worker #define DRM_VMW_PARAM_SM5 15
66*8d67ca89SAndroid Build Coastguard Worker #define DRM_VMW_PARAM_GL43 16
67*8d67ca89SAndroid Build Coastguard Worker #define DRM_VMW_PARAM_DEVICE_ID 17
68*8d67ca89SAndroid Build Coastguard Worker enum drm_vmw_handle_type {
69*8d67ca89SAndroid Build Coastguard Worker   DRM_VMW_HANDLE_LEGACY = 0,
70*8d67ca89SAndroid Build Coastguard Worker   DRM_VMW_HANDLE_PRIME = 1
71*8d67ca89SAndroid Build Coastguard Worker };
72*8d67ca89SAndroid Build Coastguard Worker struct drm_vmw_getparam_arg {
73*8d67ca89SAndroid Build Coastguard Worker   __u64 value;
74*8d67ca89SAndroid Build Coastguard Worker   __u32 param;
75*8d67ca89SAndroid Build Coastguard Worker   __u32 pad64;
76*8d67ca89SAndroid Build Coastguard Worker };
77*8d67ca89SAndroid Build Coastguard Worker struct drm_vmw_context_arg {
78*8d67ca89SAndroid Build Coastguard Worker   __s32 cid;
79*8d67ca89SAndroid Build Coastguard Worker   __u32 pad64;
80*8d67ca89SAndroid Build Coastguard Worker };
81*8d67ca89SAndroid Build Coastguard Worker struct drm_vmw_surface_create_req {
82*8d67ca89SAndroid Build Coastguard Worker   __u32 flags;
83*8d67ca89SAndroid Build Coastguard Worker   __u32 format;
84*8d67ca89SAndroid Build Coastguard Worker   __u32 mip_levels[DRM_VMW_MAX_SURFACE_FACES];
85*8d67ca89SAndroid Build Coastguard Worker   __u64 size_addr;
86*8d67ca89SAndroid Build Coastguard Worker   __s32 shareable;
87*8d67ca89SAndroid Build Coastguard Worker   __s32 scanout;
88*8d67ca89SAndroid Build Coastguard Worker };
89*8d67ca89SAndroid Build Coastguard Worker struct drm_vmw_surface_arg {
90*8d67ca89SAndroid Build Coastguard Worker   __s32 sid;
91*8d67ca89SAndroid Build Coastguard Worker   enum drm_vmw_handle_type handle_type;
92*8d67ca89SAndroid Build Coastguard Worker };
93*8d67ca89SAndroid Build Coastguard Worker struct drm_vmw_size {
94*8d67ca89SAndroid Build Coastguard Worker   __u32 width;
95*8d67ca89SAndroid Build Coastguard Worker   __u32 height;
96*8d67ca89SAndroid Build Coastguard Worker   __u32 depth;
97*8d67ca89SAndroid Build Coastguard Worker   __u32 pad64;
98*8d67ca89SAndroid Build Coastguard Worker };
99*8d67ca89SAndroid Build Coastguard Worker union drm_vmw_surface_create_arg {
100*8d67ca89SAndroid Build Coastguard Worker   struct drm_vmw_surface_arg rep;
101*8d67ca89SAndroid Build Coastguard Worker   struct drm_vmw_surface_create_req req;
102*8d67ca89SAndroid Build Coastguard Worker };
103*8d67ca89SAndroid Build Coastguard Worker union drm_vmw_surface_reference_arg {
104*8d67ca89SAndroid Build Coastguard Worker   struct drm_vmw_surface_create_req rep;
105*8d67ca89SAndroid Build Coastguard Worker   struct drm_vmw_surface_arg req;
106*8d67ca89SAndroid Build Coastguard Worker };
107*8d67ca89SAndroid Build Coastguard Worker #define DRM_VMW_EXECBUF_VERSION 2
108*8d67ca89SAndroid Build Coastguard Worker #define DRM_VMW_EXECBUF_FLAG_IMPORT_FENCE_FD (1 << 0)
109*8d67ca89SAndroid Build Coastguard Worker #define DRM_VMW_EXECBUF_FLAG_EXPORT_FENCE_FD (1 << 1)
110*8d67ca89SAndroid Build Coastguard Worker struct drm_vmw_execbuf_arg {
111*8d67ca89SAndroid Build Coastguard Worker   __u64 commands;
112*8d67ca89SAndroid Build Coastguard Worker   __u32 command_size;
113*8d67ca89SAndroid Build Coastguard Worker   __u32 throttle_us;
114*8d67ca89SAndroid Build Coastguard Worker   __u64 fence_rep;
115*8d67ca89SAndroid Build Coastguard Worker   __u32 version;
116*8d67ca89SAndroid Build Coastguard Worker   __u32 flags;
117*8d67ca89SAndroid Build Coastguard Worker   __u32 context_handle;
118*8d67ca89SAndroid Build Coastguard Worker   __s32 imported_fence_fd;
119*8d67ca89SAndroid Build Coastguard Worker };
120*8d67ca89SAndroid Build Coastguard Worker struct drm_vmw_fence_rep {
121*8d67ca89SAndroid Build Coastguard Worker   __u32 handle;
122*8d67ca89SAndroid Build Coastguard Worker   __u32 mask;
123*8d67ca89SAndroid Build Coastguard Worker   __u32 seqno;
124*8d67ca89SAndroid Build Coastguard Worker   __u32 passed_seqno;
125*8d67ca89SAndroid Build Coastguard Worker   __s32 fd;
126*8d67ca89SAndroid Build Coastguard Worker   __s32 error;
127*8d67ca89SAndroid Build Coastguard Worker };
128*8d67ca89SAndroid Build Coastguard Worker struct drm_vmw_alloc_bo_req {
129*8d67ca89SAndroid Build Coastguard Worker   __u32 size;
130*8d67ca89SAndroid Build Coastguard Worker   __u32 pad64;
131*8d67ca89SAndroid Build Coastguard Worker };
132*8d67ca89SAndroid Build Coastguard Worker #define drm_vmw_alloc_dmabuf_req drm_vmw_alloc_bo_req
133*8d67ca89SAndroid Build Coastguard Worker struct drm_vmw_bo_rep {
134*8d67ca89SAndroid Build Coastguard Worker   __u64 map_handle;
135*8d67ca89SAndroid Build Coastguard Worker   __u32 handle;
136*8d67ca89SAndroid Build Coastguard Worker   __u32 cur_gmr_id;
137*8d67ca89SAndroid Build Coastguard Worker   __u32 cur_gmr_offset;
138*8d67ca89SAndroid Build Coastguard Worker   __u32 pad64;
139*8d67ca89SAndroid Build Coastguard Worker };
140*8d67ca89SAndroid Build Coastguard Worker #define drm_vmw_dmabuf_rep drm_vmw_bo_rep
141*8d67ca89SAndroid Build Coastguard Worker union drm_vmw_alloc_bo_arg {
142*8d67ca89SAndroid Build Coastguard Worker   struct drm_vmw_alloc_bo_req req;
143*8d67ca89SAndroid Build Coastguard Worker   struct drm_vmw_bo_rep rep;
144*8d67ca89SAndroid Build Coastguard Worker };
145*8d67ca89SAndroid Build Coastguard Worker #define drm_vmw_alloc_dmabuf_arg drm_vmw_alloc_bo_arg
146*8d67ca89SAndroid Build Coastguard Worker struct drm_vmw_rect {
147*8d67ca89SAndroid Build Coastguard Worker   __s32 x;
148*8d67ca89SAndroid Build Coastguard Worker   __s32 y;
149*8d67ca89SAndroid Build Coastguard Worker   __u32 w;
150*8d67ca89SAndroid Build Coastguard Worker   __u32 h;
151*8d67ca89SAndroid Build Coastguard Worker };
152*8d67ca89SAndroid Build Coastguard Worker struct drm_vmw_control_stream_arg {
153*8d67ca89SAndroid Build Coastguard Worker   __u32 stream_id;
154*8d67ca89SAndroid Build Coastguard Worker   __u32 enabled;
155*8d67ca89SAndroid Build Coastguard Worker   __u32 flags;
156*8d67ca89SAndroid Build Coastguard Worker   __u32 color_key;
157*8d67ca89SAndroid Build Coastguard Worker   __u32 handle;
158*8d67ca89SAndroid Build Coastguard Worker   __u32 offset;
159*8d67ca89SAndroid Build Coastguard Worker   __s32 format;
160*8d67ca89SAndroid Build Coastguard Worker   __u32 size;
161*8d67ca89SAndroid Build Coastguard Worker   __u32 width;
162*8d67ca89SAndroid Build Coastguard Worker   __u32 height;
163*8d67ca89SAndroid Build Coastguard Worker   __u32 pitch[3];
164*8d67ca89SAndroid Build Coastguard Worker   __u32 pad64;
165*8d67ca89SAndroid Build Coastguard Worker   struct drm_vmw_rect src;
166*8d67ca89SAndroid Build Coastguard Worker   struct drm_vmw_rect dst;
167*8d67ca89SAndroid Build Coastguard Worker };
168*8d67ca89SAndroid Build Coastguard Worker #define DRM_VMW_CURSOR_BYPASS_ALL (1 << 0)
169*8d67ca89SAndroid Build Coastguard Worker #define DRM_VMW_CURSOR_BYPASS_FLAGS (1)
170*8d67ca89SAndroid Build Coastguard Worker struct drm_vmw_cursor_bypass_arg {
171*8d67ca89SAndroid Build Coastguard Worker   __u32 flags;
172*8d67ca89SAndroid Build Coastguard Worker   __u32 crtc_id;
173*8d67ca89SAndroid Build Coastguard Worker   __s32 xpos;
174*8d67ca89SAndroid Build Coastguard Worker   __s32 ypos;
175*8d67ca89SAndroid Build Coastguard Worker   __s32 xhot;
176*8d67ca89SAndroid Build Coastguard Worker   __s32 yhot;
177*8d67ca89SAndroid Build Coastguard Worker };
178*8d67ca89SAndroid Build Coastguard Worker struct drm_vmw_stream_arg {
179*8d67ca89SAndroid Build Coastguard Worker   __u32 stream_id;
180*8d67ca89SAndroid Build Coastguard Worker   __u32 pad64;
181*8d67ca89SAndroid Build Coastguard Worker };
182*8d67ca89SAndroid Build Coastguard Worker struct drm_vmw_get_3d_cap_arg {
183*8d67ca89SAndroid Build Coastguard Worker   __u64 buffer;
184*8d67ca89SAndroid Build Coastguard Worker   __u32 max_size;
185*8d67ca89SAndroid Build Coastguard Worker   __u32 pad64;
186*8d67ca89SAndroid Build Coastguard Worker };
187*8d67ca89SAndroid Build Coastguard Worker #define DRM_VMW_FENCE_FLAG_EXEC (1 << 0)
188*8d67ca89SAndroid Build Coastguard Worker #define DRM_VMW_FENCE_FLAG_QUERY (1 << 1)
189*8d67ca89SAndroid Build Coastguard Worker #define DRM_VMW_WAIT_OPTION_UNREF (1 << 0)
190*8d67ca89SAndroid Build Coastguard Worker struct drm_vmw_fence_wait_arg {
191*8d67ca89SAndroid Build Coastguard Worker   __u32 handle;
192*8d67ca89SAndroid Build Coastguard Worker   __s32 cookie_valid;
193*8d67ca89SAndroid Build Coastguard Worker   __u64 kernel_cookie;
194*8d67ca89SAndroid Build Coastguard Worker   __u64 timeout_us;
195*8d67ca89SAndroid Build Coastguard Worker   __s32 lazy;
196*8d67ca89SAndroid Build Coastguard Worker   __s32 flags;
197*8d67ca89SAndroid Build Coastguard Worker   __s32 wait_options;
198*8d67ca89SAndroid Build Coastguard Worker   __s32 pad64;
199*8d67ca89SAndroid Build Coastguard Worker };
200*8d67ca89SAndroid Build Coastguard Worker struct drm_vmw_fence_signaled_arg {
201*8d67ca89SAndroid Build Coastguard Worker   __u32 handle;
202*8d67ca89SAndroid Build Coastguard Worker   __u32 flags;
203*8d67ca89SAndroid Build Coastguard Worker   __s32 signaled;
204*8d67ca89SAndroid Build Coastguard Worker   __u32 passed_seqno;
205*8d67ca89SAndroid Build Coastguard Worker   __u32 signaled_flags;
206*8d67ca89SAndroid Build Coastguard Worker   __u32 pad64;
207*8d67ca89SAndroid Build Coastguard Worker };
208*8d67ca89SAndroid Build Coastguard Worker struct drm_vmw_fence_arg {
209*8d67ca89SAndroid Build Coastguard Worker   __u32 handle;
210*8d67ca89SAndroid Build Coastguard Worker   __u32 pad64;
211*8d67ca89SAndroid Build Coastguard Worker };
212*8d67ca89SAndroid Build Coastguard Worker #define DRM_VMW_EVENT_FENCE_SIGNALED 0x80000000
213*8d67ca89SAndroid Build Coastguard Worker struct drm_vmw_event_fence {
214*8d67ca89SAndroid Build Coastguard Worker   struct drm_event base;
215*8d67ca89SAndroid Build Coastguard Worker   __u64 user_data;
216*8d67ca89SAndroid Build Coastguard Worker   __u32 tv_sec;
217*8d67ca89SAndroid Build Coastguard Worker   __u32 tv_usec;
218*8d67ca89SAndroid Build Coastguard Worker };
219*8d67ca89SAndroid Build Coastguard Worker #define DRM_VMW_FE_FLAG_REQ_TIME (1 << 0)
220*8d67ca89SAndroid Build Coastguard Worker struct drm_vmw_fence_event_arg {
221*8d67ca89SAndroid Build Coastguard Worker   __u64 fence_rep;
222*8d67ca89SAndroid Build Coastguard Worker   __u64 user_data;
223*8d67ca89SAndroid Build Coastguard Worker   __u32 handle;
224*8d67ca89SAndroid Build Coastguard Worker   __u32 flags;
225*8d67ca89SAndroid Build Coastguard Worker };
226*8d67ca89SAndroid Build Coastguard Worker struct drm_vmw_present_arg {
227*8d67ca89SAndroid Build Coastguard Worker   __u32 fb_id;
228*8d67ca89SAndroid Build Coastguard Worker   __u32 sid;
229*8d67ca89SAndroid Build Coastguard Worker   __s32 dest_x;
230*8d67ca89SAndroid Build Coastguard Worker   __s32 dest_y;
231*8d67ca89SAndroid Build Coastguard Worker   __u64 clips_ptr;
232*8d67ca89SAndroid Build Coastguard Worker   __u32 num_clips;
233*8d67ca89SAndroid Build Coastguard Worker   __u32 pad64;
234*8d67ca89SAndroid Build Coastguard Worker };
235*8d67ca89SAndroid Build Coastguard Worker struct drm_vmw_present_readback_arg {
236*8d67ca89SAndroid Build Coastguard Worker   __u32 fb_id;
237*8d67ca89SAndroid Build Coastguard Worker   __u32 num_clips;
238*8d67ca89SAndroid Build Coastguard Worker   __u64 clips_ptr;
239*8d67ca89SAndroid Build Coastguard Worker   __u64 fence_rep;
240*8d67ca89SAndroid Build Coastguard Worker };
241*8d67ca89SAndroid Build Coastguard Worker struct drm_vmw_update_layout_arg {
242*8d67ca89SAndroid Build Coastguard Worker   __u32 num_outputs;
243*8d67ca89SAndroid Build Coastguard Worker   __u32 pad64;
244*8d67ca89SAndroid Build Coastguard Worker   __u64 rects;
245*8d67ca89SAndroid Build Coastguard Worker };
246*8d67ca89SAndroid Build Coastguard Worker enum drm_vmw_shader_type {
247*8d67ca89SAndroid Build Coastguard Worker   drm_vmw_shader_type_vs = 0,
248*8d67ca89SAndroid Build Coastguard Worker   drm_vmw_shader_type_ps,
249*8d67ca89SAndroid Build Coastguard Worker };
250*8d67ca89SAndroid Build Coastguard Worker struct drm_vmw_shader_create_arg {
251*8d67ca89SAndroid Build Coastguard Worker   enum drm_vmw_shader_type shader_type;
252*8d67ca89SAndroid Build Coastguard Worker   __u32 size;
253*8d67ca89SAndroid Build Coastguard Worker   __u32 buffer_handle;
254*8d67ca89SAndroid Build Coastguard Worker   __u32 shader_handle;
255*8d67ca89SAndroid Build Coastguard Worker   __u64 offset;
256*8d67ca89SAndroid Build Coastguard Worker };
257*8d67ca89SAndroid Build Coastguard Worker struct drm_vmw_shader_arg {
258*8d67ca89SAndroid Build Coastguard Worker   __u32 handle;
259*8d67ca89SAndroid Build Coastguard Worker   __u32 pad64;
260*8d67ca89SAndroid Build Coastguard Worker };
261*8d67ca89SAndroid Build Coastguard Worker enum drm_vmw_surface_flags {
262*8d67ca89SAndroid Build Coastguard Worker   drm_vmw_surface_flag_shareable = (1 << 0),
263*8d67ca89SAndroid Build Coastguard Worker   drm_vmw_surface_flag_scanout = (1 << 1),
264*8d67ca89SAndroid Build Coastguard Worker   drm_vmw_surface_flag_create_buffer = (1 << 2),
265*8d67ca89SAndroid Build Coastguard Worker   drm_vmw_surface_flag_coherent = (1 << 3),
266*8d67ca89SAndroid Build Coastguard Worker };
267*8d67ca89SAndroid Build Coastguard Worker struct drm_vmw_gb_surface_create_req {
268*8d67ca89SAndroid Build Coastguard Worker   __u32 svga3d_flags;
269*8d67ca89SAndroid Build Coastguard Worker   __u32 format;
270*8d67ca89SAndroid Build Coastguard Worker   __u32 mip_levels;
271*8d67ca89SAndroid Build Coastguard Worker   enum drm_vmw_surface_flags drm_surface_flags;
272*8d67ca89SAndroid Build Coastguard Worker   __u32 multisample_count;
273*8d67ca89SAndroid Build Coastguard Worker   __u32 autogen_filter;
274*8d67ca89SAndroid Build Coastguard Worker   __u32 buffer_handle;
275*8d67ca89SAndroid Build Coastguard Worker   __u32 array_size;
276*8d67ca89SAndroid Build Coastguard Worker   struct drm_vmw_size base_size;
277*8d67ca89SAndroid Build Coastguard Worker };
278*8d67ca89SAndroid Build Coastguard Worker struct drm_vmw_gb_surface_create_rep {
279*8d67ca89SAndroid Build Coastguard Worker   __u32 handle;
280*8d67ca89SAndroid Build Coastguard Worker   __u32 backup_size;
281*8d67ca89SAndroid Build Coastguard Worker   __u32 buffer_handle;
282*8d67ca89SAndroid Build Coastguard Worker   __u32 buffer_size;
283*8d67ca89SAndroid Build Coastguard Worker   __u64 buffer_map_handle;
284*8d67ca89SAndroid Build Coastguard Worker };
285*8d67ca89SAndroid Build Coastguard Worker union drm_vmw_gb_surface_create_arg {
286*8d67ca89SAndroid Build Coastguard Worker   struct drm_vmw_gb_surface_create_rep rep;
287*8d67ca89SAndroid Build Coastguard Worker   struct drm_vmw_gb_surface_create_req req;
288*8d67ca89SAndroid Build Coastguard Worker };
289*8d67ca89SAndroid Build Coastguard Worker struct drm_vmw_gb_surface_ref_rep {
290*8d67ca89SAndroid Build Coastguard Worker   struct drm_vmw_gb_surface_create_req creq;
291*8d67ca89SAndroid Build Coastguard Worker   struct drm_vmw_gb_surface_create_rep crep;
292*8d67ca89SAndroid Build Coastguard Worker };
293*8d67ca89SAndroid Build Coastguard Worker union drm_vmw_gb_surface_reference_arg {
294*8d67ca89SAndroid Build Coastguard Worker   struct drm_vmw_gb_surface_ref_rep rep;
295*8d67ca89SAndroid Build Coastguard Worker   struct drm_vmw_surface_arg req;
296*8d67ca89SAndroid Build Coastguard Worker };
297*8d67ca89SAndroid Build Coastguard Worker enum drm_vmw_synccpu_flags {
298*8d67ca89SAndroid Build Coastguard Worker   drm_vmw_synccpu_read = (1 << 0),
299*8d67ca89SAndroid Build Coastguard Worker   drm_vmw_synccpu_write = (1 << 1),
300*8d67ca89SAndroid Build Coastguard Worker   drm_vmw_synccpu_dontblock = (1 << 2),
301*8d67ca89SAndroid Build Coastguard Worker   drm_vmw_synccpu_allow_cs = (1 << 3)
302*8d67ca89SAndroid Build Coastguard Worker };
303*8d67ca89SAndroid Build Coastguard Worker enum drm_vmw_synccpu_op {
304*8d67ca89SAndroid Build Coastguard Worker   drm_vmw_synccpu_grab,
305*8d67ca89SAndroid Build Coastguard Worker   drm_vmw_synccpu_release
306*8d67ca89SAndroid Build Coastguard Worker };
307*8d67ca89SAndroid Build Coastguard Worker struct drm_vmw_synccpu_arg {
308*8d67ca89SAndroid Build Coastguard Worker   enum drm_vmw_synccpu_op op;
309*8d67ca89SAndroid Build Coastguard Worker   enum drm_vmw_synccpu_flags flags;
310*8d67ca89SAndroid Build Coastguard Worker   __u32 handle;
311*8d67ca89SAndroid Build Coastguard Worker   __u32 pad64;
312*8d67ca89SAndroid Build Coastguard Worker };
313*8d67ca89SAndroid Build Coastguard Worker enum drm_vmw_extended_context {
314*8d67ca89SAndroid Build Coastguard Worker   drm_vmw_context_legacy,
315*8d67ca89SAndroid Build Coastguard Worker   drm_vmw_context_dx
316*8d67ca89SAndroid Build Coastguard Worker };
317*8d67ca89SAndroid Build Coastguard Worker union drm_vmw_extended_context_arg {
318*8d67ca89SAndroid Build Coastguard Worker   enum drm_vmw_extended_context req;
319*8d67ca89SAndroid Build Coastguard Worker   struct drm_vmw_context_arg rep;
320*8d67ca89SAndroid Build Coastguard Worker };
321*8d67ca89SAndroid Build Coastguard Worker struct drm_vmw_handle_close_arg {
322*8d67ca89SAndroid Build Coastguard Worker   __u32 handle;
323*8d67ca89SAndroid Build Coastguard Worker   __u32 pad64;
324*8d67ca89SAndroid Build Coastguard Worker };
325*8d67ca89SAndroid Build Coastguard Worker #define drm_vmw_unref_dmabuf_arg drm_vmw_handle_close_arg
326*8d67ca89SAndroid Build Coastguard Worker enum drm_vmw_surface_version {
327*8d67ca89SAndroid Build Coastguard Worker   drm_vmw_gb_surface_v1,
328*8d67ca89SAndroid Build Coastguard Worker };
329*8d67ca89SAndroid Build Coastguard Worker struct drm_vmw_gb_surface_create_ext_req {
330*8d67ca89SAndroid Build Coastguard Worker   struct drm_vmw_gb_surface_create_req base;
331*8d67ca89SAndroid Build Coastguard Worker   enum drm_vmw_surface_version version;
332*8d67ca89SAndroid Build Coastguard Worker   __u32 svga3d_flags_upper_32_bits;
333*8d67ca89SAndroid Build Coastguard Worker   __u32 multisample_pattern;
334*8d67ca89SAndroid Build Coastguard Worker   __u32 quality_level;
335*8d67ca89SAndroid Build Coastguard Worker   __u32 buffer_byte_stride;
336*8d67ca89SAndroid Build Coastguard Worker   __u32 must_be_zero;
337*8d67ca89SAndroid Build Coastguard Worker };
338*8d67ca89SAndroid Build Coastguard Worker union drm_vmw_gb_surface_create_ext_arg {
339*8d67ca89SAndroid Build Coastguard Worker   struct drm_vmw_gb_surface_create_rep rep;
340*8d67ca89SAndroid Build Coastguard Worker   struct drm_vmw_gb_surface_create_ext_req req;
341*8d67ca89SAndroid Build Coastguard Worker };
342*8d67ca89SAndroid Build Coastguard Worker struct drm_vmw_gb_surface_ref_ext_rep {
343*8d67ca89SAndroid Build Coastguard Worker   struct drm_vmw_gb_surface_create_ext_req creq;
344*8d67ca89SAndroid Build Coastguard Worker   struct drm_vmw_gb_surface_create_rep crep;
345*8d67ca89SAndroid Build Coastguard Worker };
346*8d67ca89SAndroid Build Coastguard Worker union drm_vmw_gb_surface_reference_ext_arg {
347*8d67ca89SAndroid Build Coastguard Worker   struct drm_vmw_gb_surface_ref_ext_rep rep;
348*8d67ca89SAndroid Build Coastguard Worker   struct drm_vmw_surface_arg req;
349*8d67ca89SAndroid Build Coastguard Worker };
350*8d67ca89SAndroid Build Coastguard Worker struct drm_vmw_msg_arg {
351*8d67ca89SAndroid Build Coastguard Worker   __u64 send;
352*8d67ca89SAndroid Build Coastguard Worker   __u64 receive;
353*8d67ca89SAndroid Build Coastguard Worker   __s32 send_only;
354*8d67ca89SAndroid Build Coastguard Worker   __u32 receive_len;
355*8d67ca89SAndroid Build Coastguard Worker };
356*8d67ca89SAndroid Build Coastguard Worker struct drm_vmw_mksstat_add_arg {
357*8d67ca89SAndroid Build Coastguard Worker   __u64 stat;
358*8d67ca89SAndroid Build Coastguard Worker   __u64 info;
359*8d67ca89SAndroid Build Coastguard Worker   __u64 strs;
360*8d67ca89SAndroid Build Coastguard Worker   __u64 stat_len;
361*8d67ca89SAndroid Build Coastguard Worker   __u64 info_len;
362*8d67ca89SAndroid Build Coastguard Worker   __u64 strs_len;
363*8d67ca89SAndroid Build Coastguard Worker   __u64 description;
364*8d67ca89SAndroid Build Coastguard Worker   __u64 id;
365*8d67ca89SAndroid Build Coastguard Worker };
366*8d67ca89SAndroid Build Coastguard Worker struct drm_vmw_mksstat_remove_arg {
367*8d67ca89SAndroid Build Coastguard Worker   __u64 id;
368*8d67ca89SAndroid Build Coastguard Worker };
369*8d67ca89SAndroid Build Coastguard Worker #ifdef __cplusplus
370*8d67ca89SAndroid Build Coastguard Worker }
371*8d67ca89SAndroid Build Coastguard Worker #endif
372*8d67ca89SAndroid Build Coastguard Worker #endif
373