blob: 2f75589e7d0b963c8cc865225989b17d1853fcf4 [file] [log] [blame]
Ben Cheng655a7c02013-10-16 16:09:24 -07001/****************************************************************************
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__
Christopher Ferris106b3a82016-08-24 12:15:38 -070021#include "drm.h"
22#ifdef __cplusplus
Christopher Ferris48fe0ae2019-01-10 15:59:33 -080023extern "C" {
Christopher Ferris106b3a82016-08-24 12:15:38 -070024#endif
25#define DRM_VMW_MAX_SURFACE_FACES 6
Christopher Ferris38062f92014-07-09 15:33:25 -070026#define DRM_VMW_MAX_MIP_LEVELS 24
Ben Cheng655a7c02013-10-16 16:09:24 -070027#define DRM_VMW_GET_PARAM 0
28#define DRM_VMW_ALLOC_DMABUF 1
Christopher Ferris9ce28842018-10-25 12:11:39 -070029#define DRM_VMW_ALLOC_BO 1
Ben Cheng655a7c02013-10-16 16:09:24 -070030#define DRM_VMW_UNREF_DMABUF 2
Christopher Ferris525ce912017-07-26 13:12:53 -070031#define DRM_VMW_HANDLE_CLOSE 2
Christopher Ferris38062f92014-07-09 15:33:25 -070032#define DRM_VMW_CURSOR_BYPASS 3
Ben Cheng655a7c02013-10-16 16:09:24 -070033#define DRM_VMW_CONTROL_STREAM 4
34#define DRM_VMW_CLAIM_STREAM 5
35#define DRM_VMW_UNREF_STREAM 6
Christopher Ferris38062f92014-07-09 15:33:25 -070036#define DRM_VMW_CREATE_CONTEXT 7
Ben Cheng655a7c02013-10-16 16:09:24 -070037#define DRM_VMW_UNREF_CONTEXT 8
38#define DRM_VMW_CREATE_SURFACE 9
39#define DRM_VMW_UNREF_SURFACE 10
Christopher Ferris38062f92014-07-09 15:33:25 -070040#define DRM_VMW_REF_SURFACE 11
Ben Cheng655a7c02013-10-16 16:09:24 -070041#define DRM_VMW_EXECBUF 12
42#define DRM_VMW_GET_3D_CAP 13
43#define DRM_VMW_FENCE_WAIT 14
Christopher Ferris38062f92014-07-09 15:33:25 -070044#define DRM_VMW_FENCE_SIGNALED 15
Ben Cheng655a7c02013-10-16 16:09:24 -070045#define DRM_VMW_FENCE_UNREF 16
46#define DRM_VMW_FENCE_EVENT 17
47#define DRM_VMW_PRESENT 18
Christopher Ferris38062f92014-07-09 15:33:25 -070048#define DRM_VMW_PRESENT_READBACK 19
Ben Cheng655a7c02013-10-16 16:09:24 -070049#define DRM_VMW_UPDATE_LAYOUT 20
Christopher Ferris38062f92014-07-09 15:33:25 -070050#define DRM_VMW_CREATE_SHADER 21
51#define DRM_VMW_UNREF_SHADER 22
Christopher Ferris38062f92014-07-09 15:33:25 -070052#define DRM_VMW_GB_SURFACE_CREATE 23
53#define DRM_VMW_GB_SURFACE_REF 24
54#define DRM_VMW_SYNCCPU 25
Christopher Ferris05d08e92016-02-04 13:16:38 -080055#define DRM_VMW_CREATE_EXTENDED_CONTEXT 26
Christopher Ferris9ce28842018-10-25 12:11:39 -070056#define DRM_VMW_GB_SURFACE_CREATE_EXT 27
57#define DRM_VMW_GB_SURFACE_REF_EXT 28
Christopher Ferrisbb9fcb42020-04-06 11:38:04 -070058#define DRM_VMW_MSG 29
Christopher Ferris2abfa9e2021-11-01 16:26:06 -070059#define DRM_VMW_MKSSTAT_RESET 30
60#define DRM_VMW_MKSSTAT_ADD 31
61#define DRM_VMW_MKSSTAT_REMOVE 32
Christopher Ferris05d08e92016-02-04 13:16:38 -080062#define DRM_VMW_PARAM_NUM_STREAMS 0
Ben Cheng655a7c02013-10-16 16:09:24 -070063#define DRM_VMW_PARAM_NUM_FREE_STREAMS 1
64#define DRM_VMW_PARAM_3D 2
Ben Cheng655a7c02013-10-16 16:09:24 -070065#define DRM_VMW_PARAM_HW_CAPS 3
Christopher Ferris05d08e92016-02-04 13:16:38 -080066#define DRM_VMW_PARAM_FIFO_CAPS 4
Ben Cheng655a7c02013-10-16 16:09:24 -070067#define DRM_VMW_PARAM_MAX_FB_SIZE 5
68#define DRM_VMW_PARAM_FIFO_HW_VERSION 6
Christopher Ferris38062f92014-07-09 15:33:25 -070069#define DRM_VMW_PARAM_MAX_SURF_MEMORY 7
Christopher Ferris05d08e92016-02-04 13:16:38 -080070#define DRM_VMW_PARAM_3D_CAPS_SIZE 8
Christopher Ferris38062f92014-07-09 15:33:25 -070071#define DRM_VMW_PARAM_MAX_MOB_MEMORY 9
72#define DRM_VMW_PARAM_MAX_MOB_SIZE 10
Christopher Ferris05d08e92016-02-04 13:16:38 -080073#define DRM_VMW_PARAM_SCREEN_TARGET 11
Christopher Ferris05d08e92016-02-04 13:16:38 -080074#define DRM_VMW_PARAM_DX 12
Christopher Ferris9ce28842018-10-25 12:11:39 -070075#define DRM_VMW_PARAM_HW_CAPS2 13
76#define DRM_VMW_PARAM_SM4_1 14
Christopher Ferrisaf09c702020-06-01 20:29:29 -070077#define DRM_VMW_PARAM_SM5 15
Christopher Ferris1ed55342022-03-22 16:06:25 -070078#define DRM_VMW_PARAM_GL43 16
Christopher Ferris80ae69d2022-08-02 16:32:21 -070079#define DRM_VMW_PARAM_DEVICE_ID 17
Christopher Ferrisba8d4f42014-09-03 19:56:49 -070080enum drm_vmw_handle_type {
Tao Baod7db5942015-01-28 10:07:51 -080081 DRM_VMW_HANDLE_LEGACY = 0,
Tao Baod7db5942015-01-28 10:07:51 -080082 DRM_VMW_HANDLE_PRIME = 1
Christopher Ferrisba8d4f42014-09-03 19:56:49 -070083};
Ben Cheng655a7c02013-10-16 16:09:24 -070084struct drm_vmw_getparam_arg {
Christopher Ferris106b3a82016-08-24 12:15:38 -070085 __u64 value;
86 __u32 param;
87 __u32 pad64;
Ben Cheng655a7c02013-10-16 16:09:24 -070088};
89struct drm_vmw_context_arg {
Christopher Ferris106b3a82016-08-24 12:15:38 -070090 __s32 cid;
91 __u32 pad64;
Ben Cheng655a7c02013-10-16 16:09:24 -070092};
93struct drm_vmw_surface_create_req {
Christopher Ferris106b3a82016-08-24 12:15:38 -070094 __u32 flags;
95 __u32 format;
96 __u32 mip_levels[DRM_VMW_MAX_SURFACE_FACES];
Christopher Ferris106b3a82016-08-24 12:15:38 -070097 __u64 size_addr;
98 __s32 shareable;
99 __s32 scanout;
Ben Cheng655a7c02013-10-16 16:09:24 -0700100};
Christopher Ferris106b3a82016-08-24 12:15:38 -0700101struct drm_vmw_surface_arg {
102 __s32 sid;
Tao Baod7db5942015-01-28 10:07:51 -0800103 enum drm_vmw_handle_type handle_type;
Ben Cheng655a7c02013-10-16 16:09:24 -0700104};
105struct drm_vmw_size {
Christopher Ferris106b3a82016-08-24 12:15:38 -0700106 __u32 width;
107 __u32 height;
108 __u32 depth;
Christopher Ferris106b3a82016-08-24 12:15:38 -0700109 __u32 pad64;
Ben Cheng655a7c02013-10-16 16:09:24 -0700110};
111union drm_vmw_surface_create_arg {
Tao Baod7db5942015-01-28 10:07:51 -0800112 struct drm_vmw_surface_arg rep;
113 struct drm_vmw_surface_create_req req;
Ben Cheng655a7c02013-10-16 16:09:24 -0700114};
115union drm_vmw_surface_reference_arg {
Tao Baod7db5942015-01-28 10:07:51 -0800116 struct drm_vmw_surface_create_req rep;
117 struct drm_vmw_surface_arg req;
Ben Cheng655a7c02013-10-16 16:09:24 -0700118};
Christopher Ferris05d08e92016-02-04 13:16:38 -0800119#define DRM_VMW_EXECBUF_VERSION 2
Christopher Ferris1308ad32017-11-14 17:32:13 -0800120#define DRM_VMW_EXECBUF_FLAG_IMPORT_FENCE_FD (1 << 0)
121#define DRM_VMW_EXECBUF_FLAG_EXPORT_FENCE_FD (1 << 1)
Ben Cheng655a7c02013-10-16 16:09:24 -0700122struct drm_vmw_execbuf_arg {
Christopher Ferris106b3a82016-08-24 12:15:38 -0700123 __u64 commands;
124 __u32 command_size;
125 __u32 throttle_us;
126 __u64 fence_rep;
Christopher Ferris106b3a82016-08-24 12:15:38 -0700127 __u32 version;
128 __u32 flags;
129 __u32 context_handle;
Christopher Ferris1308ad32017-11-14 17:32:13 -0800130 __s32 imported_fence_fd;
Ben Cheng655a7c02013-10-16 16:09:24 -0700131};
Ben Cheng655a7c02013-10-16 16:09:24 -0700132struct drm_vmw_fence_rep {
Christopher Ferris106b3a82016-08-24 12:15:38 -0700133 __u32 handle;
134 __u32 mask;
Christopher Ferris106b3a82016-08-24 12:15:38 -0700135 __u32 seqno;
136 __u32 passed_seqno;
Christopher Ferris1308ad32017-11-14 17:32:13 -0800137 __s32 fd;
Christopher Ferris106b3a82016-08-24 12:15:38 -0700138 __s32 error;
Ben Cheng655a7c02013-10-16 16:09:24 -0700139};
Christopher Ferris9ce28842018-10-25 12:11:39 -0700140struct drm_vmw_alloc_bo_req {
Christopher Ferris106b3a82016-08-24 12:15:38 -0700141 __u32 size;
142 __u32 pad64;
Ben Cheng655a7c02013-10-16 16:09:24 -0700143};
Christopher Ferris9ce28842018-10-25 12:11:39 -0700144#define drm_vmw_alloc_dmabuf_req drm_vmw_alloc_bo_req
145struct drm_vmw_bo_rep {
Christopher Ferris106b3a82016-08-24 12:15:38 -0700146 __u64 map_handle;
147 __u32 handle;
Christopher Ferris106b3a82016-08-24 12:15:38 -0700148 __u32 cur_gmr_id;
149 __u32 cur_gmr_offset;
150 __u32 pad64;
Ben Cheng655a7c02013-10-16 16:09:24 -0700151};
Christopher Ferris9ce28842018-10-25 12:11:39 -0700152#define drm_vmw_dmabuf_rep drm_vmw_bo_rep
153union drm_vmw_alloc_bo_arg {
154 struct drm_vmw_alloc_bo_req req;
155 struct drm_vmw_bo_rep rep;
Ben Cheng655a7c02013-10-16 16:09:24 -0700156};
Christopher Ferris9ce28842018-10-25 12:11:39 -0700157#define drm_vmw_alloc_dmabuf_arg drm_vmw_alloc_bo_arg
Ben Cheng655a7c02013-10-16 16:09:24 -0700158struct drm_vmw_rect {
Christopher Ferris106b3a82016-08-24 12:15:38 -0700159 __s32 x;
160 __s32 y;
161 __u32 w;
Christopher Ferris106b3a82016-08-24 12:15:38 -0700162 __u32 h;
Ben Cheng655a7c02013-10-16 16:09:24 -0700163};
Christopher Ferris05d08e92016-02-04 13:16:38 -0800164struct drm_vmw_control_stream_arg {
Christopher Ferris106b3a82016-08-24 12:15:38 -0700165 __u32 stream_id;
Christopher Ferris106b3a82016-08-24 12:15:38 -0700166 __u32 enabled;
167 __u32 flags;
168 __u32 color_key;
169 __u32 handle;
Christopher Ferris106b3a82016-08-24 12:15:38 -0700170 __u32 offset;
171 __s32 format;
172 __u32 size;
173 __u32 width;
Christopher Ferris106b3a82016-08-24 12:15:38 -0700174 __u32 height;
175 __u32 pitch[3];
176 __u32 pad64;
Tao Baod7db5942015-01-28 10:07:51 -0800177 struct drm_vmw_rect src;
178 struct drm_vmw_rect dst;
Ben Cheng655a7c02013-10-16 16:09:24 -0700179};
Christopher Ferris05d08e92016-02-04 13:16:38 -0800180#define DRM_VMW_CURSOR_BYPASS_ALL (1 << 0)
Ben Cheng655a7c02013-10-16 16:09:24 -0700181#define DRM_VMW_CURSOR_BYPASS_FLAGS (1)
182struct drm_vmw_cursor_bypass_arg {
Christopher Ferris106b3a82016-08-24 12:15:38 -0700183 __u32 flags;
184 __u32 crtc_id;
185 __s32 xpos;
Christopher Ferris106b3a82016-08-24 12:15:38 -0700186 __s32 ypos;
187 __s32 xhot;
188 __s32 yhot;
Ben Cheng655a7c02013-10-16 16:09:24 -0700189};
190struct drm_vmw_stream_arg {
Christopher Ferris106b3a82016-08-24 12:15:38 -0700191 __u32 stream_id;
192 __u32 pad64;
Ben Cheng655a7c02013-10-16 16:09:24 -0700193};
Christopher Ferris106b3a82016-08-24 12:15:38 -0700194struct drm_vmw_get_3d_cap_arg {
195 __u64 buffer;
196 __u32 max_size;
197 __u32 pad64;
Ben Cheng655a7c02013-10-16 16:09:24 -0700198};
Ben Cheng655a7c02013-10-16 16:09:24 -0700199#define DRM_VMW_FENCE_FLAG_EXEC (1 << 0)
Christopher Ferris05d08e92016-02-04 13:16:38 -0800200#define DRM_VMW_FENCE_FLAG_QUERY (1 << 1)
Ben Cheng655a7c02013-10-16 16:09:24 -0700201#define DRM_VMW_WAIT_OPTION_UNREF (1 << 0)
202struct drm_vmw_fence_wait_arg {
Christopher Ferris106b3a82016-08-24 12:15:38 -0700203 __u32 handle;
204 __s32 cookie_valid;
205 __u64 kernel_cookie;
Christopher Ferris106b3a82016-08-24 12:15:38 -0700206 __u64 timeout_us;
207 __s32 lazy;
208 __s32 flags;
209 __s32 wait_options;
Christopher Ferris106b3a82016-08-24 12:15:38 -0700210 __s32 pad64;
Ben Cheng655a7c02013-10-16 16:09:24 -0700211};
Christopher Ferris05d08e92016-02-04 13:16:38 -0800212struct drm_vmw_fence_signaled_arg {
Christopher Ferris106b3a82016-08-24 12:15:38 -0700213 __u32 handle;
Christopher Ferris106b3a82016-08-24 12:15:38 -0700214 __u32 flags;
215 __s32 signaled;
216 __u32 passed_seqno;
217 __u32 signaled_flags;
Christopher Ferris106b3a82016-08-24 12:15:38 -0700218 __u32 pad64;
Ben Cheng655a7c02013-10-16 16:09:24 -0700219};
Christopher Ferris05d08e92016-02-04 13:16:38 -0800220struct drm_vmw_fence_arg {
Christopher Ferris106b3a82016-08-24 12:15:38 -0700221 __u32 handle;
Christopher Ferris106b3a82016-08-24 12:15:38 -0700222 __u32 pad64;
223};
Christopher Ferris05d08e92016-02-04 13:16:38 -0800224#define DRM_VMW_EVENT_FENCE_SIGNALED 0x80000000
Ben Cheng655a7c02013-10-16 16:09:24 -0700225struct drm_vmw_event_fence {
Christopher Ferris106b3a82016-08-24 12:15:38 -0700226 struct drm_event base;
227 __u64 user_data;
228 __u32 tv_sec;
229 __u32 tv_usec;
Ben Cheng655a7c02013-10-16 16:09:24 -0700230};
Ben Cheng655a7c02013-10-16 16:09:24 -0700231#define DRM_VMW_FE_FLAG_REQ_TIME (1 << 0)
Christopher Ferris05d08e92016-02-04 13:16:38 -0800232struct drm_vmw_fence_event_arg {
Christopher Ferris106b3a82016-08-24 12:15:38 -0700233 __u64 fence_rep;
Christopher Ferris106b3a82016-08-24 12:15:38 -0700234 __u64 user_data;
235 __u32 handle;
236 __u32 flags;
Ben Cheng655a7c02013-10-16 16:09:24 -0700237};
238struct drm_vmw_present_arg {
Christopher Ferris106b3a82016-08-24 12:15:38 -0700239 __u32 fb_id;
240 __u32 sid;
241 __s32 dest_x;
Christopher Ferris106b3a82016-08-24 12:15:38 -0700242 __s32 dest_y;
243 __u64 clips_ptr;
244 __u32 num_clips;
245 __u32 pad64;
Ben Cheng655a7c02013-10-16 16:09:24 -0700246};
Ben Cheng655a7c02013-10-16 16:09:24 -0700247struct drm_vmw_present_readback_arg {
Christopher Ferris106b3a82016-08-24 12:15:38 -0700248 __u32 fb_id;
249 __u32 num_clips;
Christopher Ferris106b3a82016-08-24 12:15:38 -0700250 __u64 clips_ptr;
251 __u64 fence_rep;
Christopher Ferris05d08e92016-02-04 13:16:38 -0800252};
Ben Cheng655a7c02013-10-16 16:09:24 -0700253struct drm_vmw_update_layout_arg {
Christopher Ferris106b3a82016-08-24 12:15:38 -0700254 __u32 num_outputs;
255 __u32 pad64;
256 __u64 rects;
Christopher Ferris38062f92014-07-09 15:33:25 -0700257};
258enum drm_vmw_shader_type {
Tao Baod7db5942015-01-28 10:07:51 -0800259 drm_vmw_shader_type_vs = 0,
Christopher Ferris05d08e92016-02-04 13:16:38 -0800260 drm_vmw_shader_type_ps,
Christopher Ferris38062f92014-07-09 15:33:25 -0700261};
262struct drm_vmw_shader_create_arg {
Tao Baod7db5942015-01-28 10:07:51 -0800263 enum drm_vmw_shader_type shader_type;
Christopher Ferris106b3a82016-08-24 12:15:38 -0700264 __u32 size;
265 __u32 buffer_handle;
Christopher Ferris106b3a82016-08-24 12:15:38 -0700266 __u32 shader_handle;
267 __u64 offset;
Christopher Ferris38062f92014-07-09 15:33:25 -0700268};
269struct drm_vmw_shader_arg {
Christopher Ferris106b3a82016-08-24 12:15:38 -0700270 __u32 handle;
271 __u32 pad64;
Christopher Ferris38062f92014-07-09 15:33:25 -0700272};
273enum drm_vmw_surface_flags {
Tao Baod7db5942015-01-28 10:07:51 -0800274 drm_vmw_surface_flag_shareable = (1 << 0),
275 drm_vmw_surface_flag_scanout = (1 << 1),
Christopher Ferrisd32ca142020-02-04 16:16:51 -0800276 drm_vmw_surface_flag_create_buffer = (1 << 2),
277 drm_vmw_surface_flag_coherent = (1 << 3),
Christopher Ferris38062f92014-07-09 15:33:25 -0700278};
279struct drm_vmw_gb_surface_create_req {
Christopher Ferris106b3a82016-08-24 12:15:38 -0700280 __u32 svga3d_flags;
281 __u32 format;
282 __u32 mip_levels;
Tao Baod7db5942015-01-28 10:07:51 -0800283 enum drm_vmw_surface_flags drm_surface_flags;
Christopher Ferris106b3a82016-08-24 12:15:38 -0700284 __u32 multisample_count;
285 __u32 autogen_filter;
286 __u32 buffer_handle;
Christopher Ferris106b3a82016-08-24 12:15:38 -0700287 __u32 array_size;
Tao Baod7db5942015-01-28 10:07:51 -0800288 struct drm_vmw_size base_size;
Christopher Ferris38062f92014-07-09 15:33:25 -0700289};
290struct drm_vmw_gb_surface_create_rep {
Christopher Ferris106b3a82016-08-24 12:15:38 -0700291 __u32 handle;
292 __u32 backup_size;
293 __u32 buffer_handle;
294 __u32 buffer_size;
Christopher Ferris106b3a82016-08-24 12:15:38 -0700295 __u64 buffer_map_handle;
Christopher Ferris38062f92014-07-09 15:33:25 -0700296};
Christopher Ferris38062f92014-07-09 15:33:25 -0700297union drm_vmw_gb_surface_create_arg {
Tao Baod7db5942015-01-28 10:07:51 -0800298 struct drm_vmw_gb_surface_create_rep rep;
299 struct drm_vmw_gb_surface_create_req req;
Christopher Ferris38062f92014-07-09 15:33:25 -0700300};
Christopher Ferris38062f92014-07-09 15:33:25 -0700301struct drm_vmw_gb_surface_ref_rep {
Tao Baod7db5942015-01-28 10:07:51 -0800302 struct drm_vmw_gb_surface_create_req creq;
303 struct drm_vmw_gb_surface_create_rep crep;
Christopher Ferris38062f92014-07-09 15:33:25 -0700304};
Christopher Ferris38062f92014-07-09 15:33:25 -0700305union drm_vmw_gb_surface_reference_arg {
Tao Baod7db5942015-01-28 10:07:51 -0800306 struct drm_vmw_gb_surface_ref_rep rep;
307 struct drm_vmw_surface_arg req;
Christopher Ferris38062f92014-07-09 15:33:25 -0700308};
Christopher Ferris38062f92014-07-09 15:33:25 -0700309enum drm_vmw_synccpu_flags {
Tao Baod7db5942015-01-28 10:07:51 -0800310 drm_vmw_synccpu_read = (1 << 0),
311 drm_vmw_synccpu_write = (1 << 1),
312 drm_vmw_synccpu_dontblock = (1 << 2),
Tao Baod7db5942015-01-28 10:07:51 -0800313 drm_vmw_synccpu_allow_cs = (1 << 3)
Christopher Ferris38062f92014-07-09 15:33:25 -0700314};
315enum drm_vmw_synccpu_op {
Tao Baod7db5942015-01-28 10:07:51 -0800316 drm_vmw_synccpu_grab,
Tao Baod7db5942015-01-28 10:07:51 -0800317 drm_vmw_synccpu_release
Christopher Ferris38062f92014-07-09 15:33:25 -0700318};
319struct drm_vmw_synccpu_arg {
Tao Baod7db5942015-01-28 10:07:51 -0800320 enum drm_vmw_synccpu_op op;
Tao Baod7db5942015-01-28 10:07:51 -0800321 enum drm_vmw_synccpu_flags flags;
Christopher Ferris106b3a82016-08-24 12:15:38 -0700322 __u32 handle;
Christopher Ferris106b3a82016-08-24 12:15:38 -0700323 __u32 pad64;
324};
Christopher Ferris05d08e92016-02-04 13:16:38 -0800325enum drm_vmw_extended_context {
326 drm_vmw_context_legacy,
327 drm_vmw_context_dx
328};
Christopher Ferris05d08e92016-02-04 13:16:38 -0800329union drm_vmw_extended_context_arg {
330 enum drm_vmw_extended_context req;
331 struct drm_vmw_context_arg rep;
332};
Christopher Ferris525ce912017-07-26 13:12:53 -0700333struct drm_vmw_handle_close_arg {
334 __u32 handle;
335 __u32 pad64;
336};
Christopher Ferris9ce28842018-10-25 12:11:39 -0700337#define drm_vmw_unref_dmabuf_arg drm_vmw_handle_close_arg
338enum drm_vmw_surface_version {
Christopher Ferrisaf09c702020-06-01 20:29:29 -0700339 drm_vmw_gb_surface_v1,
Christopher Ferris9ce28842018-10-25 12:11:39 -0700340};
341struct drm_vmw_gb_surface_create_ext_req {
342 struct drm_vmw_gb_surface_create_req base;
343 enum drm_vmw_surface_version version;
Christopher Ferrisaf09c702020-06-01 20:29:29 -0700344 __u32 svga3d_flags_upper_32_bits;
345 __u32 multisample_pattern;
346 __u32 quality_level;
347 __u32 buffer_byte_stride;
348 __u32 must_be_zero;
Christopher Ferris9ce28842018-10-25 12:11:39 -0700349};
350union drm_vmw_gb_surface_create_ext_arg {
351 struct drm_vmw_gb_surface_create_rep rep;
352 struct drm_vmw_gb_surface_create_ext_req req;
353};
354struct drm_vmw_gb_surface_ref_ext_rep {
355 struct drm_vmw_gb_surface_create_ext_req creq;
356 struct drm_vmw_gb_surface_create_rep crep;
357};
358union drm_vmw_gb_surface_reference_ext_arg {
359 struct drm_vmw_gb_surface_ref_ext_rep rep;
360 struct drm_vmw_surface_arg req;
361};
Christopher Ferrisbb9fcb42020-04-06 11:38:04 -0700362struct drm_vmw_msg_arg {
363 __u64 send;
364 __u64 receive;
365 __s32 send_only;
366 __u32 receive_len;
367};
Christopher Ferris2abfa9e2021-11-01 16:26:06 -0700368struct drm_vmw_mksstat_add_arg {
369 __u64 stat;
370 __u64 info;
371 __u64 strs;
372 __u64 stat_len;
373 __u64 info_len;
374 __u64 strs_len;
375 __u64 description;
376 __u64 id;
377};
378struct drm_vmw_mksstat_remove_arg {
379 __u64 id;
380};
Christopher Ferris106b3a82016-08-24 12:15:38 -0700381#ifdef __cplusplus
Christopher Ferris48fe0ae2019-01-10 15:59:33 -0800382}
Christopher Ferris106b3a82016-08-24 12:15:38 -0700383#endif
Christopher Ferris38062f92014-07-09 15:33:25 -0700384#endif