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