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