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