1655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng/**************************************************************************** 2655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng **************************************************************************** 3655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** 4655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** This header was automatically generated from a Linux kernel header 5655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** of the same name, to make information necessary for userspace to 6655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** call into the kernel available to libc. It contains only constants, 7655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** structures, and macros generated from the original header, and thus, 8655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** contains no copyrightable information. 9655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** 10655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** To edit the content of this header, modify the corresponding 11655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** source file (e.g. under external/kernel-headers/original/) then 12655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** run bionic/libc/kernel/tools/update_all.py 13655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** 14655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** Any manual change here will be lost the next time this script will 15655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** be run. You've been warned! 16655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** 17655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng **************************************************************************** 18655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ****************************************************************************/ 19655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#ifndef __VMWGFX_DRM_H__ 20655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define __VMWGFX_DRM_H__ 21106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris#include "drm.h" 22106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris#ifdef __cplusplus 23106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris#endif 24106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris#define DRM_VMW_MAX_SURFACE_FACES 6 2538062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define DRM_VMW_MAX_MIP_LEVELS 24 26655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define DRM_VMW_GET_PARAM 0 27655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define DRM_VMW_ALLOC_DMABUF 1 28655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define DRM_VMW_UNREF_DMABUF 2 29525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris#define DRM_VMW_HANDLE_CLOSE 2 3038062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define DRM_VMW_CURSOR_BYPASS 3 31655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define DRM_VMW_CONTROL_STREAM 4 32655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define DRM_VMW_CLAIM_STREAM 5 33655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define DRM_VMW_UNREF_STREAM 6 3438062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define DRM_VMW_CREATE_CONTEXT 7 35655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define DRM_VMW_UNREF_CONTEXT 8 36655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define DRM_VMW_CREATE_SURFACE 9 37655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define DRM_VMW_UNREF_SURFACE 10 3838062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define DRM_VMW_REF_SURFACE 11 39655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define DRM_VMW_EXECBUF 12 40655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define DRM_VMW_GET_3D_CAP 13 41655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define DRM_VMW_FENCE_WAIT 14 4238062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define DRM_VMW_FENCE_SIGNALED 15 43655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define DRM_VMW_FENCE_UNREF 16 44655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define DRM_VMW_FENCE_EVENT 17 45655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define DRM_VMW_PRESENT 18 4638062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define DRM_VMW_PRESENT_READBACK 19 47655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define DRM_VMW_UPDATE_LAYOUT 20 4838062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define DRM_VMW_CREATE_SHADER 21 4938062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define DRM_VMW_UNREF_SHADER 22 5038062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define DRM_VMW_GB_SURFACE_CREATE 23 5138062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define DRM_VMW_GB_SURFACE_REF 24 5238062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define DRM_VMW_SYNCCPU 25 5305d08e9716b5974d6ed08973f44930804890b902Christopher Ferris#define DRM_VMW_CREATE_EXTENDED_CONTEXT 26 5405d08e9716b5974d6ed08973f44930804890b902Christopher Ferris#define DRM_VMW_PARAM_NUM_STREAMS 0 55655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define DRM_VMW_PARAM_NUM_FREE_STREAMS 1 56655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define DRM_VMW_PARAM_3D 2 57655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define DRM_VMW_PARAM_HW_CAPS 3 5805d08e9716b5974d6ed08973f44930804890b902Christopher Ferris#define DRM_VMW_PARAM_FIFO_CAPS 4 59655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define DRM_VMW_PARAM_MAX_FB_SIZE 5 60655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define DRM_VMW_PARAM_FIFO_HW_VERSION 6 6138062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define DRM_VMW_PARAM_MAX_SURF_MEMORY 7 6205d08e9716b5974d6ed08973f44930804890b902Christopher Ferris#define DRM_VMW_PARAM_3D_CAPS_SIZE 8 6338062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define DRM_VMW_PARAM_MAX_MOB_MEMORY 9 6438062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define DRM_VMW_PARAM_MAX_MOB_SIZE 10 6505d08e9716b5974d6ed08973f44930804890b902Christopher Ferris#define DRM_VMW_PARAM_SCREEN_TARGET 11 6605d08e9716b5974d6ed08973f44930804890b902Christopher Ferris#define DRM_VMW_PARAM_DX 12 67ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferrisenum drm_vmw_handle_type { 68d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao DRM_VMW_HANDLE_LEGACY = 0, 69d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao DRM_VMW_HANDLE_PRIME = 1 70ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferris}; 71655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct drm_vmw_getparam_arg { 72106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u64 value; 73106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u32 param; 74106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u32 pad64; 75655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng}; 76106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferrisstruct drm_vmw_context_arg { 77106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __s32 cid; 78106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u32 pad64; 79655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng}; 80106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferrisstruct drm_vmw_surface_create_req { 81106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u32 flags; 82106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u32 format; 83106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u32 mip_levels[DRM_VMW_MAX_SURFACE_FACES]; 84106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u64 size_addr; 85106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __s32 shareable; 86106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __s32 scanout; 87655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng}; 88106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferrisstruct drm_vmw_surface_arg { 89106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __s32 sid; 90d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao enum drm_vmw_handle_type handle_type; 91655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng}; 92655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct drm_vmw_size { 93106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u32 width; 94106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u32 height; 95106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u32 depth; 96106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u32 pad64; 97655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng}; 98655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengunion drm_vmw_surface_create_arg { 99d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao struct drm_vmw_surface_arg rep; 100d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao struct drm_vmw_surface_create_req req; 101655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng}; 102655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengunion drm_vmw_surface_reference_arg { 103d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao struct drm_vmw_surface_create_req rep; 104d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao struct drm_vmw_surface_arg req; 105655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng}; 10605d08e9716b5974d6ed08973f44930804890b902Christopher Ferris#define DRM_VMW_EXECBUF_VERSION 2 1071308ad3ab33294c3abfd96da12b6df58b381ce52Christopher Ferris#define DRM_VMW_EXECBUF_FLAG_IMPORT_FENCE_FD (1 << 0) 1081308ad3ab33294c3abfd96da12b6df58b381ce52Christopher Ferris#define DRM_VMW_EXECBUF_FLAG_EXPORT_FENCE_FD (1 << 1) 109655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct drm_vmw_execbuf_arg { 110106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u64 commands; 111106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u32 command_size; 112106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u32 throttle_us; 113106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u64 fence_rep; 114106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u32 version; 115106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u32 flags; 116106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u32 context_handle; 1171308ad3ab33294c3abfd96da12b6df58b381ce52Christopher Ferris __s32 imported_fence_fd; 118655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng}; 119655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct drm_vmw_fence_rep { 120106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u32 handle; 121106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u32 mask; 122106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u32 seqno; 123106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u32 passed_seqno; 1241308ad3ab33294c3abfd96da12b6df58b381ce52Christopher Ferris __s32 fd; 125106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __s32 error; 126655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng}; 127655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct drm_vmw_alloc_dmabuf_req { 128106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u32 size; 129106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u32 pad64; 130655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng}; 131655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct drm_vmw_dmabuf_rep { 132106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u64 map_handle; 133106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u32 handle; 134106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u32 cur_gmr_id; 135106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u32 cur_gmr_offset; 136106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u32 pad64; 137655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng}; 138655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengunion drm_vmw_alloc_dmabuf_arg { 139d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao struct drm_vmw_alloc_dmabuf_req req; 14005d08e9716b5974d6ed08973f44930804890b902Christopher Ferris struct drm_vmw_dmabuf_rep rep; 141655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng}; 142106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferrisstruct drm_vmw_unref_dmabuf_arg { 143106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u32 handle; 144106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u32 pad64; 145655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng}; 146655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct drm_vmw_rect { 147106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __s32 x; 148106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __s32 y; 149106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u32 w; 150106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u32 h; 151655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng}; 15205d08e9716b5974d6ed08973f44930804890b902Christopher Ferrisstruct drm_vmw_control_stream_arg { 153106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u32 stream_id; 154106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u32 enabled; 155106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u32 flags; 156106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u32 color_key; 157106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u32 handle; 158106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u32 offset; 159106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __s32 format; 160106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u32 size; 161106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u32 width; 162106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u32 height; 163106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u32 pitch[3]; 164106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u32 pad64; 165d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao struct drm_vmw_rect src; 166d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao struct drm_vmw_rect dst; 167655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng}; 16805d08e9716b5974d6ed08973f44930804890b902Christopher Ferris#define DRM_VMW_CURSOR_BYPASS_ALL (1 << 0) 169655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define DRM_VMW_CURSOR_BYPASS_FLAGS (1) 170106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferrisstruct drm_vmw_cursor_bypass_arg { 171106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u32 flags; 172106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u32 crtc_id; 173106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __s32 xpos; 174106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __s32 ypos; 175106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __s32 xhot; 176106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __s32 yhot; 177655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng}; 178106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferrisstruct drm_vmw_stream_arg { 179106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u32 stream_id; 180106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u32 pad64; 181655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng}; 182655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct drm_vmw_get_3d_cap_arg { 183106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u64 buffer; 184106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u32 max_size; 185106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u32 pad64; 186655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng}; 187655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define DRM_VMW_FENCE_FLAG_EXEC (1 << 0) 18805d08e9716b5974d6ed08973f44930804890b902Christopher Ferris#define DRM_VMW_FENCE_FLAG_QUERY (1 << 1) 189655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define DRM_VMW_WAIT_OPTION_UNREF (1 << 0) 190655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct drm_vmw_fence_wait_arg { 191106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u32 handle; 192106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __s32 cookie_valid; 193106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u64 kernel_cookie; 194106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u64 timeout_us; 195106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __s32 lazy; 196106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __s32 flags; 197106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __s32 wait_options; 198106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __s32 pad64; 199655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng}; 20005d08e9716b5974d6ed08973f44930804890b902Christopher Ferrisstruct drm_vmw_fence_signaled_arg { 201106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u32 handle; 202106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u32 flags; 203106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __s32 signaled; 204106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u32 passed_seqno; 205106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u32 signaled_flags; 206106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u32 pad64; 207655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng}; 208106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferrisstruct drm_vmw_fence_arg { 209106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u32 handle; 210106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u32 pad64; 211106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris}; 21205d08e9716b5974d6ed08973f44930804890b902Christopher Ferris#define DRM_VMW_EVENT_FENCE_SIGNALED 0x80000000 213655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct drm_vmw_event_fence { 214d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao struct drm_event base; 215106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u64 user_data; 216106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u32 tv_sec; 217106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u32 tv_usec; 218655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng}; 219655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define DRM_VMW_FE_FLAG_REQ_TIME (1 << 0) 22005d08e9716b5974d6ed08973f44930804890b902Christopher Ferrisstruct drm_vmw_fence_event_arg { 221106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u64 fence_rep; 222106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u64 user_data; 223106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u32 handle; 224106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u32 flags; 225655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng}; 226655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct drm_vmw_present_arg { 227106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u32 fb_id; 228106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u32 sid; 229106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __s32 dest_x; 230106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __s32 dest_y; 231106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u64 clips_ptr; 232106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u32 num_clips; 233106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u32 pad64; 234655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng}; 235655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct drm_vmw_present_readback_arg { 236106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u32 fb_id; 237106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u32 num_clips; 238106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u64 clips_ptr; 239106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u64 fence_rep; 24005d08e9716b5974d6ed08973f44930804890b902Christopher Ferris}; 241655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct drm_vmw_update_layout_arg { 242106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u32 num_outputs; 243106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u32 pad64; 244106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u64 rects; 24538062f954c637861348dd8078cefb73554e6f12cChristopher Ferris}; 24638062f954c637861348dd8078cefb73554e6f12cChristopher Ferrisenum drm_vmw_shader_type { 247d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao drm_vmw_shader_type_vs = 0, 24805d08e9716b5974d6ed08973f44930804890b902Christopher Ferris drm_vmw_shader_type_ps, 24938062f954c637861348dd8078cefb73554e6f12cChristopher Ferris}; 25038062f954c637861348dd8078cefb73554e6f12cChristopher Ferrisstruct drm_vmw_shader_create_arg { 251d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao enum drm_vmw_shader_type shader_type; 252106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u32 size; 253106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u32 buffer_handle; 254106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u32 shader_handle; 255106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u64 offset; 25638062f954c637861348dd8078cefb73554e6f12cChristopher Ferris}; 25738062f954c637861348dd8078cefb73554e6f12cChristopher Ferrisstruct drm_vmw_shader_arg { 258106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u32 handle; 259106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u32 pad64; 26038062f954c637861348dd8078cefb73554e6f12cChristopher Ferris}; 26138062f954c637861348dd8078cefb73554e6f12cChristopher Ferrisenum drm_vmw_surface_flags { 262d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao drm_vmw_surface_flag_shareable = (1 << 0), 263d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao drm_vmw_surface_flag_scanout = (1 << 1), 264d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao drm_vmw_surface_flag_create_buffer = (1 << 2) 26538062f954c637861348dd8078cefb73554e6f12cChristopher Ferris}; 26638062f954c637861348dd8078cefb73554e6f12cChristopher Ferrisstruct drm_vmw_gb_surface_create_req { 267106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u32 svga3d_flags; 268106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u32 format; 269106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u32 mip_levels; 270d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao enum drm_vmw_surface_flags drm_surface_flags; 271106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u32 multisample_count; 272106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u32 autogen_filter; 273106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u32 buffer_handle; 274106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u32 array_size; 275d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao struct drm_vmw_size base_size; 27638062f954c637861348dd8078cefb73554e6f12cChristopher Ferris}; 27738062f954c637861348dd8078cefb73554e6f12cChristopher Ferrisstruct drm_vmw_gb_surface_create_rep { 278106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u32 handle; 279106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u32 backup_size; 280106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u32 buffer_handle; 281106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u32 buffer_size; 282106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u64 buffer_map_handle; 283106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris}; 28438062f954c637861348dd8078cefb73554e6f12cChristopher Ferrisunion drm_vmw_gb_surface_create_arg { 285d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao struct drm_vmw_gb_surface_create_rep rep; 286d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao struct drm_vmw_gb_surface_create_req req; 28738062f954c637861348dd8078cefb73554e6f12cChristopher Ferris}; 28838062f954c637861348dd8078cefb73554e6f12cChristopher Ferrisstruct drm_vmw_gb_surface_ref_rep { 289d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao struct drm_vmw_gb_surface_create_req creq; 290d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao struct drm_vmw_gb_surface_create_rep crep; 29138062f954c637861348dd8078cefb73554e6f12cChristopher Ferris}; 29238062f954c637861348dd8078cefb73554e6f12cChristopher Ferrisunion drm_vmw_gb_surface_reference_arg { 293d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao struct drm_vmw_gb_surface_ref_rep rep; 294d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao struct drm_vmw_surface_arg req; 29538062f954c637861348dd8078cefb73554e6f12cChristopher Ferris}; 29638062f954c637861348dd8078cefb73554e6f12cChristopher Ferrisenum drm_vmw_synccpu_flags { 297d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao drm_vmw_synccpu_read = (1 << 0), 298d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao drm_vmw_synccpu_write = (1 << 1), 299d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao drm_vmw_synccpu_dontblock = (1 << 2), 300d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao drm_vmw_synccpu_allow_cs = (1 << 3) 30138062f954c637861348dd8078cefb73554e6f12cChristopher Ferris}; 30238062f954c637861348dd8078cefb73554e6f12cChristopher Ferrisenum drm_vmw_synccpu_op { 303d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao drm_vmw_synccpu_grab, 304d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao drm_vmw_synccpu_release 30538062f954c637861348dd8078cefb73554e6f12cChristopher Ferris}; 30638062f954c637861348dd8078cefb73554e6f12cChristopher Ferrisstruct drm_vmw_synccpu_arg { 307d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao enum drm_vmw_synccpu_op op; 308d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao enum drm_vmw_synccpu_flags flags; 309106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u32 handle; 310106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u32 pad64; 311106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris}; 31205d08e9716b5974d6ed08973f44930804890b902Christopher Ferrisenum drm_vmw_extended_context { 31305d08e9716b5974d6ed08973f44930804890b902Christopher Ferris drm_vmw_context_legacy, 31405d08e9716b5974d6ed08973f44930804890b902Christopher Ferris drm_vmw_context_dx 31505d08e9716b5974d6ed08973f44930804890b902Christopher Ferris}; 31605d08e9716b5974d6ed08973f44930804890b902Christopher Ferrisunion drm_vmw_extended_context_arg { 31705d08e9716b5974d6ed08973f44930804890b902Christopher Ferris enum drm_vmw_extended_context req; 31805d08e9716b5974d6ed08973f44930804890b902Christopher Ferris struct drm_vmw_context_arg rep; 31905d08e9716b5974d6ed08973f44930804890b902Christopher Ferris}; 320525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferrisstruct drm_vmw_handle_close_arg { 321525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris __u32 handle; 322525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris __u32 pad64; 323525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris}; 324106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris#ifdef __cplusplus 325106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris#endif 32638062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#endif 327