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