vmwgfx_drm.h revision 106b3a8a7dc03c19a45e322de425ac56aafac358
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
77enum 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};
82struct 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 */
89struct drm_vmw_context_arg {
90  __s32 cid;
91  __u32 pad64;
92};
93/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
94struct 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 */
104struct 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 */
109struct 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};
116union 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};
121union 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
127struct 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};
140struct 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};
150struct drm_vmw_alloc_dmabuf_req {
151  __u32 size;
152  __u32 pad64;
153/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
154};
155struct 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 */
164union 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 */
169struct drm_vmw_unref_dmabuf_arg {
170  __u32 handle;
171  __u32 pad64;
172};
173/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
174struct 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};
181struct 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 */
204struct 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 */
214struct drm_vmw_stream_arg {
215  __u32 stream_id;
216  __u32 pad64;
217};
218/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
219struct 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 */
229struct 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};
241struct 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};
251struct 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
257struct 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)
266struct 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 */
274struct 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};
285struct 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};
292struct 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 */
299enum 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 */
304struct 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};
312struct drm_vmw_shader_arg {
313/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
314  __u32 handle;
315  __u32 pad64;
316};
317enum 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 */
324struct 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};
337struct 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};
346union 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};
351struct 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};
356union 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};
361enum 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 */
369enum 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 */
374struct 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};
381enum 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};
386union 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