1 /****************************************************************************
2  ****************************************************************************
3  ***
4  ***   This header was automatically generated from a Linux kernel header
5  ***   of the same name, to make information necessary for userspace to
6  ***   call into the kernel available to libc.  It contains only constants,
7  ***   structures, and macros generated from the original header, and thus,
8  ***   contains no copyrightable information.
9  ***
10  ***   To edit the content of this header, modify the corresponding
11  ***   source file (e.g. under external/kernel-headers/original/) then
12  ***   run bionic/libc/kernel/tools/update_all.py
13  ***
14  ***   Any manual change here will be lost the next time this script will
15  ***   be run. You've been warned!
16  ***
17  ****************************************************************************
18  ****************************************************************************/
19 #ifndef __VMWGFX_DRM_H__
20 #define __VMWGFX_DRM_H__
21 #include "drm.h"
22 #ifdef __cplusplus
23 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
24 #endif
25 #define DRM_VMW_MAX_SURFACE_FACES 6
26 #define DRM_VMW_MAX_MIP_LEVELS 24
27 #define DRM_VMW_GET_PARAM 0
28 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
29 #define DRM_VMW_ALLOC_DMABUF 1
30 #define DRM_VMW_UNREF_DMABUF 2
31 #define DRM_VMW_CURSOR_BYPASS 3
32 #define DRM_VMW_CONTROL_STREAM 4
33 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
34 #define DRM_VMW_CLAIM_STREAM 5
35 #define DRM_VMW_UNREF_STREAM 6
36 #define DRM_VMW_CREATE_CONTEXT 7
37 #define DRM_VMW_UNREF_CONTEXT 8
38 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
39 #define DRM_VMW_CREATE_SURFACE 9
40 #define DRM_VMW_UNREF_SURFACE 10
41 #define DRM_VMW_REF_SURFACE 11
42 #define DRM_VMW_EXECBUF 12
43 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
44 #define DRM_VMW_GET_3D_CAP 13
45 #define DRM_VMW_FENCE_WAIT 14
46 #define DRM_VMW_FENCE_SIGNALED 15
47 #define DRM_VMW_FENCE_UNREF 16
48 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
49 #define DRM_VMW_FENCE_EVENT 17
50 #define DRM_VMW_PRESENT 18
51 #define DRM_VMW_PRESENT_READBACK 19
52 #define DRM_VMW_UPDATE_LAYOUT 20
53 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
54 #define DRM_VMW_CREATE_SHADER 21
55 #define DRM_VMW_UNREF_SHADER 22
56 #define DRM_VMW_GB_SURFACE_CREATE 23
57 #define DRM_VMW_GB_SURFACE_REF 24
58 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
59 #define DRM_VMW_SYNCCPU 25
60 #define DRM_VMW_CREATE_EXTENDED_CONTEXT 26
61 #define DRM_VMW_PARAM_NUM_STREAMS 0
62 #define DRM_VMW_PARAM_NUM_FREE_STREAMS 1
63 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
64 #define DRM_VMW_PARAM_3D 2
65 #define DRM_VMW_PARAM_HW_CAPS 3
66 #define DRM_VMW_PARAM_FIFO_CAPS 4
67 #define DRM_VMW_PARAM_MAX_FB_SIZE 5
68 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
69 #define DRM_VMW_PARAM_FIFO_HW_VERSION 6
70 #define DRM_VMW_PARAM_MAX_SURF_MEMORY 7
71 #define DRM_VMW_PARAM_3D_CAPS_SIZE 8
72 #define DRM_VMW_PARAM_MAX_MOB_MEMORY 9
73 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
74 #define DRM_VMW_PARAM_MAX_MOB_SIZE 10
75 #define DRM_VMW_PARAM_SCREEN_TARGET 11
76 #define DRM_VMW_PARAM_DX 12
77 enum drm_vmw_handle_type {
78 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
79   DRM_VMW_HANDLE_LEGACY = 0,
80   DRM_VMW_HANDLE_PRIME = 1
81 };
82 struct drm_vmw_getparam_arg {
83 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
84   __u64 value;
85   __u32 param;
86   __u32 pad64;
87 };
88 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
89 struct drm_vmw_context_arg {
90   __s32 cid;
91   __u32 pad64;
92 };
93 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
94 struct drm_vmw_surface_create_req {
95   __u32 flags;
96   __u32 format;
97   __u32 mip_levels[DRM_VMW_MAX_SURFACE_FACES];
98 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
99   __u64 size_addr;
100   __s32 shareable;
101   __s32 scanout;
102 };
103 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
104 struct drm_vmw_surface_arg {
105   __s32 sid;
106   enum drm_vmw_handle_type handle_type;
107 };
108 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
109 struct drm_vmw_size {
110   __u32 width;
111   __u32 height;
112   __u32 depth;
113 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
114   __u32 pad64;
115 };
116 union drm_vmw_surface_create_arg {
117   struct drm_vmw_surface_arg rep;
118 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
119   struct drm_vmw_surface_create_req req;
120 };
121 union drm_vmw_surface_reference_arg {
122   struct drm_vmw_surface_create_req rep;
123 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
124   struct drm_vmw_surface_arg req;
125 };
126 #define DRM_VMW_EXECBUF_VERSION 2
127 struct drm_vmw_execbuf_arg {
128 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
129   __u64 commands;
130   __u32 command_size;
131   __u32 throttle_us;
132   __u64 fence_rep;
133 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
134   __u32 version;
135   __u32 flags;
136   __u32 context_handle;
137   __u32 pad64;
138 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
139 };
140 struct drm_vmw_fence_rep {
141   __u32 handle;
142   __u32 mask;
143 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
144   __u32 seqno;
145   __u32 passed_seqno;
146   __u32 pad64;
147   __s32 error;
148 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
149 };
150 struct drm_vmw_alloc_dmabuf_req {
151   __u32 size;
152   __u32 pad64;
153 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
154 };
155 struct drm_vmw_dmabuf_rep {
156   __u64 map_handle;
157   __u32 handle;
158 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
159   __u32 cur_gmr_id;
160   __u32 cur_gmr_offset;
161   __u32 pad64;
162 };
163 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
164 union drm_vmw_alloc_dmabuf_arg {
165   struct drm_vmw_alloc_dmabuf_req req;
166   struct drm_vmw_dmabuf_rep rep;
167 };
168 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
169 struct drm_vmw_unref_dmabuf_arg {
170   __u32 handle;
171   __u32 pad64;
172 };
173 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
174 struct drm_vmw_rect {
175   __s32 x;
176   __s32 y;
177   __u32 w;
178 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
179   __u32 h;
180 };
181 struct drm_vmw_control_stream_arg {
182   __u32 stream_id;
183 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
184   __u32 enabled;
185   __u32 flags;
186   __u32 color_key;
187   __u32 handle;
188 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
189   __u32 offset;
190   __s32 format;
191   __u32 size;
192   __u32 width;
193 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
194   __u32 height;
195   __u32 pitch[3];
196   __u32 pad64;
197   struct drm_vmw_rect src;
198 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
199   struct drm_vmw_rect dst;
200 };
201 #define DRM_VMW_CURSOR_BYPASS_ALL (1 << 0)
202 #define DRM_VMW_CURSOR_BYPASS_FLAGS (1)
203 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
204 struct drm_vmw_cursor_bypass_arg {
205   __u32 flags;
206   __u32 crtc_id;
207   __s32 xpos;
208 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
209   __s32 ypos;
210   __s32 xhot;
211   __s32 yhot;
212 };
213 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
214 struct drm_vmw_stream_arg {
215   __u32 stream_id;
216   __u32 pad64;
217 };
218 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
219 struct drm_vmw_get_3d_cap_arg {
220   __u64 buffer;
221   __u32 max_size;
222   __u32 pad64;
223 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
224 };
225 #define DRM_VMW_FENCE_FLAG_EXEC (1 << 0)
226 #define DRM_VMW_FENCE_FLAG_QUERY (1 << 1)
227 #define DRM_VMW_WAIT_OPTION_UNREF (1 << 0)
228 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
229 struct drm_vmw_fence_wait_arg {
230   __u32 handle;
231   __s32 cookie_valid;
232   __u64 kernel_cookie;
233 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
234   __u64 timeout_us;
235   __s32 lazy;
236   __s32 flags;
237   __s32 wait_options;
238 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
239   __s32 pad64;
240 };
241 struct drm_vmw_fence_signaled_arg {
242   __u32 handle;
243 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
244   __u32 flags;
245   __s32 signaled;
246   __u32 passed_seqno;
247   __u32 signaled_flags;
248 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
249   __u32 pad64;
250 };
251 struct drm_vmw_fence_arg {
252   __u32 handle;
253 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
254   __u32 pad64;
255 };
256 #define DRM_VMW_EVENT_FENCE_SIGNALED 0x80000000
257 struct drm_vmw_event_fence {
258 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
259   struct drm_event base;
260   __u64 user_data;
261   __u32 tv_sec;
262   __u32 tv_usec;
263 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
264 };
265 #define DRM_VMW_FE_FLAG_REQ_TIME (1 << 0)
266 struct drm_vmw_fence_event_arg {
267   __u64 fence_rep;
268 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
269   __u64 user_data;
270   __u32 handle;
271   __u32 flags;
272 };
273 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
274 struct drm_vmw_present_arg {
275   __u32 fb_id;
276   __u32 sid;
277   __s32 dest_x;
278 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
279   __s32 dest_y;
280   __u64 clips_ptr;
281   __u32 num_clips;
282   __u32 pad64;
283 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
284 };
285 struct drm_vmw_present_readback_arg {
286   __u32 fb_id;
287   __u32 num_clips;
288 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
289   __u64 clips_ptr;
290   __u64 fence_rep;
291 };
292 struct drm_vmw_update_layout_arg {
293 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
294   __u32 num_outputs;
295   __u32 pad64;
296   __u64 rects;
297 };
298 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
299 enum drm_vmw_shader_type {
300   drm_vmw_shader_type_vs = 0,
301   drm_vmw_shader_type_ps,
302 };
303 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
304 struct drm_vmw_shader_create_arg {
305   enum drm_vmw_shader_type shader_type;
306   __u32 size;
307   __u32 buffer_handle;
308 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
309   __u32 shader_handle;
310   __u64 offset;
311 };
312 struct drm_vmw_shader_arg {
313 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
314   __u32 handle;
315   __u32 pad64;
316 };
317 enum drm_vmw_surface_flags {
318 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
319   drm_vmw_surface_flag_shareable = (1 << 0),
320   drm_vmw_surface_flag_scanout = (1 << 1),
321   drm_vmw_surface_flag_create_buffer = (1 << 2)
322 };
323 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
324 struct drm_vmw_gb_surface_create_req {
325   __u32 svga3d_flags;
326   __u32 format;
327   __u32 mip_levels;
328 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
329   enum drm_vmw_surface_flags drm_surface_flags;
330   __u32 multisample_count;
331   __u32 autogen_filter;
332   __u32 buffer_handle;
333 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
334   __u32 array_size;
335   struct drm_vmw_size base_size;
336 };
337 struct drm_vmw_gb_surface_create_rep {
338 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
339   __u32 handle;
340   __u32 backup_size;
341   __u32 buffer_handle;
342   __u32 buffer_size;
343 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
344   __u64 buffer_map_handle;
345 };
346 union drm_vmw_gb_surface_create_arg {
347   struct drm_vmw_gb_surface_create_rep rep;
348 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
349   struct drm_vmw_gb_surface_create_req req;
350 };
351 struct drm_vmw_gb_surface_ref_rep {
352   struct drm_vmw_gb_surface_create_req creq;
353 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
354   struct drm_vmw_gb_surface_create_rep crep;
355 };
356 union drm_vmw_gb_surface_reference_arg {
357   struct drm_vmw_gb_surface_ref_rep rep;
358 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
359   struct drm_vmw_surface_arg req;
360 };
361 enum drm_vmw_synccpu_flags {
362   drm_vmw_synccpu_read = (1 << 0),
363 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
364   drm_vmw_synccpu_write = (1 << 1),
365   drm_vmw_synccpu_dontblock = (1 << 2),
366   drm_vmw_synccpu_allow_cs = (1 << 3)
367 };
368 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
369 enum drm_vmw_synccpu_op {
370   drm_vmw_synccpu_grab,
371   drm_vmw_synccpu_release
372 };
373 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
374 struct drm_vmw_synccpu_arg {
375   enum drm_vmw_synccpu_op op;
376   enum drm_vmw_synccpu_flags flags;
377   __u32 handle;
378 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
379   __u32 pad64;
380 };
381 enum drm_vmw_extended_context {
382   drm_vmw_context_legacy,
383 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
384   drm_vmw_context_dx
385 };
386 union drm_vmw_extended_context_arg {
387   enum drm_vmw_extended_context req;
388 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
389   struct drm_vmw_context_arg rep;
390 };
391 #ifdef __cplusplus
392 #endif
393 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
394 #endif
395