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