122851890Sopenharmony_ci/* 222851890Sopenharmony_ci * This header was generated from the Linux kernel headers by update_headers.py, 322851890Sopenharmony_ci * to provide necessary information from kernel to userspace, such as constants, 422851890Sopenharmony_ci * structures, and macros, and thus, contains no copyrightable information. 522851890Sopenharmony_ci */ 622851890Sopenharmony_ci#ifndef __VMWGFX_DRM_H__ 722851890Sopenharmony_ci#define __VMWGFX_DRM_H__ 822851890Sopenharmony_ci#include "drm.h" 922851890Sopenharmony_ci#if defined(__cplusplus) 1022851890Sopenharmony_ciextern "C" { 1122851890Sopenharmony_ci#endif 1222851890Sopenharmony_ci#define DRM_VMW_MAX_SURFACE_FACES 6 1322851890Sopenharmony_ci#define DRM_VMW_MAX_MIP_LEVELS 24 1422851890Sopenharmony_ci#define DRM_VMW_GET_PARAM 0 1522851890Sopenharmony_ci#define DRM_VMW_ALLOC_DMABUF 1 1622851890Sopenharmony_ci#define DRM_VMW_ALLOC_BO 1 1722851890Sopenharmony_ci#define DRM_VMW_UNREF_DMABUF 2 1822851890Sopenharmony_ci#define DRM_VMW_HANDLE_CLOSE 2 1922851890Sopenharmony_ci#define DRM_VMW_CURSOR_BYPASS 3 2022851890Sopenharmony_ci#define DRM_VMW_CONTROL_STREAM 4 2122851890Sopenharmony_ci#define DRM_VMW_CLAIM_STREAM 5 2222851890Sopenharmony_ci#define DRM_VMW_UNREF_STREAM 6 2322851890Sopenharmony_ci#define DRM_VMW_CREATE_CONTEXT 7 2422851890Sopenharmony_ci#define DRM_VMW_UNREF_CONTEXT 8 2522851890Sopenharmony_ci#define DRM_VMW_CREATE_SURFACE 9 2622851890Sopenharmony_ci#define DRM_VMW_UNREF_SURFACE 10 2722851890Sopenharmony_ci#define DRM_VMW_REF_SURFACE 11 2822851890Sopenharmony_ci#define DRM_VMW_EXECBUF 12 2922851890Sopenharmony_ci#define DRM_VMW_GET_3D_CAP 13 3022851890Sopenharmony_ci#define DRM_VMW_FENCE_WAIT 14 3122851890Sopenharmony_ci#define DRM_VMW_FENCE_SIGNALED 15 3222851890Sopenharmony_ci#define DRM_VMW_FENCE_UNREF 16 3322851890Sopenharmony_ci#define DRM_VMW_FENCE_EVENT 17 3422851890Sopenharmony_ci#define DRM_VMW_PRESENT 18 3522851890Sopenharmony_ci#define DRM_VMW_PRESENT_READBACK 19 3622851890Sopenharmony_ci#define DRM_VMW_UPDATE_LAYOUT 20 3722851890Sopenharmony_ci#define DRM_VMW_CREATE_SHADER 21 3822851890Sopenharmony_ci#define DRM_VMW_UNREF_SHADER 22 3922851890Sopenharmony_ci#define DRM_VMW_GB_SURFACE_CREATE 23 4022851890Sopenharmony_ci#define DRM_VMW_GB_SURFACE_REF 24 4122851890Sopenharmony_ci#define DRM_VMW_SYNCCPU 25 4222851890Sopenharmony_ci#define DRM_VMW_CREATE_EXTENDED_CONTEXT 26 4322851890Sopenharmony_ci#define DRM_VMW_GB_SURFACE_CREATE_EXT 27 4422851890Sopenharmony_ci#define DRM_VMW_GB_SURFACE_REF_EXT 28 4522851890Sopenharmony_ci#define DRM_VMW_PARAM_NUM_STREAMS 0 4622851890Sopenharmony_ci#define DRM_VMW_PARAM_NUM_FREE_STREAMS 1 4722851890Sopenharmony_ci#define DRM_VMW_PARAM_3D 2 4822851890Sopenharmony_ci#define DRM_VMW_PARAM_HW_CAPS 3 4922851890Sopenharmony_ci#define DRM_VMW_PARAM_FIFO_CAPS 4 5022851890Sopenharmony_ci#define DRM_VMW_PARAM_MAX_FB_SIZE 5 5122851890Sopenharmony_ci#define DRM_VMW_PARAM_FIFO_HW_VERSION 6 5222851890Sopenharmony_ci#define DRM_VMW_PARAM_MAX_SURF_MEMORY 7 5322851890Sopenharmony_ci#define DRM_VMW_PARAM_3D_CAPS_SIZE 8 5422851890Sopenharmony_ci#define DRM_VMW_PARAM_MAX_MOB_MEMORY 9 5522851890Sopenharmony_ci#define DRM_VMW_PARAM_MAX_MOB_SIZE 10 5622851890Sopenharmony_ci#define DRM_VMW_PARAM_SCREEN_TARGET 11 5722851890Sopenharmony_ci#define DRM_VMW_PARAM_DX 12 5822851890Sopenharmony_ci#define DRM_VMW_PARAM_HW_CAPS2 13 5922851890Sopenharmony_ci#define DRM_VMW_PARAM_SM4_1 14 6022851890Sopenharmony_cienum drm_vmw_handle_type { 6122851890Sopenharmony_ci DRM_VMW_HANDLE_LEGACY = 0, 6222851890Sopenharmony_ci DRM_VMW_HANDLE_PRIME = 1 6322851890Sopenharmony_ci}; 6422851890Sopenharmony_cistruct drm_vmw_getparam_arg { 6522851890Sopenharmony_ci __u64 value; 6622851890Sopenharmony_ci __u32 param; 6722851890Sopenharmony_ci __u32 pad64; 6822851890Sopenharmony_ci}; 6922851890Sopenharmony_cistruct drm_vmw_context_arg { 7022851890Sopenharmony_ci __s32 cid; 7122851890Sopenharmony_ci __u32 pad64; 7222851890Sopenharmony_ci}; 7322851890Sopenharmony_cistruct drm_vmw_surface_create_req { 7422851890Sopenharmony_ci __u32 flags; 7522851890Sopenharmony_ci __u32 format; 7622851890Sopenharmony_ci __u32 mip_levels[DRM_VMW_MAX_SURFACE_FACES]; 7722851890Sopenharmony_ci __u64 size_addr; 7822851890Sopenharmony_ci __s32 shareable; 7922851890Sopenharmony_ci __s32 scanout; 8022851890Sopenharmony_ci}; 8122851890Sopenharmony_cistruct drm_vmw_surface_arg { 8222851890Sopenharmony_ci __s32 sid; 8322851890Sopenharmony_ci enum drm_vmw_handle_type handle_type; 8422851890Sopenharmony_ci}; 8522851890Sopenharmony_cistruct drm_vmw_size { 8622851890Sopenharmony_ci __u32 width; 8722851890Sopenharmony_ci __u32 height; 8822851890Sopenharmony_ci __u32 depth; 8922851890Sopenharmony_ci __u32 pad64; 9022851890Sopenharmony_ci}; 9122851890Sopenharmony_ciunion drm_vmw_surface_create_arg { 9222851890Sopenharmony_ci struct drm_vmw_surface_arg rep; 9322851890Sopenharmony_ci struct drm_vmw_surface_create_req req; 9422851890Sopenharmony_ci}; 9522851890Sopenharmony_ciunion drm_vmw_surface_reference_arg { 9622851890Sopenharmony_ci struct drm_vmw_surface_create_req rep; 9722851890Sopenharmony_ci struct drm_vmw_surface_arg req; 9822851890Sopenharmony_ci}; 9922851890Sopenharmony_ci#define DRM_VMW_EXECBUF_VERSION 2 10022851890Sopenharmony_ci#define DRM_VMW_EXECBUF_FLAG_IMPORT_FENCE_FD (1 << 0) 10122851890Sopenharmony_ci#define DRM_VMW_EXECBUF_FLAG_EXPORT_FENCE_FD (1 << 1) 10222851890Sopenharmony_cistruct drm_vmw_execbuf_arg { 10322851890Sopenharmony_ci __u64 commands; 10422851890Sopenharmony_ci __u32 command_size; 10522851890Sopenharmony_ci __u32 throttle_us; 10622851890Sopenharmony_ci __u64 fence_rep; 10722851890Sopenharmony_ci __u32 version; 10822851890Sopenharmony_ci __u32 flags; 10922851890Sopenharmony_ci __u32 context_handle; 11022851890Sopenharmony_ci __s32 imported_fence_fd; 11122851890Sopenharmony_ci}; 11222851890Sopenharmony_cistruct drm_vmw_fence_rep { 11322851890Sopenharmony_ci __u32 handle; 11422851890Sopenharmony_ci __u32 mask; 11522851890Sopenharmony_ci __u32 seqno; 11622851890Sopenharmony_ci __u32 passed_seqno; 11722851890Sopenharmony_ci __s32 fd; 11822851890Sopenharmony_ci __s32 error; 11922851890Sopenharmony_ci}; 12022851890Sopenharmony_cistruct drm_vmw_alloc_bo_req { 12122851890Sopenharmony_ci __u32 size; 12222851890Sopenharmony_ci __u32 pad64; 12322851890Sopenharmony_ci}; 12422851890Sopenharmony_ci#define drm_vmw_alloc_dmabuf_req drm_vmw_alloc_bo_req 12522851890Sopenharmony_cistruct drm_vmw_bo_rep { 12622851890Sopenharmony_ci __u64 map_handle; 12722851890Sopenharmony_ci __u32 handle; 12822851890Sopenharmony_ci __u32 cur_gmr_id; 12922851890Sopenharmony_ci __u32 cur_gmr_offset; 13022851890Sopenharmony_ci __u32 pad64; 13122851890Sopenharmony_ci}; 13222851890Sopenharmony_ci#define drm_vmw_dmabuf_rep drm_vmw_bo_rep 13322851890Sopenharmony_ciunion drm_vmw_alloc_bo_arg { 13422851890Sopenharmony_ci struct drm_vmw_alloc_bo_req req; 13522851890Sopenharmony_ci struct drm_vmw_bo_rep rep; 13622851890Sopenharmony_ci}; 13722851890Sopenharmony_ci#define drm_vmw_alloc_dmabuf_arg drm_vmw_alloc_bo_arg 13822851890Sopenharmony_cistruct drm_vmw_rect { 13922851890Sopenharmony_ci __s32 x; 14022851890Sopenharmony_ci __s32 y; 14122851890Sopenharmony_ci __u32 w; 14222851890Sopenharmony_ci __u32 h; 14322851890Sopenharmony_ci}; 14422851890Sopenharmony_cistruct drm_vmw_control_stream_arg { 14522851890Sopenharmony_ci __u32 stream_id; 14622851890Sopenharmony_ci __u32 enabled; 14722851890Sopenharmony_ci __u32 flags; 14822851890Sopenharmony_ci __u32 color_key; 14922851890Sopenharmony_ci __u32 handle; 15022851890Sopenharmony_ci __u32 offset; 15122851890Sopenharmony_ci __s32 format; 15222851890Sopenharmony_ci __u32 size; 15322851890Sopenharmony_ci __u32 width; 15422851890Sopenharmony_ci __u32 height; 15522851890Sopenharmony_ci __u32 pitch[3]; 15622851890Sopenharmony_ci __u32 pad64; 15722851890Sopenharmony_ci struct drm_vmw_rect src; 15822851890Sopenharmony_ci struct drm_vmw_rect dst; 15922851890Sopenharmony_ci}; 16022851890Sopenharmony_ci#define DRM_VMW_CURSOR_BYPASS_ALL (1 << 0) 16122851890Sopenharmony_ci#define DRM_VMW_CURSOR_BYPASS_FLAGS (1) 16222851890Sopenharmony_cistruct drm_vmw_cursor_bypass_arg { 16322851890Sopenharmony_ci __u32 flags; 16422851890Sopenharmony_ci __u32 crtc_id; 16522851890Sopenharmony_ci __s32 xpos; 16622851890Sopenharmony_ci __s32 ypos; 16722851890Sopenharmony_ci __s32 xhot; 16822851890Sopenharmony_ci __s32 yhot; 16922851890Sopenharmony_ci}; 17022851890Sopenharmony_cistruct drm_vmw_stream_arg { 17122851890Sopenharmony_ci __u32 stream_id; 17222851890Sopenharmony_ci __u32 pad64; 17322851890Sopenharmony_ci}; 17422851890Sopenharmony_cistruct drm_vmw_get_3d_cap_arg { 17522851890Sopenharmony_ci __u64 buffer; 17622851890Sopenharmony_ci __u32 max_size; 17722851890Sopenharmony_ci __u32 pad64; 17822851890Sopenharmony_ci}; 17922851890Sopenharmony_ci#define DRM_VMW_FENCE_FLAG_EXEC (1 << 0) 18022851890Sopenharmony_ci#define DRM_VMW_FENCE_FLAG_QUERY (1 << 1) 18122851890Sopenharmony_ci#define DRM_VMW_WAIT_OPTION_UNREF (1 << 0) 18222851890Sopenharmony_cistruct drm_vmw_fence_wait_arg { 18322851890Sopenharmony_ci __u32 handle; 18422851890Sopenharmony_ci __s32 cookie_valid; 18522851890Sopenharmony_ci __u64 kernel_cookie; 18622851890Sopenharmony_ci __u64 timeout_us; 18722851890Sopenharmony_ci __s32 lazy; 18822851890Sopenharmony_ci __s32 flags; 18922851890Sopenharmony_ci __s32 wait_options; 19022851890Sopenharmony_ci __s32 pad64; 19122851890Sopenharmony_ci}; 19222851890Sopenharmony_cistruct drm_vmw_fence_signaled_arg { 19322851890Sopenharmony_ci __u32 handle; 19422851890Sopenharmony_ci __u32 flags; 19522851890Sopenharmony_ci __s32 signaled; 19622851890Sopenharmony_ci __u32 passed_seqno; 19722851890Sopenharmony_ci __u32 signaled_flags; 19822851890Sopenharmony_ci __u32 pad64; 19922851890Sopenharmony_ci}; 20022851890Sopenharmony_cistruct drm_vmw_fence_arg { 20122851890Sopenharmony_ci __u32 handle; 20222851890Sopenharmony_ci __u32 pad64; 20322851890Sopenharmony_ci}; 20422851890Sopenharmony_ci#define DRM_VMW_EVENT_FENCE_SIGNALED 0x80000000 20522851890Sopenharmony_cistruct drm_vmw_event_fence { 20622851890Sopenharmony_ci struct drm_event base; 20722851890Sopenharmony_ci __u64 user_data; 20822851890Sopenharmony_ci __u32 tv_sec; 20922851890Sopenharmony_ci __u32 tv_usec; 21022851890Sopenharmony_ci}; 21122851890Sopenharmony_ci#define DRM_VMW_FE_FLAG_REQ_TIME (1 << 0) 21222851890Sopenharmony_cistruct drm_vmw_fence_event_arg { 21322851890Sopenharmony_ci __u64 fence_rep; 21422851890Sopenharmony_ci __u64 user_data; 21522851890Sopenharmony_ci __u32 handle; 21622851890Sopenharmony_ci __u32 flags; 21722851890Sopenharmony_ci}; 21822851890Sopenharmony_cistruct drm_vmw_present_arg { 21922851890Sopenharmony_ci __u32 fb_id; 22022851890Sopenharmony_ci __u32 sid; 22122851890Sopenharmony_ci __s32 dest_x; 22222851890Sopenharmony_ci __s32 dest_y; 22322851890Sopenharmony_ci __u64 clips_ptr; 22422851890Sopenharmony_ci __u32 num_clips; 22522851890Sopenharmony_ci __u32 pad64; 22622851890Sopenharmony_ci}; 22722851890Sopenharmony_cistruct drm_vmw_present_readback_arg { 22822851890Sopenharmony_ci __u32 fb_id; 22922851890Sopenharmony_ci __u32 num_clips; 23022851890Sopenharmony_ci __u64 clips_ptr; 23122851890Sopenharmony_ci __u64 fence_rep; 23222851890Sopenharmony_ci}; 23322851890Sopenharmony_cistruct drm_vmw_update_layout_arg { 23422851890Sopenharmony_ci __u32 num_outputs; 23522851890Sopenharmony_ci __u32 pad64; 23622851890Sopenharmony_ci __u64 rects; 23722851890Sopenharmony_ci}; 23822851890Sopenharmony_cienum drm_vmw_shader_type { 23922851890Sopenharmony_ci drm_vmw_shader_type_vs = 0, 24022851890Sopenharmony_ci drm_vmw_shader_type_ps, 24122851890Sopenharmony_ci}; 24222851890Sopenharmony_cistruct drm_vmw_shader_create_arg { 24322851890Sopenharmony_ci enum drm_vmw_shader_type shader_type; 24422851890Sopenharmony_ci __u32 size; 24522851890Sopenharmony_ci __u32 buffer_handle; 24622851890Sopenharmony_ci __u32 shader_handle; 24722851890Sopenharmony_ci __u64 offset; 24822851890Sopenharmony_ci}; 24922851890Sopenharmony_cistruct drm_vmw_shader_arg { 25022851890Sopenharmony_ci __u32 handle; 25122851890Sopenharmony_ci __u32 pad64; 25222851890Sopenharmony_ci}; 25322851890Sopenharmony_cienum drm_vmw_surface_flags { 25422851890Sopenharmony_ci drm_vmw_surface_flag_shareable = (1 << 0), 25522851890Sopenharmony_ci drm_vmw_surface_flag_scanout = (1 << 1), 25622851890Sopenharmony_ci drm_vmw_surface_flag_create_buffer = (1 << 2) 25722851890Sopenharmony_ci}; 25822851890Sopenharmony_cistruct drm_vmw_gb_surface_create_req { 25922851890Sopenharmony_ci __u32 svga3d_flags; 26022851890Sopenharmony_ci __u32 format; 26122851890Sopenharmony_ci __u32 mip_levels; 26222851890Sopenharmony_ci enum drm_vmw_surface_flags drm_surface_flags; 26322851890Sopenharmony_ci __u32 multisample_count; 26422851890Sopenharmony_ci __u32 autogen_filter; 26522851890Sopenharmony_ci __u32 buffer_handle; 26622851890Sopenharmony_ci __u32 array_size; 26722851890Sopenharmony_ci struct drm_vmw_size base_size; 26822851890Sopenharmony_ci}; 26922851890Sopenharmony_cistruct drm_vmw_gb_surface_create_rep { 27022851890Sopenharmony_ci __u32 handle; 27122851890Sopenharmony_ci __u32 backup_size; 27222851890Sopenharmony_ci __u32 buffer_handle; 27322851890Sopenharmony_ci __u32 buffer_size; 27422851890Sopenharmony_ci __u64 buffer_map_handle; 27522851890Sopenharmony_ci}; 27622851890Sopenharmony_ciunion drm_vmw_gb_surface_create_arg { 27722851890Sopenharmony_ci struct drm_vmw_gb_surface_create_rep rep; 27822851890Sopenharmony_ci struct drm_vmw_gb_surface_create_req req; 27922851890Sopenharmony_ci}; 28022851890Sopenharmony_cistruct drm_vmw_gb_surface_ref_rep { 28122851890Sopenharmony_ci struct drm_vmw_gb_surface_create_req creq; 28222851890Sopenharmony_ci struct drm_vmw_gb_surface_create_rep crep; 28322851890Sopenharmony_ci}; 28422851890Sopenharmony_ciunion drm_vmw_gb_surface_reference_arg { 28522851890Sopenharmony_ci struct drm_vmw_gb_surface_ref_rep rep; 28622851890Sopenharmony_ci struct drm_vmw_surface_arg req; 28722851890Sopenharmony_ci}; 28822851890Sopenharmony_cienum drm_vmw_synccpu_flags { 28922851890Sopenharmony_ci drm_vmw_synccpu_read = (1 << 0), 29022851890Sopenharmony_ci drm_vmw_synccpu_write = (1 << 1), 29122851890Sopenharmony_ci drm_vmw_synccpu_dontblock = (1 << 2), 29222851890Sopenharmony_ci drm_vmw_synccpu_allow_cs = (1 << 3) 29322851890Sopenharmony_ci}; 29422851890Sopenharmony_cienum drm_vmw_synccpu_op { 29522851890Sopenharmony_ci drm_vmw_synccpu_grab, 29622851890Sopenharmony_ci drm_vmw_synccpu_release 29722851890Sopenharmony_ci}; 29822851890Sopenharmony_cistruct drm_vmw_synccpu_arg { 29922851890Sopenharmony_ci enum drm_vmw_synccpu_op op; 30022851890Sopenharmony_ci enum drm_vmw_synccpu_flags flags; 30122851890Sopenharmony_ci __u32 handle; 30222851890Sopenharmony_ci __u32 pad64; 30322851890Sopenharmony_ci}; 30422851890Sopenharmony_cienum drm_vmw_extended_context { 30522851890Sopenharmony_ci drm_vmw_context_legacy, 30622851890Sopenharmony_ci drm_vmw_context_dx 30722851890Sopenharmony_ci}; 30822851890Sopenharmony_ciunion drm_vmw_extended_context_arg { 30922851890Sopenharmony_ci enum drm_vmw_extended_context req; 31022851890Sopenharmony_ci struct drm_vmw_context_arg rep; 31122851890Sopenharmony_ci}; 31222851890Sopenharmony_cistruct drm_vmw_handle_close_arg { 31322851890Sopenharmony_ci __u32 handle; 31422851890Sopenharmony_ci __u32 pad64; 31522851890Sopenharmony_ci}; 31622851890Sopenharmony_ci#define drm_vmw_unref_dmabuf_arg drm_vmw_handle_close_arg 31722851890Sopenharmony_cienum drm_vmw_surface_version { 31822851890Sopenharmony_ci drm_vmw_gb_surface_v1 31922851890Sopenharmony_ci}; 32022851890Sopenharmony_cistruct drm_vmw_gb_surface_create_ext_req { 32122851890Sopenharmony_ci struct drm_vmw_gb_surface_create_req base; 32222851890Sopenharmony_ci enum drm_vmw_surface_version version; 32322851890Sopenharmony_ci uint32_t svga3d_flags_upper_32_bits; 32422851890Sopenharmony_ci SVGA3dMSPattern multisample_pattern; 32522851890Sopenharmony_ci SVGA3dMSQualityLevel quality_level; 32622851890Sopenharmony_ci uint64_t must_be_zero; 32722851890Sopenharmony_ci}; 32822851890Sopenharmony_ciunion drm_vmw_gb_surface_create_ext_arg { 32922851890Sopenharmony_ci struct drm_vmw_gb_surface_create_rep rep; 33022851890Sopenharmony_ci struct drm_vmw_gb_surface_create_ext_req req; 33122851890Sopenharmony_ci}; 33222851890Sopenharmony_cistruct drm_vmw_gb_surface_ref_ext_rep { 33322851890Sopenharmony_ci struct drm_vmw_gb_surface_create_ext_req creq; 33422851890Sopenharmony_ci struct drm_vmw_gb_surface_create_rep crep; 33522851890Sopenharmony_ci}; 33622851890Sopenharmony_ciunion drm_vmw_gb_surface_reference_ext_arg { 33722851890Sopenharmony_ci struct drm_vmw_gb_surface_ref_ext_rep rep; 33822851890Sopenharmony_ci struct drm_vmw_surface_arg req; 33922851890Sopenharmony_ci}; 34022851890Sopenharmony_ci#if defined(__cplusplus) 34122851890Sopenharmony_ci} 34222851890Sopenharmony_ci#endif 34322851890Sopenharmony_ci#endif 344