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