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