| /**************************************************************************** |
| **************************************************************************** |
| *** |
| *** This header was automatically generated from a Linux kernel header |
| *** of the same name, to make information necessary for userspace to |
| *** call into the kernel available to libc. It contains only constants, |
| *** structures, and macros generated from the original header, and thus, |
| *** contains no copyrightable information. |
| *** |
| *** To edit the content of this header, modify the corresponding |
| *** source file (e.g. under external/kernel-headers/original/) then |
| *** run bionic/libc/kernel/tools/update_all.py |
| *** |
| *** Any manual change here will be lost the next time this script will |
| *** be run. You've been warned! |
| *** |
| **************************************************************************** |
| ****************************************************************************/ |
| #ifndef __VMWGFX_DRM_H__ |
| #define __VMWGFX_DRM_H__ |
| #include "drm.h" |
| #ifdef __cplusplus |
| extern "C" { |
| #endif |
| #define DRM_VMW_MAX_SURFACE_FACES 6 |
| #define DRM_VMW_MAX_MIP_LEVELS 24 |
| #define DRM_VMW_GET_PARAM 0 |
| #define DRM_VMW_ALLOC_DMABUF 1 |
| #define DRM_VMW_ALLOC_BO 1 |
| #define DRM_VMW_UNREF_DMABUF 2 |
| #define DRM_VMW_HANDLE_CLOSE 2 |
| #define DRM_VMW_CURSOR_BYPASS 3 |
| #define DRM_VMW_CONTROL_STREAM 4 |
| #define DRM_VMW_CLAIM_STREAM 5 |
| #define DRM_VMW_UNREF_STREAM 6 |
| #define DRM_VMW_CREATE_CONTEXT 7 |
| #define DRM_VMW_UNREF_CONTEXT 8 |
| #define DRM_VMW_CREATE_SURFACE 9 |
| #define DRM_VMW_UNREF_SURFACE 10 |
| #define DRM_VMW_REF_SURFACE 11 |
| #define DRM_VMW_EXECBUF 12 |
| #define DRM_VMW_GET_3D_CAP 13 |
| #define DRM_VMW_FENCE_WAIT 14 |
| #define DRM_VMW_FENCE_SIGNALED 15 |
| #define DRM_VMW_FENCE_UNREF 16 |
| #define DRM_VMW_FENCE_EVENT 17 |
| #define DRM_VMW_PRESENT 18 |
| #define DRM_VMW_PRESENT_READBACK 19 |
| #define DRM_VMW_UPDATE_LAYOUT 20 |
| #define DRM_VMW_CREATE_SHADER 21 |
| #define DRM_VMW_UNREF_SHADER 22 |
| #define DRM_VMW_GB_SURFACE_CREATE 23 |
| #define DRM_VMW_GB_SURFACE_REF 24 |
| #define DRM_VMW_SYNCCPU 25 |
| #define DRM_VMW_CREATE_EXTENDED_CONTEXT 26 |
| #define DRM_VMW_GB_SURFACE_CREATE_EXT 27 |
| #define DRM_VMW_GB_SURFACE_REF_EXT 28 |
| #define DRM_VMW_MSG 29 |
| #define DRM_VMW_MKSSTAT_RESET 30 |
| #define DRM_VMW_MKSSTAT_ADD 31 |
| #define DRM_VMW_MKSSTAT_REMOVE 32 |
| #define DRM_VMW_PARAM_NUM_STREAMS 0 |
| #define DRM_VMW_PARAM_NUM_FREE_STREAMS 1 |
| #define DRM_VMW_PARAM_3D 2 |
| #define DRM_VMW_PARAM_HW_CAPS 3 |
| #define DRM_VMW_PARAM_FIFO_CAPS 4 |
| #define DRM_VMW_PARAM_MAX_FB_SIZE 5 |
| #define DRM_VMW_PARAM_FIFO_HW_VERSION 6 |
| #define DRM_VMW_PARAM_MAX_SURF_MEMORY 7 |
| #define DRM_VMW_PARAM_3D_CAPS_SIZE 8 |
| #define DRM_VMW_PARAM_MAX_MOB_MEMORY 9 |
| #define DRM_VMW_PARAM_MAX_MOB_SIZE 10 |
| #define DRM_VMW_PARAM_SCREEN_TARGET 11 |
| #define DRM_VMW_PARAM_DX 12 |
| #define DRM_VMW_PARAM_HW_CAPS2 13 |
| #define DRM_VMW_PARAM_SM4_1 14 |
| #define DRM_VMW_PARAM_SM5 15 |
| enum drm_vmw_handle_type { |
| DRM_VMW_HANDLE_LEGACY = 0, |
| DRM_VMW_HANDLE_PRIME = 1 |
| }; |
| struct drm_vmw_getparam_arg { |
| __u64 value; |
| __u32 param; |
| __u32 pad64; |
| }; |
| struct drm_vmw_context_arg { |
| __s32 cid; |
| __u32 pad64; |
| }; |
| struct drm_vmw_surface_create_req { |
| __u32 flags; |
| __u32 format; |
| __u32 mip_levels[DRM_VMW_MAX_SURFACE_FACES]; |
| __u64 size_addr; |
| __s32 shareable; |
| __s32 scanout; |
| }; |
| struct drm_vmw_surface_arg { |
| __s32 sid; |
| enum drm_vmw_handle_type handle_type; |
| }; |
| struct drm_vmw_size { |
| __u32 width; |
| __u32 height; |
| __u32 depth; |
| __u32 pad64; |
| }; |
| union drm_vmw_surface_create_arg { |
| struct drm_vmw_surface_arg rep; |
| struct drm_vmw_surface_create_req req; |
| }; |
| union drm_vmw_surface_reference_arg { |
| struct drm_vmw_surface_create_req rep; |
| struct drm_vmw_surface_arg req; |
| }; |
| #define DRM_VMW_EXECBUF_VERSION 2 |
| #define DRM_VMW_EXECBUF_FLAG_IMPORT_FENCE_FD (1 << 0) |
| #define DRM_VMW_EXECBUF_FLAG_EXPORT_FENCE_FD (1 << 1) |
| struct drm_vmw_execbuf_arg { |
| __u64 commands; |
| __u32 command_size; |
| __u32 throttle_us; |
| __u64 fence_rep; |
| __u32 version; |
| __u32 flags; |
| __u32 context_handle; |
| __s32 imported_fence_fd; |
| }; |
| struct drm_vmw_fence_rep { |
| __u32 handle; |
| __u32 mask; |
| __u32 seqno; |
| __u32 passed_seqno; |
| __s32 fd; |
| __s32 error; |
| }; |
| struct drm_vmw_alloc_bo_req { |
| __u32 size; |
| __u32 pad64; |
| }; |
| #define drm_vmw_alloc_dmabuf_req drm_vmw_alloc_bo_req |
| struct drm_vmw_bo_rep { |
| __u64 map_handle; |
| __u32 handle; |
| __u32 cur_gmr_id; |
| __u32 cur_gmr_offset; |
| __u32 pad64; |
| }; |
| #define drm_vmw_dmabuf_rep drm_vmw_bo_rep |
| union drm_vmw_alloc_bo_arg { |
| struct drm_vmw_alloc_bo_req req; |
| struct drm_vmw_bo_rep rep; |
| }; |
| #define drm_vmw_alloc_dmabuf_arg drm_vmw_alloc_bo_arg |
| struct drm_vmw_rect { |
| __s32 x; |
| __s32 y; |
| __u32 w; |
| __u32 h; |
| }; |
| struct drm_vmw_control_stream_arg { |
| __u32 stream_id; |
| __u32 enabled; |
| __u32 flags; |
| __u32 color_key; |
| __u32 handle; |
| __u32 offset; |
| __s32 format; |
| __u32 size; |
| __u32 width; |
| __u32 height; |
| __u32 pitch[3]; |
| __u32 pad64; |
| struct drm_vmw_rect src; |
| struct drm_vmw_rect dst; |
| }; |
| #define DRM_VMW_CURSOR_BYPASS_ALL (1 << 0) |
| #define DRM_VMW_CURSOR_BYPASS_FLAGS (1) |
| struct drm_vmw_cursor_bypass_arg { |
| __u32 flags; |
| __u32 crtc_id; |
| __s32 xpos; |
| __s32 ypos; |
| __s32 xhot; |
| __s32 yhot; |
| }; |
| struct drm_vmw_stream_arg { |
| __u32 stream_id; |
| __u32 pad64; |
| }; |
| struct drm_vmw_get_3d_cap_arg { |
| __u64 buffer; |
| __u32 max_size; |
| __u32 pad64; |
| }; |
| #define DRM_VMW_FENCE_FLAG_EXEC (1 << 0) |
| #define DRM_VMW_FENCE_FLAG_QUERY (1 << 1) |
| #define DRM_VMW_WAIT_OPTION_UNREF (1 << 0) |
| struct drm_vmw_fence_wait_arg { |
| __u32 handle; |
| __s32 cookie_valid; |
| __u64 kernel_cookie; |
| __u64 timeout_us; |
| __s32 lazy; |
| __s32 flags; |
| __s32 wait_options; |
| __s32 pad64; |
| }; |
| struct drm_vmw_fence_signaled_arg { |
| __u32 handle; |
| __u32 flags; |
| __s32 signaled; |
| __u32 passed_seqno; |
| __u32 signaled_flags; |
| __u32 pad64; |
| }; |
| struct drm_vmw_fence_arg { |
| __u32 handle; |
| __u32 pad64; |
| }; |
| #define DRM_VMW_EVENT_FENCE_SIGNALED 0x80000000 |
| struct drm_vmw_event_fence { |
| struct drm_event base; |
| __u64 user_data; |
| __u32 tv_sec; |
| __u32 tv_usec; |
| }; |
| #define DRM_VMW_FE_FLAG_REQ_TIME (1 << 0) |
| struct drm_vmw_fence_event_arg { |
| __u64 fence_rep; |
| __u64 user_data; |
| __u32 handle; |
| __u32 flags; |
| }; |
| struct drm_vmw_present_arg { |
| __u32 fb_id; |
| __u32 sid; |
| __s32 dest_x; |
| __s32 dest_y; |
| __u64 clips_ptr; |
| __u32 num_clips; |
| __u32 pad64; |
| }; |
| struct drm_vmw_present_readback_arg { |
| __u32 fb_id; |
| __u32 num_clips; |
| __u64 clips_ptr; |
| __u64 fence_rep; |
| }; |
| struct drm_vmw_update_layout_arg { |
| __u32 num_outputs; |
| __u32 pad64; |
| __u64 rects; |
| }; |
| enum drm_vmw_shader_type { |
| drm_vmw_shader_type_vs = 0, |
| drm_vmw_shader_type_ps, |
| }; |
| struct drm_vmw_shader_create_arg { |
| enum drm_vmw_shader_type shader_type; |
| __u32 size; |
| __u32 buffer_handle; |
| __u32 shader_handle; |
| __u64 offset; |
| }; |
| struct drm_vmw_shader_arg { |
| __u32 handle; |
| __u32 pad64; |
| }; |
| enum drm_vmw_surface_flags { |
| drm_vmw_surface_flag_shareable = (1 << 0), |
| drm_vmw_surface_flag_scanout = (1 << 1), |
| drm_vmw_surface_flag_create_buffer = (1 << 2), |
| drm_vmw_surface_flag_coherent = (1 << 3), |
| }; |
| struct drm_vmw_gb_surface_create_req { |
| __u32 svga3d_flags; |
| __u32 format; |
| __u32 mip_levels; |
| enum drm_vmw_surface_flags drm_surface_flags; |
| __u32 multisample_count; |
| __u32 autogen_filter; |
| __u32 buffer_handle; |
| __u32 array_size; |
| struct drm_vmw_size base_size; |
| }; |
| struct drm_vmw_gb_surface_create_rep { |
| __u32 handle; |
| __u32 backup_size; |
| __u32 buffer_handle; |
| __u32 buffer_size; |
| __u64 buffer_map_handle; |
| }; |
| union drm_vmw_gb_surface_create_arg { |
| struct drm_vmw_gb_surface_create_rep rep; |
| struct drm_vmw_gb_surface_create_req req; |
| }; |
| struct drm_vmw_gb_surface_ref_rep { |
| struct drm_vmw_gb_surface_create_req creq; |
| struct drm_vmw_gb_surface_create_rep crep; |
| }; |
| union drm_vmw_gb_surface_reference_arg { |
| struct drm_vmw_gb_surface_ref_rep rep; |
| struct drm_vmw_surface_arg req; |
| }; |
| enum drm_vmw_synccpu_flags { |
| drm_vmw_synccpu_read = (1 << 0), |
| drm_vmw_synccpu_write = (1 << 1), |
| drm_vmw_synccpu_dontblock = (1 << 2), |
| drm_vmw_synccpu_allow_cs = (1 << 3) |
| }; |
| enum drm_vmw_synccpu_op { |
| drm_vmw_synccpu_grab, |
| drm_vmw_synccpu_release |
| }; |
| struct drm_vmw_synccpu_arg { |
| enum drm_vmw_synccpu_op op; |
| enum drm_vmw_synccpu_flags flags; |
| __u32 handle; |
| __u32 pad64; |
| }; |
| enum drm_vmw_extended_context { |
| drm_vmw_context_legacy, |
| drm_vmw_context_dx |
| }; |
| union drm_vmw_extended_context_arg { |
| enum drm_vmw_extended_context req; |
| struct drm_vmw_context_arg rep; |
| }; |
| struct drm_vmw_handle_close_arg { |
| __u32 handle; |
| __u32 pad64; |
| }; |
| #define drm_vmw_unref_dmabuf_arg drm_vmw_handle_close_arg |
| enum drm_vmw_surface_version { |
| drm_vmw_gb_surface_v1, |
| }; |
| struct drm_vmw_gb_surface_create_ext_req { |
| struct drm_vmw_gb_surface_create_req base; |
| enum drm_vmw_surface_version version; |
| __u32 svga3d_flags_upper_32_bits; |
| __u32 multisample_pattern; |
| __u32 quality_level; |
| __u32 buffer_byte_stride; |
| __u32 must_be_zero; |
| }; |
| union drm_vmw_gb_surface_create_ext_arg { |
| struct drm_vmw_gb_surface_create_rep rep; |
| struct drm_vmw_gb_surface_create_ext_req req; |
| }; |
| struct drm_vmw_gb_surface_ref_ext_rep { |
| struct drm_vmw_gb_surface_create_ext_req creq; |
| struct drm_vmw_gb_surface_create_rep crep; |
| }; |
| union drm_vmw_gb_surface_reference_ext_arg { |
| struct drm_vmw_gb_surface_ref_ext_rep rep; |
| struct drm_vmw_surface_arg req; |
| }; |
| struct drm_vmw_msg_arg { |
| __u64 send; |
| __u64 receive; |
| __s32 send_only; |
| __u32 receive_len; |
| }; |
| struct drm_vmw_mksstat_add_arg { |
| __u64 stat; |
| __u64 info; |
| __u64 strs; |
| __u64 stat_len; |
| __u64 info_len; |
| __u64 strs_len; |
| __u64 description; |
| __u64 id; |
| }; |
| struct drm_vmw_mksstat_remove_arg { |
| __u64 id; |
| }; |
| #ifdef __cplusplus |
| } |
| #endif |
| #endif |