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