xref: /aosp_15_r20/external/mesa3d/include/drm-uapi/d3dkmthk.h (revision 6104692788411f58d303aa86923a9ff6ecaded22)
1*61046927SAndroid Build Coastguard Worker /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
2*61046927SAndroid Build Coastguard Worker 
3*61046927SAndroid Build Coastguard Worker /*
4*61046927SAndroid Build Coastguard Worker  * Copyright (c) 2019, Microsoft Corporation.
5*61046927SAndroid Build Coastguard Worker  *
6*61046927SAndroid Build Coastguard Worker  * Author:
7*61046927SAndroid Build Coastguard Worker  *   Iouri Tarassov <[email protected]>
8*61046927SAndroid Build Coastguard Worker  *
9*61046927SAndroid Build Coastguard Worker  * Dxgkrnl Graphics Driver
10*61046927SAndroid Build Coastguard Worker  * User mode WDDM interface definitions
11*61046927SAndroid Build Coastguard Worker  *
12*61046927SAndroid Build Coastguard Worker  */
13*61046927SAndroid Build Coastguard Worker 
14*61046927SAndroid Build Coastguard Worker #ifndef _D3DKMTHK_H
15*61046927SAndroid Build Coastguard Worker #define _D3DKMTHK_H
16*61046927SAndroid Build Coastguard Worker 
17*61046927SAndroid Build Coastguard Worker /*
18*61046927SAndroid Build Coastguard Worker  * This structure matches the definition of D3DKMTHANDLE in Windows.
19*61046927SAndroid Build Coastguard Worker  * The handle is opaque in user mode. It is used by user mode applications to
20*61046927SAndroid Build Coastguard Worker  * represent kernel mode objects, created by dxgkrnl.
21*61046927SAndroid Build Coastguard Worker  */
22*61046927SAndroid Build Coastguard Worker struct d3dkmthandle {
23*61046927SAndroid Build Coastguard Worker 	union {
24*61046927SAndroid Build Coastguard Worker 		struct {
25*61046927SAndroid Build Coastguard Worker 			__u32 instance	:  6;
26*61046927SAndroid Build Coastguard Worker 			__u32 index	: 24;
27*61046927SAndroid Build Coastguard Worker 			__u32 unique	: 2;
28*61046927SAndroid Build Coastguard Worker 		};
29*61046927SAndroid Build Coastguard Worker 		__u32 v;
30*61046927SAndroid Build Coastguard Worker 	};
31*61046927SAndroid Build Coastguard Worker };
32*61046927SAndroid Build Coastguard Worker 
33*61046927SAndroid Build Coastguard Worker /*
34*61046927SAndroid Build Coastguard Worker  * VM bus messages return Windows' NTSTATUS, which is integer and only negative
35*61046927SAndroid Build Coastguard Worker  * value indicates a failure. A positive number is a success and needs to be
36*61046927SAndroid Build Coastguard Worker  * returned to user mode as the IOCTL return code. Negative status codes are
37*61046927SAndroid Build Coastguard Worker  * converted to Linux error codes.
38*61046927SAndroid Build Coastguard Worker  */
39*61046927SAndroid Build Coastguard Worker struct ntstatus {
40*61046927SAndroid Build Coastguard Worker 	union {
41*61046927SAndroid Build Coastguard Worker 		struct {
42*61046927SAndroid Build Coastguard Worker 			int code	: 16;
43*61046927SAndroid Build Coastguard Worker 			int facility	: 13;
44*61046927SAndroid Build Coastguard Worker 			int customer	: 1;
45*61046927SAndroid Build Coastguard Worker 			int severity	: 2;
46*61046927SAndroid Build Coastguard Worker 		};
47*61046927SAndroid Build Coastguard Worker 		int v;
48*61046927SAndroid Build Coastguard Worker 	};
49*61046927SAndroid Build Coastguard Worker };
50*61046927SAndroid Build Coastguard Worker 
51*61046927SAndroid Build Coastguard Worker /*
52*61046927SAndroid Build Coastguard Worker  * Matches the Windows LUID definition.
53*61046927SAndroid Build Coastguard Worker  * LUID is a locally unique identifier (similar to GUID, but not global),
54*61046927SAndroid Build Coastguard Worker  * which is guaranteed to be unique intil the computer is rebooted.
55*61046927SAndroid Build Coastguard Worker  */
56*61046927SAndroid Build Coastguard Worker struct winluid {
57*61046927SAndroid Build Coastguard Worker 	__u32 a;
58*61046927SAndroid Build Coastguard Worker 	__u32 b;
59*61046927SAndroid Build Coastguard Worker };
60*61046927SAndroid Build Coastguard Worker 
61*61046927SAndroid Build Coastguard Worker #define D3DDDI_MAX_WRITTEN_PRIMARIES		16
62*61046927SAndroid Build Coastguard Worker 
63*61046927SAndroid Build Coastguard Worker #define D3DKMT_CREATEALLOCATION_MAX		1024
64*61046927SAndroid Build Coastguard Worker #define D3DKMT_MAKERESIDENT_ALLOC_MAX		(1024 * 10)
65*61046927SAndroid Build Coastguard Worker #define D3DKMT_ADAPTERS_MAX			64
66*61046927SAndroid Build Coastguard Worker #define D3DDDI_MAX_BROADCAST_CONTEXT		64
67*61046927SAndroid Build Coastguard Worker #define D3DDDI_MAX_OBJECT_WAITED_ON		32
68*61046927SAndroid Build Coastguard Worker #define D3DDDI_MAX_OBJECT_SIGNALED		32
69*61046927SAndroid Build Coastguard Worker 
70*61046927SAndroid Build Coastguard Worker struct d3dkmt_adapterinfo {
71*61046927SAndroid Build Coastguard Worker 	struct d3dkmthandle		adapter_handle;
72*61046927SAndroid Build Coastguard Worker 	struct winluid			adapter_luid;
73*61046927SAndroid Build Coastguard Worker 	__u32				num_sources;
74*61046927SAndroid Build Coastguard Worker 	__u32				present_move_regions_preferred;
75*61046927SAndroid Build Coastguard Worker };
76*61046927SAndroid Build Coastguard Worker 
77*61046927SAndroid Build Coastguard Worker struct d3dkmt_enumadapters2 {
78*61046927SAndroid Build Coastguard Worker 	__u32				num_adapters;
79*61046927SAndroid Build Coastguard Worker 	__u32				reserved;
80*61046927SAndroid Build Coastguard Worker #ifdef __KERNEL__
81*61046927SAndroid Build Coastguard Worker 	struct d3dkmt_adapterinfo	*adapters;
82*61046927SAndroid Build Coastguard Worker #else
83*61046927SAndroid Build Coastguard Worker 	__u64				*adapters;
84*61046927SAndroid Build Coastguard Worker #endif
85*61046927SAndroid Build Coastguard Worker };
86*61046927SAndroid Build Coastguard Worker 
87*61046927SAndroid Build Coastguard Worker struct d3dkmt_closeadapter {
88*61046927SAndroid Build Coastguard Worker 	struct d3dkmthandle		adapter_handle;
89*61046927SAndroid Build Coastguard Worker };
90*61046927SAndroid Build Coastguard Worker 
91*61046927SAndroid Build Coastguard Worker struct d3dkmt_openadapterfromluid {
92*61046927SAndroid Build Coastguard Worker 	struct winluid			adapter_luid;
93*61046927SAndroid Build Coastguard Worker 	struct d3dkmthandle		adapter_handle;
94*61046927SAndroid Build Coastguard Worker };
95*61046927SAndroid Build Coastguard Worker 
96*61046927SAndroid Build Coastguard Worker struct d3dddi_allocationlist {
97*61046927SAndroid Build Coastguard Worker 	struct d3dkmthandle		allocation;
98*61046927SAndroid Build Coastguard Worker 	union {
99*61046927SAndroid Build Coastguard Worker 		struct {
100*61046927SAndroid Build Coastguard Worker 			__u32		write_operation		:1;
101*61046927SAndroid Build Coastguard Worker 			__u32		do_not_retire_instance	:1;
102*61046927SAndroid Build Coastguard Worker 			__u32		offer_priority		:3;
103*61046927SAndroid Build Coastguard Worker 			__u32		reserved		:27;
104*61046927SAndroid Build Coastguard Worker 		};
105*61046927SAndroid Build Coastguard Worker 		__u32			value;
106*61046927SAndroid Build Coastguard Worker 	};
107*61046927SAndroid Build Coastguard Worker };
108*61046927SAndroid Build Coastguard Worker 
109*61046927SAndroid Build Coastguard Worker struct d3dddi_patchlocationlist {
110*61046927SAndroid Build Coastguard Worker 	__u32				allocation_index;
111*61046927SAndroid Build Coastguard Worker 	union {
112*61046927SAndroid Build Coastguard Worker 		struct {
113*61046927SAndroid Build Coastguard Worker 			__u32		slot_id:24;
114*61046927SAndroid Build Coastguard Worker 			__u32		reserved:8;
115*61046927SAndroid Build Coastguard Worker 		};
116*61046927SAndroid Build Coastguard Worker 		__u32			value;
117*61046927SAndroid Build Coastguard Worker 	};
118*61046927SAndroid Build Coastguard Worker 	__u32				driver_id;
119*61046927SAndroid Build Coastguard Worker 	__u32				allocation_offset;
120*61046927SAndroid Build Coastguard Worker 	__u32				patch_offset;
121*61046927SAndroid Build Coastguard Worker 	__u32				split_offset;
122*61046927SAndroid Build Coastguard Worker };
123*61046927SAndroid Build Coastguard Worker 
124*61046927SAndroid Build Coastguard Worker struct d3dkmt_createdeviceflags {
125*61046927SAndroid Build Coastguard Worker 	__u32				legacy_mode:1;
126*61046927SAndroid Build Coastguard Worker 	__u32				request_vSync:1;
127*61046927SAndroid Build Coastguard Worker 	__u32				disable_gpu_timeout:1;
128*61046927SAndroid Build Coastguard Worker 	__u32				gdi_device:1;
129*61046927SAndroid Build Coastguard Worker 	__u32				reserved:28;
130*61046927SAndroid Build Coastguard Worker };
131*61046927SAndroid Build Coastguard Worker 
132*61046927SAndroid Build Coastguard Worker struct d3dkmt_createdevice {
133*61046927SAndroid Build Coastguard Worker 	struct d3dkmthandle		adapter;
134*61046927SAndroid Build Coastguard Worker 	__u32				reserved3;
135*61046927SAndroid Build Coastguard Worker 	struct d3dkmt_createdeviceflags	flags;
136*61046927SAndroid Build Coastguard Worker 	struct d3dkmthandle		device;
137*61046927SAndroid Build Coastguard Worker #ifdef __KERNEL__
138*61046927SAndroid Build Coastguard Worker 	void				*command_buffer;
139*61046927SAndroid Build Coastguard Worker #else
140*61046927SAndroid Build Coastguard Worker 	__u64				command_buffer;
141*61046927SAndroid Build Coastguard Worker #endif
142*61046927SAndroid Build Coastguard Worker 	__u32				command_buffer_size;
143*61046927SAndroid Build Coastguard Worker 	__u32				reserved;
144*61046927SAndroid Build Coastguard Worker #ifdef __KERNEL__
145*61046927SAndroid Build Coastguard Worker 	struct d3dddi_allocationlist	*allocation_list;
146*61046927SAndroid Build Coastguard Worker #else
147*61046927SAndroid Build Coastguard Worker 	__u64				allocation_list;
148*61046927SAndroid Build Coastguard Worker #endif
149*61046927SAndroid Build Coastguard Worker 	__u32				allocation_list_size;
150*61046927SAndroid Build Coastguard Worker 	__u32				reserved1;
151*61046927SAndroid Build Coastguard Worker #ifdef __KERNEL__
152*61046927SAndroid Build Coastguard Worker 	struct d3dddi_patchlocationlist	*patch_location_list;
153*61046927SAndroid Build Coastguard Worker #else
154*61046927SAndroid Build Coastguard Worker 	__u64				patch_location_list;
155*61046927SAndroid Build Coastguard Worker #endif
156*61046927SAndroid Build Coastguard Worker 	__u32				patch_location_list_size;
157*61046927SAndroid Build Coastguard Worker 	__u32				reserved2;
158*61046927SAndroid Build Coastguard Worker };
159*61046927SAndroid Build Coastguard Worker 
160*61046927SAndroid Build Coastguard Worker struct d3dkmt_destroydevice {
161*61046927SAndroid Build Coastguard Worker 	struct d3dkmthandle		device;
162*61046927SAndroid Build Coastguard Worker };
163*61046927SAndroid Build Coastguard Worker 
164*61046927SAndroid Build Coastguard Worker enum d3dkmt_clienthint {
165*61046927SAndroid Build Coastguard Worker 	_D3DKMT_CLIENTHNT_UNKNOWN	= 0,
166*61046927SAndroid Build Coastguard Worker 	_D3DKMT_CLIENTHINT_OPENGL	= 1,
167*61046927SAndroid Build Coastguard Worker 	_D3DKMT_CLIENTHINT_CDD		= 2,
168*61046927SAndroid Build Coastguard Worker 	_D3DKMT_CLIENTHINT_DX7		= 7,
169*61046927SAndroid Build Coastguard Worker 	_D3DKMT_CLIENTHINT_DX8		= 8,
170*61046927SAndroid Build Coastguard Worker 	_D3DKMT_CLIENTHINT_DX9		= 9,
171*61046927SAndroid Build Coastguard Worker 	_D3DKMT_CLIENTHINT_DX10		= 10,
172*61046927SAndroid Build Coastguard Worker };
173*61046927SAndroid Build Coastguard Worker 
174*61046927SAndroid Build Coastguard Worker struct d3dddi_createcontextflags {
175*61046927SAndroid Build Coastguard Worker 	union {
176*61046927SAndroid Build Coastguard Worker 		struct {
177*61046927SAndroid Build Coastguard Worker 			__u32		null_rendering:1;
178*61046927SAndroid Build Coastguard Worker 			__u32		initial_data:1;
179*61046927SAndroid Build Coastguard Worker 			__u32		disable_gpu_timeout:1;
180*61046927SAndroid Build Coastguard Worker 			__u32		synchronization_only:1;
181*61046927SAndroid Build Coastguard Worker 			__u32		hw_queue_supported:1;
182*61046927SAndroid Build Coastguard Worker 			__u32		reserved:27;
183*61046927SAndroid Build Coastguard Worker 		};
184*61046927SAndroid Build Coastguard Worker 		__u32			value;
185*61046927SAndroid Build Coastguard Worker 	};
186*61046927SAndroid Build Coastguard Worker };
187*61046927SAndroid Build Coastguard Worker 
188*61046927SAndroid Build Coastguard Worker struct d3dkmt_destroycontext {
189*61046927SAndroid Build Coastguard Worker 	struct d3dkmthandle		context;
190*61046927SAndroid Build Coastguard Worker };
191*61046927SAndroid Build Coastguard Worker 
192*61046927SAndroid Build Coastguard Worker struct d3dkmt_createcontextvirtual {
193*61046927SAndroid Build Coastguard Worker 	struct d3dkmthandle		device;
194*61046927SAndroid Build Coastguard Worker 	__u32				node_ordinal;
195*61046927SAndroid Build Coastguard Worker 	__u32				engine_affinity;
196*61046927SAndroid Build Coastguard Worker 	struct d3dddi_createcontextflags flags;
197*61046927SAndroid Build Coastguard Worker #ifdef __KERNEL__
198*61046927SAndroid Build Coastguard Worker 	void				*priv_drv_data;
199*61046927SAndroid Build Coastguard Worker #else
200*61046927SAndroid Build Coastguard Worker 	__u64				priv_drv_data;
201*61046927SAndroid Build Coastguard Worker #endif
202*61046927SAndroid Build Coastguard Worker 	__u32				priv_drv_data_size;
203*61046927SAndroid Build Coastguard Worker 	enum d3dkmt_clienthint		client_hint;
204*61046927SAndroid Build Coastguard Worker 	struct d3dkmthandle		context;
205*61046927SAndroid Build Coastguard Worker };
206*61046927SAndroid Build Coastguard Worker 
207*61046927SAndroid Build Coastguard Worker struct d3dddi_createhwqueueflags {
208*61046927SAndroid Build Coastguard Worker 	union {
209*61046927SAndroid Build Coastguard Worker 		struct {
210*61046927SAndroid Build Coastguard Worker 			__u32		disable_gpu_timeout:1;
211*61046927SAndroid Build Coastguard Worker 			__u32		reserved:31;
212*61046927SAndroid Build Coastguard Worker 		};
213*61046927SAndroid Build Coastguard Worker 		__u32			value;
214*61046927SAndroid Build Coastguard Worker 	};
215*61046927SAndroid Build Coastguard Worker };
216*61046927SAndroid Build Coastguard Worker 
217*61046927SAndroid Build Coastguard Worker enum d3dddi_pagingqueue_priority {
218*61046927SAndroid Build Coastguard Worker 	_D3DDDI_PAGINGQUEUE_PRIORITY_BELOW_NORMAL	= -1,
219*61046927SAndroid Build Coastguard Worker 	_D3DDDI_PAGINGQUEUE_PRIORITY_NORMAL		= 0,
220*61046927SAndroid Build Coastguard Worker 	_D3DDDI_PAGINGQUEUE_PRIORITY_ABOVE_NORMAL	= 1,
221*61046927SAndroid Build Coastguard Worker };
222*61046927SAndroid Build Coastguard Worker 
223*61046927SAndroid Build Coastguard Worker struct d3dkmt_createpagingqueue {
224*61046927SAndroid Build Coastguard Worker 	struct d3dkmthandle		device;
225*61046927SAndroid Build Coastguard Worker 	enum d3dddi_pagingqueue_priority priority;
226*61046927SAndroid Build Coastguard Worker 	struct d3dkmthandle		paging_queue;
227*61046927SAndroid Build Coastguard Worker 	struct d3dkmthandle		sync_object;
228*61046927SAndroid Build Coastguard Worker #ifdef __KERNEL__
229*61046927SAndroid Build Coastguard Worker 	void				*fence_cpu_virtual_address;
230*61046927SAndroid Build Coastguard Worker #else
231*61046927SAndroid Build Coastguard Worker 	__u64				fence_cpu_virtual_address;
232*61046927SAndroid Build Coastguard Worker #endif
233*61046927SAndroid Build Coastguard Worker 	__u32				physical_adapter_index;
234*61046927SAndroid Build Coastguard Worker };
235*61046927SAndroid Build Coastguard Worker 
236*61046927SAndroid Build Coastguard Worker struct d3dddi_destroypagingqueue {
237*61046927SAndroid Build Coastguard Worker 	struct d3dkmthandle		paging_queue;
238*61046927SAndroid Build Coastguard Worker };
239*61046927SAndroid Build Coastguard Worker 
240*61046927SAndroid Build Coastguard Worker enum d3dddi_knownescapetype {
241*61046927SAndroid Build Coastguard Worker 	_D3DDDI_DRIVERESCAPETYPE_TRANSLATEALLOCATIONHANDLE	= 0,
242*61046927SAndroid Build Coastguard Worker 	_D3DDDI_DRIVERESCAPETYPE_TRANSLATERESOURCEHANDLE	= 1,
243*61046927SAndroid Build Coastguard Worker 	_D3DDDI_DRIVERESCAPETYPE_CPUEVENTUSAGE			= 2,
244*61046927SAndroid Build Coastguard Worker 	_D3DDDI_DRIVERESCAPETYPE_BUILDTESTCOMMANDBUFFER		= 3,
245*61046927SAndroid Build Coastguard Worker };
246*61046927SAndroid Build Coastguard Worker 
247*61046927SAndroid Build Coastguard Worker struct d3dddi_translate_allocation_handle {
248*61046927SAndroid Build Coastguard Worker 	enum d3dddi_knownescapetype	escape_type;
249*61046927SAndroid Build Coastguard Worker 	struct d3dkmthandle		allocation;
250*61046927SAndroid Build Coastguard Worker };
251*61046927SAndroid Build Coastguard Worker 
252*61046927SAndroid Build Coastguard Worker struct d3dddi_testcommand {
253*61046927SAndroid Build Coastguard Worker 	char buffer[72];
254*61046927SAndroid Build Coastguard Worker };
255*61046927SAndroid Build Coastguard Worker 
256*61046927SAndroid Build Coastguard Worker #define D3DDDI_MAXTESTBUFFERSIZE 4096
257*61046927SAndroid Build Coastguard Worker #define D3DDDI_MAXTESTBUFFERPRIVATEDRIVERDATASIZE 1024
258*61046927SAndroid Build Coastguard Worker 
259*61046927SAndroid Build Coastguard Worker struct d3dddi_buildtestcommandbuffer {
260*61046927SAndroid Build Coastguard Worker 	enum d3dddi_knownescapetype	escape_type;
261*61046927SAndroid Build Coastguard Worker 	struct d3dkmthandle		device;
262*61046927SAndroid Build Coastguard Worker 	struct d3dkmthandle		context;
263*61046927SAndroid Build Coastguard Worker 	__u32				flags;
264*61046927SAndroid Build Coastguard Worker 	struct d3dddi_testcommand	command;
265*61046927SAndroid Build Coastguard Worker 	void				*dma_buffer;
266*61046927SAndroid Build Coastguard Worker 	void				*dma_buffer_priv_data;
267*61046927SAndroid Build Coastguard Worker 	__u32				dma_buffer_size;
268*61046927SAndroid Build Coastguard Worker 	__u32				dma_buffer_priv_data_size;
269*61046927SAndroid Build Coastguard Worker };
270*61046927SAndroid Build Coastguard Worker 
271*61046927SAndroid Build Coastguard Worker enum d3dkmt_escapetype {
272*61046927SAndroid Build Coastguard Worker 	_D3DKMT_ESCAPE_DRIVERPRIVATE	= 0,
273*61046927SAndroid Build Coastguard Worker 	_D3DKMT_ESCAPE_VIDMM		= 1,
274*61046927SAndroid Build Coastguard Worker 	_D3DKMT_ESCAPE_VIDSCH		= 3,
275*61046927SAndroid Build Coastguard Worker 	_D3DKMT_ESCAPE_DEVICE		= 4,
276*61046927SAndroid Build Coastguard Worker 	_D3DKMT_ESCAPE_DRT_TEST		= 8,
277*61046927SAndroid Build Coastguard Worker };
278*61046927SAndroid Build Coastguard Worker 
279*61046927SAndroid Build Coastguard Worker struct d3dddi_escapeflags {
280*61046927SAndroid Build Coastguard Worker 	union {
281*61046927SAndroid Build Coastguard Worker 		struct {
282*61046927SAndroid Build Coastguard Worker 			__u32		hardware_access:1;
283*61046927SAndroid Build Coastguard Worker 			__u32		device_status_query:1;
284*61046927SAndroid Build Coastguard Worker 			__u32		change_frame_latency:1;
285*61046927SAndroid Build Coastguard Worker 			__u32		no_adapter_synchronization:1;
286*61046927SAndroid Build Coastguard Worker 			__u32		reserved:1;
287*61046927SAndroid Build Coastguard Worker 			__u32		virtual_machine_data:1;
288*61046927SAndroid Build Coastguard Worker 			__u32		driver_known_escape:1;
289*61046927SAndroid Build Coastguard Worker 			__u32		driver_common_escape:1;
290*61046927SAndroid Build Coastguard Worker 			__u32		reserved2:24;
291*61046927SAndroid Build Coastguard Worker 		};
292*61046927SAndroid Build Coastguard Worker 		__u32			value;
293*61046927SAndroid Build Coastguard Worker 	};
294*61046927SAndroid Build Coastguard Worker };
295*61046927SAndroid Build Coastguard Worker 
296*61046927SAndroid Build Coastguard Worker struct d3dkmt_escape {
297*61046927SAndroid Build Coastguard Worker 	struct d3dkmthandle		adapter;
298*61046927SAndroid Build Coastguard Worker 	struct d3dkmthandle		device;
299*61046927SAndroid Build Coastguard Worker 	enum d3dkmt_escapetype		type;
300*61046927SAndroid Build Coastguard Worker 	struct d3dddi_escapeflags	flags;
301*61046927SAndroid Build Coastguard Worker #ifdef __KERNEL__
302*61046927SAndroid Build Coastguard Worker 	void				*priv_drv_data;
303*61046927SAndroid Build Coastguard Worker #else
304*61046927SAndroid Build Coastguard Worker 	__u64				priv_drv_data;
305*61046927SAndroid Build Coastguard Worker #endif
306*61046927SAndroid Build Coastguard Worker 	__u32				priv_drv_data_size;
307*61046927SAndroid Build Coastguard Worker 	struct d3dkmthandle		context;
308*61046927SAndroid Build Coastguard Worker };
309*61046927SAndroid Build Coastguard Worker 
310*61046927SAndroid Build Coastguard Worker enum dxgk_render_pipeline_stage {
311*61046927SAndroid Build Coastguard Worker 	_DXGK_RENDER_PIPELINE_STAGE_UNKNOWN		= 0,
312*61046927SAndroid Build Coastguard Worker 	_DXGK_RENDER_PIPELINE_STAGE_INPUT_ASSEMBLER	= 1,
313*61046927SAndroid Build Coastguard Worker 	_DXGK_RENDER_PIPELINE_STAGE_VERTEX_SHADER	= 2,
314*61046927SAndroid Build Coastguard Worker 	_DXGK_RENDER_PIPELINE_STAGE_GEOMETRY_SHADER	= 3,
315*61046927SAndroid Build Coastguard Worker 	_DXGK_RENDER_PIPELINE_STAGE_STREAM_OUTPUT	= 4,
316*61046927SAndroid Build Coastguard Worker 	_DXGK_RENDER_PIPELINE_STAGE_RASTERIZER		= 5,
317*61046927SAndroid Build Coastguard Worker 	_DXGK_RENDER_PIPELINE_STAGE_PIXEL_SHADER	= 6,
318*61046927SAndroid Build Coastguard Worker 	_DXGK_RENDER_PIPELINE_STAGE_OUTPUT_MERGER	= 7,
319*61046927SAndroid Build Coastguard Worker };
320*61046927SAndroid Build Coastguard Worker 
321*61046927SAndroid Build Coastguard Worker enum dxgk_page_fault_flags {
322*61046927SAndroid Build Coastguard Worker 	_DXGK_PAGE_FAULT_WRITE			= 0x1,
323*61046927SAndroid Build Coastguard Worker 	_DXGK_PAGE_FAULT_FENCE_INVALID		= 0x2,
324*61046927SAndroid Build Coastguard Worker 	_DXGK_PAGE_FAULT_ADAPTER_RESET_REQUIRED	= 0x4,
325*61046927SAndroid Build Coastguard Worker 	_DXGK_PAGE_FAULT_ENGINE_RESET_REQUIRED	= 0x8,
326*61046927SAndroid Build Coastguard Worker 	_DXGK_PAGE_FAULT_FATAL_HARDWARE_ERROR	= 0x10,
327*61046927SAndroid Build Coastguard Worker 	_DXGK_PAGE_FAULT_IOMMU			= 0x20,
328*61046927SAndroid Build Coastguard Worker 	_DXGK_PAGE_FAULT_HW_CONTEXT_VALID	= 0x40,
329*61046927SAndroid Build Coastguard Worker 	_DXGK_PAGE_FAULT_PROCESS_HANDLE_VALID	= 0x80,
330*61046927SAndroid Build Coastguard Worker };
331*61046927SAndroid Build Coastguard Worker 
332*61046927SAndroid Build Coastguard Worker enum dxgk_general_error_code {
333*61046927SAndroid Build Coastguard Worker 	_DXGK_GENERAL_ERROR_PAGE_FAULT		= 0,
334*61046927SAndroid Build Coastguard Worker 	_DXGK_GENERAL_ERROR_INVALID_INSTRUCTION	= 1,
335*61046927SAndroid Build Coastguard Worker };
336*61046927SAndroid Build Coastguard Worker 
337*61046927SAndroid Build Coastguard Worker struct dxgk_fault_error_code {
338*61046927SAndroid Build Coastguard Worker 	union {
339*61046927SAndroid Build Coastguard Worker 		struct {
340*61046927SAndroid Build Coastguard Worker 			__u32	is_device_specific_code:1;
341*61046927SAndroid Build Coastguard Worker 			enum dxgk_general_error_code general_error_code:31;
342*61046927SAndroid Build Coastguard Worker 		};
343*61046927SAndroid Build Coastguard Worker 		struct {
344*61046927SAndroid Build Coastguard Worker 			__u32	is_device_specific_code_reserved_bit:1;
345*61046927SAndroid Build Coastguard Worker 			__u32	device_specific_code:31;
346*61046927SAndroid Build Coastguard Worker 		};
347*61046927SAndroid Build Coastguard Worker 	};
348*61046927SAndroid Build Coastguard Worker };
349*61046927SAndroid Build Coastguard Worker 
350*61046927SAndroid Build Coastguard Worker struct d3dkmt_devicereset_state {
351*61046927SAndroid Build Coastguard Worker 	union {
352*61046927SAndroid Build Coastguard Worker 		struct {
353*61046927SAndroid Build Coastguard Worker 			__u32	desktop_switched:1;
354*61046927SAndroid Build Coastguard Worker 			__u32	reserved:31;
355*61046927SAndroid Build Coastguard Worker 		};
356*61046927SAndroid Build Coastguard Worker 		__u32		value;
357*61046927SAndroid Build Coastguard Worker 	};
358*61046927SAndroid Build Coastguard Worker };
359*61046927SAndroid Build Coastguard Worker 
360*61046927SAndroid Build Coastguard Worker struct d3dkmt_devicepagefault_state {
361*61046927SAndroid Build Coastguard Worker 	__u64				faulted_primitive_api_sequence_number;
362*61046927SAndroid Build Coastguard Worker 	enum dxgk_render_pipeline_stage	faulted_pipeline_stage;
363*61046927SAndroid Build Coastguard Worker 	__u32				faulted_bind_table_entry;
364*61046927SAndroid Build Coastguard Worker 	enum dxgk_page_fault_flags	page_fault_flags;
365*61046927SAndroid Build Coastguard Worker 	struct dxgk_fault_error_code	fault_error_code;
366*61046927SAndroid Build Coastguard Worker 	__u64				faulted_virtual_address;
367*61046927SAndroid Build Coastguard Worker };
368*61046927SAndroid Build Coastguard Worker 
369*61046927SAndroid Build Coastguard Worker enum d3dkmt_deviceexecution_state {
370*61046927SAndroid Build Coastguard Worker 	_D3DKMT_DEVICEEXECUTION_ACTIVE			= 1,
371*61046927SAndroid Build Coastguard Worker 	_D3DKMT_DEVICEEXECUTION_RESET			= 2,
372*61046927SAndroid Build Coastguard Worker 	_D3DKMT_DEVICEEXECUTION_HUNG			= 3,
373*61046927SAndroid Build Coastguard Worker 	_D3DKMT_DEVICEEXECUTION_STOPPED			= 4,
374*61046927SAndroid Build Coastguard Worker 	_D3DKMT_DEVICEEXECUTION_ERROR_OUTOFMEMORY	= 5,
375*61046927SAndroid Build Coastguard Worker 	_D3DKMT_DEVICEEXECUTION_ERROR_DMAFAULT		= 6,
376*61046927SAndroid Build Coastguard Worker 	_D3DKMT_DEVICEEXECUTION_ERROR_DMAPAGEFAULT	= 7,
377*61046927SAndroid Build Coastguard Worker };
378*61046927SAndroid Build Coastguard Worker 
379*61046927SAndroid Build Coastguard Worker enum d3dkmt_devicestate_type {
380*61046927SAndroid Build Coastguard Worker 	_D3DKMT_DEVICESTATE_EXECUTION		= 1,
381*61046927SAndroid Build Coastguard Worker 	_D3DKMT_DEVICESTATE_PRESENT		= 2,
382*61046927SAndroid Build Coastguard Worker 	_D3DKMT_DEVICESTATE_RESET		= 3,
383*61046927SAndroid Build Coastguard Worker 	_D3DKMT_DEVICESTATE_PRESENT_DWM		= 4,
384*61046927SAndroid Build Coastguard Worker 	_D3DKMT_DEVICESTATE_PAGE_FAULT		= 5,
385*61046927SAndroid Build Coastguard Worker 	_D3DKMT_DEVICESTATE_PRESENT_QUEUE	= 6,
386*61046927SAndroid Build Coastguard Worker };
387*61046927SAndroid Build Coastguard Worker 
388*61046927SAndroid Build Coastguard Worker struct d3dkmt_getdevicestate {
389*61046927SAndroid Build Coastguard Worker 	struct d3dkmthandle				device;
390*61046927SAndroid Build Coastguard Worker 	enum d3dkmt_devicestate_type			state_type;
391*61046927SAndroid Build Coastguard Worker 	union {
392*61046927SAndroid Build Coastguard Worker 		enum d3dkmt_deviceexecution_state	execution_state;
393*61046927SAndroid Build Coastguard Worker 		struct d3dkmt_devicereset_state		reset_state;
394*61046927SAndroid Build Coastguard Worker 		struct d3dkmt_devicepagefault_state	page_fault_state;
395*61046927SAndroid Build Coastguard Worker 		char alignment[48];
396*61046927SAndroid Build Coastguard Worker 	};
397*61046927SAndroid Build Coastguard Worker };
398*61046927SAndroid Build Coastguard Worker 
399*61046927SAndroid Build Coastguard Worker enum d3dkmdt_gdisurfacetype {
400*61046927SAndroid Build Coastguard Worker 	_D3DKMDT_GDISURFACE_INVALID				= 0,
401*61046927SAndroid Build Coastguard Worker 	_D3DKMDT_GDISURFACE_TEXTURE				= 1,
402*61046927SAndroid Build Coastguard Worker 	_D3DKMDT_GDISURFACE_STAGING_CPUVISIBLE			= 2,
403*61046927SAndroid Build Coastguard Worker 	_D3DKMDT_GDISURFACE_STAGING				= 3,
404*61046927SAndroid Build Coastguard Worker 	_D3DKMDT_GDISURFACE_LOOKUPTABLE				= 4,
405*61046927SAndroid Build Coastguard Worker 	_D3DKMDT_GDISURFACE_EXISTINGSYSMEM			= 5,
406*61046927SAndroid Build Coastguard Worker 	_D3DKMDT_GDISURFACE_TEXTURE_CPUVISIBLE			= 6,
407*61046927SAndroid Build Coastguard Worker 	_D3DKMDT_GDISURFACE_TEXTURE_CROSSADAPTER		= 7,
408*61046927SAndroid Build Coastguard Worker 	_D3DKMDT_GDISURFACE_TEXTURE_CPUVISIBLE_CROSSADAPTER	= 8,
409*61046927SAndroid Build Coastguard Worker };
410*61046927SAndroid Build Coastguard Worker 
411*61046927SAndroid Build Coastguard Worker struct d3dddi_rational {
412*61046927SAndroid Build Coastguard Worker 	__u32	numerator;
413*61046927SAndroid Build Coastguard Worker 	__u32	denominator;
414*61046927SAndroid Build Coastguard Worker };
415*61046927SAndroid Build Coastguard Worker 
416*61046927SAndroid Build Coastguard Worker enum d3dddiformat {
417*61046927SAndroid Build Coastguard Worker 	_D3DDDIFMT_UNKNOWN = 0,
418*61046927SAndroid Build Coastguard Worker };
419*61046927SAndroid Build Coastguard Worker 
420*61046927SAndroid Build Coastguard Worker struct d3dkmdt_gdisurfacedata {
421*61046927SAndroid Build Coastguard Worker 	__u32				width;
422*61046927SAndroid Build Coastguard Worker 	__u32				height;
423*61046927SAndroid Build Coastguard Worker 	__u32				format;
424*61046927SAndroid Build Coastguard Worker 	enum d3dkmdt_gdisurfacetype	type;
425*61046927SAndroid Build Coastguard Worker 	__u32				flags;
426*61046927SAndroid Build Coastguard Worker 	__u32				pitch;
427*61046927SAndroid Build Coastguard Worker };
428*61046927SAndroid Build Coastguard Worker 
429*61046927SAndroid Build Coastguard Worker struct d3dkmdt_stagingsurfacedata {
430*61046927SAndroid Build Coastguard Worker 	__u32	width;
431*61046927SAndroid Build Coastguard Worker 	__u32	height;
432*61046927SAndroid Build Coastguard Worker 	__u32	pitch;
433*61046927SAndroid Build Coastguard Worker };
434*61046927SAndroid Build Coastguard Worker 
435*61046927SAndroid Build Coastguard Worker struct d3dkmdt_sharedprimarysurfacedata {
436*61046927SAndroid Build Coastguard Worker 	__u32			width;
437*61046927SAndroid Build Coastguard Worker 	__u32			height;
438*61046927SAndroid Build Coastguard Worker 	enum d3dddiformat	format;
439*61046927SAndroid Build Coastguard Worker 	struct d3dddi_rational	refresh_rate;
440*61046927SAndroid Build Coastguard Worker 	__u32			vidpn_source_id;
441*61046927SAndroid Build Coastguard Worker };
442*61046927SAndroid Build Coastguard Worker 
443*61046927SAndroid Build Coastguard Worker struct d3dkmdt_shadowsurfacedata {
444*61046927SAndroid Build Coastguard Worker 	__u32			width;
445*61046927SAndroid Build Coastguard Worker 	__u32			height;
446*61046927SAndroid Build Coastguard Worker 	enum d3dddiformat	format;
447*61046927SAndroid Build Coastguard Worker 	__u32			pitch;
448*61046927SAndroid Build Coastguard Worker };
449*61046927SAndroid Build Coastguard Worker 
450*61046927SAndroid Build Coastguard Worker enum d3dkmdt_standardallocationtype {
451*61046927SAndroid Build Coastguard Worker 	_D3DKMDT_STANDARDALLOCATION_SHAREDPRIMARYSURFACE	= 1,
452*61046927SAndroid Build Coastguard Worker 	_D3DKMDT_STANDARDALLOCATION_SHADOWSURFACE		= 2,
453*61046927SAndroid Build Coastguard Worker 	_D3DKMDT_STANDARDALLOCATION_STAGINGSURFACE		= 3,
454*61046927SAndroid Build Coastguard Worker 	_D3DKMDT_STANDARDALLOCATION_GDISURFACE			= 4,
455*61046927SAndroid Build Coastguard Worker };
456*61046927SAndroid Build Coastguard Worker 
457*61046927SAndroid Build Coastguard Worker struct d3dddi_synchronizationobject_flags {
458*61046927SAndroid Build Coastguard Worker 	union {
459*61046927SAndroid Build Coastguard Worker 		struct {
460*61046927SAndroid Build Coastguard Worker 			__u32	shared:1;
461*61046927SAndroid Build Coastguard Worker 			__u32	nt_security_sharing:1;
462*61046927SAndroid Build Coastguard Worker 			__u32	cross_adapter:1;
463*61046927SAndroid Build Coastguard Worker 			__u32	top_of_pipeline:1;
464*61046927SAndroid Build Coastguard Worker 			__u32	no_signal:1;
465*61046927SAndroid Build Coastguard Worker 			__u32	no_wait:1;
466*61046927SAndroid Build Coastguard Worker 			__u32	no_signal_max_value_on_tdr:1;
467*61046927SAndroid Build Coastguard Worker 			__u32	no_gpu_access:1;
468*61046927SAndroid Build Coastguard Worker 			__u32	reserved:23;
469*61046927SAndroid Build Coastguard Worker 		};
470*61046927SAndroid Build Coastguard Worker 		__u32		value;
471*61046927SAndroid Build Coastguard Worker 	};
472*61046927SAndroid Build Coastguard Worker };
473*61046927SAndroid Build Coastguard Worker 
474*61046927SAndroid Build Coastguard Worker enum d3dddi_synchronizationobject_type {
475*61046927SAndroid Build Coastguard Worker 	_D3DDDI_SYNCHRONIZATION_MUTEX		= 1,
476*61046927SAndroid Build Coastguard Worker 	_D3DDDI_SEMAPHORE			= 2,
477*61046927SAndroid Build Coastguard Worker 	_D3DDDI_FENCE				= 3,
478*61046927SAndroid Build Coastguard Worker 	_D3DDDI_CPU_NOTIFICATION		= 4,
479*61046927SAndroid Build Coastguard Worker 	_D3DDDI_MONITORED_FENCE			= 5,
480*61046927SAndroid Build Coastguard Worker 	_D3DDDI_PERIODIC_MONITORED_FENCE	= 6,
481*61046927SAndroid Build Coastguard Worker 	_D3DDDI_SYNCHRONIZATION_TYPE_LIMIT
482*61046927SAndroid Build Coastguard Worker };
483*61046927SAndroid Build Coastguard Worker 
484*61046927SAndroid Build Coastguard Worker struct d3dddi_synchronizationobjectinfo2 {
485*61046927SAndroid Build Coastguard Worker 	enum d3dddi_synchronizationobject_type	type;
486*61046927SAndroid Build Coastguard Worker 	struct d3dddi_synchronizationobject_flags flags;
487*61046927SAndroid Build Coastguard Worker 	union {
488*61046927SAndroid Build Coastguard Worker 		struct {
489*61046927SAndroid Build Coastguard Worker 			__u32	initial_state;
490*61046927SAndroid Build Coastguard Worker 		} synchronization_mutex;
491*61046927SAndroid Build Coastguard Worker 
492*61046927SAndroid Build Coastguard Worker 		struct {
493*61046927SAndroid Build Coastguard Worker 			__u32			max_count;
494*61046927SAndroid Build Coastguard Worker 			__u32			initial_count;
495*61046927SAndroid Build Coastguard Worker 		} semaphore;
496*61046927SAndroid Build Coastguard Worker 
497*61046927SAndroid Build Coastguard Worker 		struct {
498*61046927SAndroid Build Coastguard Worker 			__u64		fence_value;
499*61046927SAndroid Build Coastguard Worker 		} fence;
500*61046927SAndroid Build Coastguard Worker 
501*61046927SAndroid Build Coastguard Worker 		struct {
502*61046927SAndroid Build Coastguard Worker 			__u64		event;
503*61046927SAndroid Build Coastguard Worker 		} cpu_notification;
504*61046927SAndroid Build Coastguard Worker 
505*61046927SAndroid Build Coastguard Worker 		struct {
506*61046927SAndroid Build Coastguard Worker 			__u64	initial_fence_value;
507*61046927SAndroid Build Coastguard Worker #ifdef __KERNEL__
508*61046927SAndroid Build Coastguard Worker 			void	*fence_cpu_virtual_address;
509*61046927SAndroid Build Coastguard Worker #else
510*61046927SAndroid Build Coastguard Worker 			__u64	*fence_cpu_virtual_address;
511*61046927SAndroid Build Coastguard Worker #endif
512*61046927SAndroid Build Coastguard Worker 			__u64	fence_gpu_virtual_address;
513*61046927SAndroid Build Coastguard Worker 			__u32	engine_affinity;
514*61046927SAndroid Build Coastguard Worker 		} monitored_fence;
515*61046927SAndroid Build Coastguard Worker 
516*61046927SAndroid Build Coastguard Worker 		struct {
517*61046927SAndroid Build Coastguard Worker 			struct d3dkmthandle	adapter;
518*61046927SAndroid Build Coastguard Worker 			__u32			vidpn_target_id;
519*61046927SAndroid Build Coastguard Worker 			__u64			time;
520*61046927SAndroid Build Coastguard Worker #ifdef __KERNEL__
521*61046927SAndroid Build Coastguard Worker 			void			*fence_cpu_virtual_address;
522*61046927SAndroid Build Coastguard Worker #else
523*61046927SAndroid Build Coastguard Worker 			__u64			fence_cpu_virtual_address;
524*61046927SAndroid Build Coastguard Worker #endif
525*61046927SAndroid Build Coastguard Worker 			__u64			fence_gpu_virtual_address;
526*61046927SAndroid Build Coastguard Worker 			__u32			engine_affinity;
527*61046927SAndroid Build Coastguard Worker 		} periodic_monitored_fence;
528*61046927SAndroid Build Coastguard Worker 
529*61046927SAndroid Build Coastguard Worker 		struct {
530*61046927SAndroid Build Coastguard Worker 			__u64	reserved[8];
531*61046927SAndroid Build Coastguard Worker 		} reserved;
532*61046927SAndroid Build Coastguard Worker 	};
533*61046927SAndroid Build Coastguard Worker 	struct d3dkmthandle			shared_handle;
534*61046927SAndroid Build Coastguard Worker };
535*61046927SAndroid Build Coastguard Worker 
536*61046927SAndroid Build Coastguard Worker struct d3dkmt_createsynchronizationobject2 {
537*61046927SAndroid Build Coastguard Worker 	struct d3dkmthandle				device;
538*61046927SAndroid Build Coastguard Worker 	__u32						reserved;
539*61046927SAndroid Build Coastguard Worker 	struct d3dddi_synchronizationobjectinfo2	info;
540*61046927SAndroid Build Coastguard Worker 	struct d3dkmthandle				sync_object;
541*61046927SAndroid Build Coastguard Worker 	__u32						reserved1;
542*61046927SAndroid Build Coastguard Worker };
543*61046927SAndroid Build Coastguard Worker 
544*61046927SAndroid Build Coastguard Worker struct d3dkmt_waitforsynchronizationobject2 {
545*61046927SAndroid Build Coastguard Worker 	struct d3dkmthandle	context;
546*61046927SAndroid Build Coastguard Worker 	__u32			object_count;
547*61046927SAndroid Build Coastguard Worker 	struct d3dkmthandle	object_array[D3DDDI_MAX_OBJECT_WAITED_ON];
548*61046927SAndroid Build Coastguard Worker 	union {
549*61046927SAndroid Build Coastguard Worker 		struct {
550*61046927SAndroid Build Coastguard Worker 			__u64	fence_value;
551*61046927SAndroid Build Coastguard Worker 		} fence;
552*61046927SAndroid Build Coastguard Worker 		__u64		reserved[8];
553*61046927SAndroid Build Coastguard Worker 	};
554*61046927SAndroid Build Coastguard Worker };
555*61046927SAndroid Build Coastguard Worker 
556*61046927SAndroid Build Coastguard Worker struct d3dddicb_signalflags {
557*61046927SAndroid Build Coastguard Worker 	union {
558*61046927SAndroid Build Coastguard Worker 		struct {
559*61046927SAndroid Build Coastguard Worker 			__u32	signal_at_submission:1;
560*61046927SAndroid Build Coastguard Worker 			__u32	enqueue_cpu_event:1;
561*61046927SAndroid Build Coastguard Worker 			__u32	allow_fence_rewind:1;
562*61046927SAndroid Build Coastguard Worker 			__u32	reserved:28;
563*61046927SAndroid Build Coastguard Worker 			__u32	DXGK_SIGNAL_FLAG_INTERNAL0:1;
564*61046927SAndroid Build Coastguard Worker 		};
565*61046927SAndroid Build Coastguard Worker 		__u32		value;
566*61046927SAndroid Build Coastguard Worker 	};
567*61046927SAndroid Build Coastguard Worker };
568*61046927SAndroid Build Coastguard Worker 
569*61046927SAndroid Build Coastguard Worker struct d3dkmt_signalsynchronizationobject2 {
570*61046927SAndroid Build Coastguard Worker 	struct d3dkmthandle		context;
571*61046927SAndroid Build Coastguard Worker 	__u32				object_count;
572*61046927SAndroid Build Coastguard Worker 	struct d3dkmthandle	object_array[D3DDDI_MAX_OBJECT_SIGNALED];
573*61046927SAndroid Build Coastguard Worker 	struct d3dddicb_signalflags	flags;
574*61046927SAndroid Build Coastguard Worker 	__u32				context_count;
575*61046927SAndroid Build Coastguard Worker 	struct d3dkmthandle		contexts[D3DDDI_MAX_BROADCAST_CONTEXT];
576*61046927SAndroid Build Coastguard Worker 	union {
577*61046927SAndroid Build Coastguard Worker 		struct {
578*61046927SAndroid Build Coastguard Worker 			__u64		fence_value;
579*61046927SAndroid Build Coastguard Worker 		} fence;
580*61046927SAndroid Build Coastguard Worker 		__u64			cpu_event_handle;
581*61046927SAndroid Build Coastguard Worker 		__u64			reserved[8];
582*61046927SAndroid Build Coastguard Worker 	};
583*61046927SAndroid Build Coastguard Worker };
584*61046927SAndroid Build Coastguard Worker 
585*61046927SAndroid Build Coastguard Worker struct d3dddi_waitforsynchronizationobjectfromcpu_flags {
586*61046927SAndroid Build Coastguard Worker 	union {
587*61046927SAndroid Build Coastguard Worker 		struct {
588*61046927SAndroid Build Coastguard Worker 			__u32	wait_any:1;
589*61046927SAndroid Build Coastguard Worker 			__u32	reserved:31;
590*61046927SAndroid Build Coastguard Worker 		};
591*61046927SAndroid Build Coastguard Worker 		__u32		value;
592*61046927SAndroid Build Coastguard Worker 	};
593*61046927SAndroid Build Coastguard Worker };
594*61046927SAndroid Build Coastguard Worker 
595*61046927SAndroid Build Coastguard Worker struct d3dkmt_waitforsynchronizationobjectfromcpu {
596*61046927SAndroid Build Coastguard Worker 	struct d3dkmthandle	device;
597*61046927SAndroid Build Coastguard Worker 	__u32			object_count;
598*61046927SAndroid Build Coastguard Worker #ifdef __KERNEL__
599*61046927SAndroid Build Coastguard Worker 	struct d3dkmthandle	*objects;
600*61046927SAndroid Build Coastguard Worker 	__u64			*fence_values;
601*61046927SAndroid Build Coastguard Worker #else
602*61046927SAndroid Build Coastguard Worker 	__u64			objects;
603*61046927SAndroid Build Coastguard Worker 	__u64			fence_values;
604*61046927SAndroid Build Coastguard Worker #endif
605*61046927SAndroid Build Coastguard Worker 	__u64			async_event;
606*61046927SAndroid Build Coastguard Worker 	struct d3dddi_waitforsynchronizationobjectfromcpu_flags flags;
607*61046927SAndroid Build Coastguard Worker };
608*61046927SAndroid Build Coastguard Worker 
609*61046927SAndroid Build Coastguard Worker struct d3dkmt_signalsynchronizationobjectfromcpu {
610*61046927SAndroid Build Coastguard Worker 	struct d3dkmthandle	device;
611*61046927SAndroid Build Coastguard Worker 	__u32			object_count;
612*61046927SAndroid Build Coastguard Worker #ifdef __KERNEL__
613*61046927SAndroid Build Coastguard Worker 	struct d3dkmthandle	*objects;
614*61046927SAndroid Build Coastguard Worker 	__u64			*fence_values;
615*61046927SAndroid Build Coastguard Worker #else
616*61046927SAndroid Build Coastguard Worker 	__u64			objects;
617*61046927SAndroid Build Coastguard Worker 	__u64			fence_values;
618*61046927SAndroid Build Coastguard Worker #endif
619*61046927SAndroid Build Coastguard Worker 	struct d3dddicb_signalflags	flags;
620*61046927SAndroid Build Coastguard Worker };
621*61046927SAndroid Build Coastguard Worker 
622*61046927SAndroid Build Coastguard Worker struct d3dkmt_waitforsynchronizationobjectfromgpu {
623*61046927SAndroid Build Coastguard Worker 	struct d3dkmthandle	context;
624*61046927SAndroid Build Coastguard Worker 	__u32			object_count;
625*61046927SAndroid Build Coastguard Worker #ifdef __KERNEL__
626*61046927SAndroid Build Coastguard Worker 	struct d3dkmthandle	*objects;
627*61046927SAndroid Build Coastguard Worker #else
628*61046927SAndroid Build Coastguard Worker 	__u64			objects;
629*61046927SAndroid Build Coastguard Worker #endif
630*61046927SAndroid Build Coastguard Worker 	union {
631*61046927SAndroid Build Coastguard Worker #ifdef __KERNEL__
632*61046927SAndroid Build Coastguard Worker 		__u64		*monitored_fence_values;
633*61046927SAndroid Build Coastguard Worker #else
634*61046927SAndroid Build Coastguard Worker 		__u64		monitored_fence_values;
635*61046927SAndroid Build Coastguard Worker #endif
636*61046927SAndroid Build Coastguard Worker 		__u64		fence_value;
637*61046927SAndroid Build Coastguard Worker 		__u64		reserved[8];
638*61046927SAndroid Build Coastguard Worker 	};
639*61046927SAndroid Build Coastguard Worker };
640*61046927SAndroid Build Coastguard Worker 
641*61046927SAndroid Build Coastguard Worker struct d3dkmt_signalsynchronizationobjectfromgpu {
642*61046927SAndroid Build Coastguard Worker 	struct d3dkmthandle	context;
643*61046927SAndroid Build Coastguard Worker 	__u32			object_count;
644*61046927SAndroid Build Coastguard Worker #ifdef __KERNEL__
645*61046927SAndroid Build Coastguard Worker 	struct d3dkmthandle	*objects;
646*61046927SAndroid Build Coastguard Worker #else
647*61046927SAndroid Build Coastguard Worker 	__u64			objects;
648*61046927SAndroid Build Coastguard Worker #endif
649*61046927SAndroid Build Coastguard Worker 	union {
650*61046927SAndroid Build Coastguard Worker #ifdef __KERNEL__
651*61046927SAndroid Build Coastguard Worker 		__u64		*monitored_fence_values;
652*61046927SAndroid Build Coastguard Worker #else
653*61046927SAndroid Build Coastguard Worker 		__u64		monitored_fence_values;
654*61046927SAndroid Build Coastguard Worker #endif
655*61046927SAndroid Build Coastguard Worker 		__u64		reserved[8];
656*61046927SAndroid Build Coastguard Worker 	};
657*61046927SAndroid Build Coastguard Worker };
658*61046927SAndroid Build Coastguard Worker 
659*61046927SAndroid Build Coastguard Worker struct d3dkmt_signalsynchronizationobjectfromgpu2 {
660*61046927SAndroid Build Coastguard Worker 	__u32				object_count;
661*61046927SAndroid Build Coastguard Worker 	__u32				reserved1;
662*61046927SAndroid Build Coastguard Worker #ifdef __KERNEL__
663*61046927SAndroid Build Coastguard Worker 	struct d3dkmthandle		*objects;
664*61046927SAndroid Build Coastguard Worker #else
665*61046927SAndroid Build Coastguard Worker 	__u64				objects;
666*61046927SAndroid Build Coastguard Worker #endif
667*61046927SAndroid Build Coastguard Worker 	struct d3dddicb_signalflags	flags;
668*61046927SAndroid Build Coastguard Worker 	__u32				context_count;
669*61046927SAndroid Build Coastguard Worker #ifdef __KERNEL__
670*61046927SAndroid Build Coastguard Worker 	struct d3dkmthandle		*contexts;
671*61046927SAndroid Build Coastguard Worker #else
672*61046927SAndroid Build Coastguard Worker 	__u64				contexts;
673*61046927SAndroid Build Coastguard Worker #endif
674*61046927SAndroid Build Coastguard Worker 	union {
675*61046927SAndroid Build Coastguard Worker 		__u64			fence_value;
676*61046927SAndroid Build Coastguard Worker 		__u64			cpu_event_handle;
677*61046927SAndroid Build Coastguard Worker #ifdef __KERNEL__
678*61046927SAndroid Build Coastguard Worker 		__u64			*monitored_fence_values;
679*61046927SAndroid Build Coastguard Worker #else
680*61046927SAndroid Build Coastguard Worker 		__u64			monitored_fence_values;
681*61046927SAndroid Build Coastguard Worker #endif
682*61046927SAndroid Build Coastguard Worker 		__u64			reserved[8];
683*61046927SAndroid Build Coastguard Worker 	};
684*61046927SAndroid Build Coastguard Worker };
685*61046927SAndroid Build Coastguard Worker 
686*61046927SAndroid Build Coastguard Worker struct d3dkmt_destroysynchronizationobject {
687*61046927SAndroid Build Coastguard Worker 	struct d3dkmthandle	sync_object;
688*61046927SAndroid Build Coastguard Worker };
689*61046927SAndroid Build Coastguard Worker 
690*61046927SAndroid Build Coastguard Worker struct d3dkmt_submitcommandflags {
691*61046927SAndroid Build Coastguard Worker 	__u32					null_rendering:1;
692*61046927SAndroid Build Coastguard Worker 	__u32					present_redirected:1;
693*61046927SAndroid Build Coastguard Worker 	__u32					reserved:30;
694*61046927SAndroid Build Coastguard Worker };
695*61046927SAndroid Build Coastguard Worker 
696*61046927SAndroid Build Coastguard Worker struct d3dkmt_submitcommand {
697*61046927SAndroid Build Coastguard Worker 	__u64					command_buffer;
698*61046927SAndroid Build Coastguard Worker 	__u32					command_length;
699*61046927SAndroid Build Coastguard Worker 	struct d3dkmt_submitcommandflags	flags;
700*61046927SAndroid Build Coastguard Worker 	__u64					present_history_token;
701*61046927SAndroid Build Coastguard Worker 	__u32					broadcast_context_count;
702*61046927SAndroid Build Coastguard Worker 	struct d3dkmthandle	broadcast_context[D3DDDI_MAX_BROADCAST_CONTEXT];
703*61046927SAndroid Build Coastguard Worker 	__u32					reserved;
704*61046927SAndroid Build Coastguard Worker #ifdef __KERNEL__
705*61046927SAndroid Build Coastguard Worker 	void					*priv_drv_data;
706*61046927SAndroid Build Coastguard Worker #else
707*61046927SAndroid Build Coastguard Worker 	__u64					priv_drv_data;
708*61046927SAndroid Build Coastguard Worker #endif
709*61046927SAndroid Build Coastguard Worker 	__u32					priv_drv_data_size;
710*61046927SAndroid Build Coastguard Worker 	__u32					num_primaries;
711*61046927SAndroid Build Coastguard Worker 	struct d3dkmthandle	written_primaries[D3DDDI_MAX_WRITTEN_PRIMARIES];
712*61046927SAndroid Build Coastguard Worker 	__u32					num_history_buffers;
713*61046927SAndroid Build Coastguard Worker 	__u32					reserved1;
714*61046927SAndroid Build Coastguard Worker #ifdef __KERNEL__
715*61046927SAndroid Build Coastguard Worker 	struct d3dkmthandle			*history_buffer_array;
716*61046927SAndroid Build Coastguard Worker #else
717*61046927SAndroid Build Coastguard Worker 	__u64					history_buffer_array;
718*61046927SAndroid Build Coastguard Worker #endif
719*61046927SAndroid Build Coastguard Worker };
720*61046927SAndroid Build Coastguard Worker 
721*61046927SAndroid Build Coastguard Worker struct d3dkmt_submitcommandtohwqueue {
722*61046927SAndroid Build Coastguard Worker 	struct d3dkmthandle	hwqueue;
723*61046927SAndroid Build Coastguard Worker 	__u32			reserved;
724*61046927SAndroid Build Coastguard Worker 	__u64			hwqueue_progress_fence_id;
725*61046927SAndroid Build Coastguard Worker 	__u64			command_buffer;
726*61046927SAndroid Build Coastguard Worker 	__u32			command_length;
727*61046927SAndroid Build Coastguard Worker 	__u32			priv_drv_data_size;
728*61046927SAndroid Build Coastguard Worker #ifdef __KERNEL__
729*61046927SAndroid Build Coastguard Worker 	void			*priv_drv_data;
730*61046927SAndroid Build Coastguard Worker #else
731*61046927SAndroid Build Coastguard Worker 	__u64			priv_drv_data;
732*61046927SAndroid Build Coastguard Worker #endif
733*61046927SAndroid Build Coastguard Worker 	__u32			num_primaries;
734*61046927SAndroid Build Coastguard Worker 	__u32			reserved1;
735*61046927SAndroid Build Coastguard Worker #ifdef __KERNEL__
736*61046927SAndroid Build Coastguard Worker 	struct d3dkmthandle	*written_primaries;
737*61046927SAndroid Build Coastguard Worker #else
738*61046927SAndroid Build Coastguard Worker 	__u64			written_primaries;
739*61046927SAndroid Build Coastguard Worker #endif
740*61046927SAndroid Build Coastguard Worker };
741*61046927SAndroid Build Coastguard Worker 
742*61046927SAndroid Build Coastguard Worker struct d3dkmt_setcontextschedulingpriority {
743*61046927SAndroid Build Coastguard Worker 	struct d3dkmthandle			context;
744*61046927SAndroid Build Coastguard Worker 	int					priority;
745*61046927SAndroid Build Coastguard Worker };
746*61046927SAndroid Build Coastguard Worker 
747*61046927SAndroid Build Coastguard Worker struct d3dkmt_setcontextinprocessschedulingpriority {
748*61046927SAndroid Build Coastguard Worker 	struct d3dkmthandle			context;
749*61046927SAndroid Build Coastguard Worker 	int					priority;
750*61046927SAndroid Build Coastguard Worker };
751*61046927SAndroid Build Coastguard Worker 
752*61046927SAndroid Build Coastguard Worker struct d3dkmt_getcontextschedulingpriority {
753*61046927SAndroid Build Coastguard Worker 	struct d3dkmthandle			context;
754*61046927SAndroid Build Coastguard Worker 	int					priority;
755*61046927SAndroid Build Coastguard Worker };
756*61046927SAndroid Build Coastguard Worker 
757*61046927SAndroid Build Coastguard Worker struct d3dkmt_getcontextinprocessschedulingpriority {
758*61046927SAndroid Build Coastguard Worker 	struct d3dkmthandle			context;
759*61046927SAndroid Build Coastguard Worker 	int					priority;
760*61046927SAndroid Build Coastguard Worker };
761*61046927SAndroid Build Coastguard Worker 
762*61046927SAndroid Build Coastguard Worker struct d3dkmt_setallocationpriority {
763*61046927SAndroid Build Coastguard Worker 	struct d3dkmthandle		device;
764*61046927SAndroid Build Coastguard Worker 	struct d3dkmthandle		resource;
765*61046927SAndroid Build Coastguard Worker #ifdef __KERNEL__
766*61046927SAndroid Build Coastguard Worker 	const struct d3dkmthandle	*allocation_list;
767*61046927SAndroid Build Coastguard Worker #else
768*61046927SAndroid Build Coastguard Worker 	__u64				allocation_list;
769*61046927SAndroid Build Coastguard Worker #endif
770*61046927SAndroid Build Coastguard Worker 	__u32				allocation_count;
771*61046927SAndroid Build Coastguard Worker 	__u32				reserved;
772*61046927SAndroid Build Coastguard Worker #ifdef __KERNEL__
773*61046927SAndroid Build Coastguard Worker 	const __u32			*priorities;
774*61046927SAndroid Build Coastguard Worker #else
775*61046927SAndroid Build Coastguard Worker 	__u64				priorities;
776*61046927SAndroid Build Coastguard Worker #endif
777*61046927SAndroid Build Coastguard Worker };
778*61046927SAndroid Build Coastguard Worker 
779*61046927SAndroid Build Coastguard Worker struct d3dkmt_getallocationpriority {
780*61046927SAndroid Build Coastguard Worker 	struct d3dkmthandle		device;
781*61046927SAndroid Build Coastguard Worker 	struct d3dkmthandle		resource;
782*61046927SAndroid Build Coastguard Worker #ifdef __KERNEL__
783*61046927SAndroid Build Coastguard Worker 	const struct d3dkmthandle	*allocation_list;
784*61046927SAndroid Build Coastguard Worker #else
785*61046927SAndroid Build Coastguard Worker 	__u64				allocation_list;
786*61046927SAndroid Build Coastguard Worker #endif
787*61046927SAndroid Build Coastguard Worker 	__u32				allocation_count;
788*61046927SAndroid Build Coastguard Worker 	__u32				reserved;
789*61046927SAndroid Build Coastguard Worker #ifdef __KERNEL__
790*61046927SAndroid Build Coastguard Worker 	__u32				*priorities;
791*61046927SAndroid Build Coastguard Worker #else
792*61046927SAndroid Build Coastguard Worker 	__u64				priorities;
793*61046927SAndroid Build Coastguard Worker #endif
794*61046927SAndroid Build Coastguard Worker };
795*61046927SAndroid Build Coastguard Worker 
796*61046927SAndroid Build Coastguard Worker enum d3dkmt_allocationresidencystatus {
797*61046927SAndroid Build Coastguard Worker 	_D3DKMT_ALLOCATIONRESIDENCYSTATUS_RESIDENTINGPUMEMORY		= 1,
798*61046927SAndroid Build Coastguard Worker 	_D3DKMT_ALLOCATIONRESIDENCYSTATUS_RESIDENTINSHAREDMEMORY	= 2,
799*61046927SAndroid Build Coastguard Worker 	_D3DKMT_ALLOCATIONRESIDENCYSTATUS_NOTRESIDENT			= 3,
800*61046927SAndroid Build Coastguard Worker };
801*61046927SAndroid Build Coastguard Worker 
802*61046927SAndroid Build Coastguard Worker struct d3dkmt_queryallocationresidency {
803*61046927SAndroid Build Coastguard Worker 	struct d3dkmthandle			device;
804*61046927SAndroid Build Coastguard Worker 	struct d3dkmthandle			resource;
805*61046927SAndroid Build Coastguard Worker #ifdef __KERNEL__
806*61046927SAndroid Build Coastguard Worker 	struct d3dkmthandle			*allocations;
807*61046927SAndroid Build Coastguard Worker #else
808*61046927SAndroid Build Coastguard Worker 	__u64					allocations;
809*61046927SAndroid Build Coastguard Worker #endif
810*61046927SAndroid Build Coastguard Worker 	__u32					allocation_count;
811*61046927SAndroid Build Coastguard Worker 	__u32					reserved;
812*61046927SAndroid Build Coastguard Worker #ifdef __KERNEL__
813*61046927SAndroid Build Coastguard Worker 	enum d3dkmt_allocationresidencystatus	*residency_status;
814*61046927SAndroid Build Coastguard Worker #else
815*61046927SAndroid Build Coastguard Worker 	__u64					residency_status;
816*61046927SAndroid Build Coastguard Worker #endif
817*61046927SAndroid Build Coastguard Worker };
818*61046927SAndroid Build Coastguard Worker 
819*61046927SAndroid Build Coastguard Worker struct d3dddicb_lock2flags {
820*61046927SAndroid Build Coastguard Worker 	union {
821*61046927SAndroid Build Coastguard Worker 		struct {
822*61046927SAndroid Build Coastguard Worker 			__u32	reserved:32;
823*61046927SAndroid Build Coastguard Worker 		};
824*61046927SAndroid Build Coastguard Worker 		__u32		value;
825*61046927SAndroid Build Coastguard Worker 	};
826*61046927SAndroid Build Coastguard Worker };
827*61046927SAndroid Build Coastguard Worker 
828*61046927SAndroid Build Coastguard Worker struct d3dkmt_lock2 {
829*61046927SAndroid Build Coastguard Worker 	struct d3dkmthandle		device;
830*61046927SAndroid Build Coastguard Worker 	struct d3dkmthandle		allocation;
831*61046927SAndroid Build Coastguard Worker 	struct d3dddicb_lock2flags	flags;
832*61046927SAndroid Build Coastguard Worker 	__u32				reserved;
833*61046927SAndroid Build Coastguard Worker #ifdef __KERNEL__
834*61046927SAndroid Build Coastguard Worker 	void				*data;
835*61046927SAndroid Build Coastguard Worker #else
836*61046927SAndroid Build Coastguard Worker 	__u64				data;
837*61046927SAndroid Build Coastguard Worker #endif
838*61046927SAndroid Build Coastguard Worker };
839*61046927SAndroid Build Coastguard Worker 
840*61046927SAndroid Build Coastguard Worker struct d3dkmt_unlock2 {
841*61046927SAndroid Build Coastguard Worker 	struct d3dkmthandle			device;
842*61046927SAndroid Build Coastguard Worker 	struct d3dkmthandle			allocation;
843*61046927SAndroid Build Coastguard Worker };
844*61046927SAndroid Build Coastguard Worker 
845*61046927SAndroid Build Coastguard Worker enum d3dkmt_device_error_reason {
846*61046927SAndroid Build Coastguard Worker 	_D3DKMT_DEVICE_ERROR_REASON_GENERIC		= 0x80000000,
847*61046927SAndroid Build Coastguard Worker 	_D3DKMT_DEVICE_ERROR_REASON_DRIVER_ERROR	= 0x80000006,
848*61046927SAndroid Build Coastguard Worker };
849*61046927SAndroid Build Coastguard Worker 
850*61046927SAndroid Build Coastguard Worker struct d3dkmt_markdeviceaserror {
851*61046927SAndroid Build Coastguard Worker 	struct d3dkmthandle			device;
852*61046927SAndroid Build Coastguard Worker 	enum d3dkmt_device_error_reason		reason;
853*61046927SAndroid Build Coastguard Worker };
854*61046927SAndroid Build Coastguard Worker 
855*61046927SAndroid Build Coastguard Worker enum d3dkmt_standardallocationtype {
856*61046927SAndroid Build Coastguard Worker 	_D3DKMT_STANDARDALLOCATIONTYPE_EXISTINGHEAP	= 1,
857*61046927SAndroid Build Coastguard Worker 	_D3DKMT_STANDARDALLOCATIONTYPE_CROSSADAPTER	= 2,
858*61046927SAndroid Build Coastguard Worker };
859*61046927SAndroid Build Coastguard Worker 
860*61046927SAndroid Build Coastguard Worker struct d3dkmt_standardallocation_existingheap {
861*61046927SAndroid Build Coastguard Worker 	__u64	size;
862*61046927SAndroid Build Coastguard Worker };
863*61046927SAndroid Build Coastguard Worker 
864*61046927SAndroid Build Coastguard Worker struct d3dkmt_createstandardallocationflags {
865*61046927SAndroid Build Coastguard Worker 	union {
866*61046927SAndroid Build Coastguard Worker 		struct {
867*61046927SAndroid Build Coastguard Worker 			__u32		reserved:32;
868*61046927SAndroid Build Coastguard Worker 		};
869*61046927SAndroid Build Coastguard Worker 		__u32			value;
870*61046927SAndroid Build Coastguard Worker 	};
871*61046927SAndroid Build Coastguard Worker };
872*61046927SAndroid Build Coastguard Worker 
873*61046927SAndroid Build Coastguard Worker struct d3dkmt_createstandardallocation {
874*61046927SAndroid Build Coastguard Worker 	enum d3dkmt_standardallocationtype		type;
875*61046927SAndroid Build Coastguard Worker 	__u32						reserved;
876*61046927SAndroid Build Coastguard Worker 	struct d3dkmt_standardallocation_existingheap	existing_heap_data;
877*61046927SAndroid Build Coastguard Worker 	struct d3dkmt_createstandardallocationflags	flags;
878*61046927SAndroid Build Coastguard Worker 	__u32						reserved1;
879*61046927SAndroid Build Coastguard Worker };
880*61046927SAndroid Build Coastguard Worker 
881*61046927SAndroid Build Coastguard Worker struct d3dddi_allocationinfo2 {
882*61046927SAndroid Build Coastguard Worker 	struct d3dkmthandle	allocation;
883*61046927SAndroid Build Coastguard Worker #ifdef __KERNEL__
884*61046927SAndroid Build Coastguard Worker 	const void		*sysmem;
885*61046927SAndroid Build Coastguard Worker #else
886*61046927SAndroid Build Coastguard Worker 	__u64			sysmem;
887*61046927SAndroid Build Coastguard Worker #endif
888*61046927SAndroid Build Coastguard Worker #ifdef __KERNEL__
889*61046927SAndroid Build Coastguard Worker 	void			*priv_drv_data;
890*61046927SAndroid Build Coastguard Worker #else
891*61046927SAndroid Build Coastguard Worker 	__u64			priv_drv_data;
892*61046927SAndroid Build Coastguard Worker #endif
893*61046927SAndroid Build Coastguard Worker 	__u32			priv_drv_data_size;
894*61046927SAndroid Build Coastguard Worker 	__u32			vidpn_source_id;
895*61046927SAndroid Build Coastguard Worker 	union {
896*61046927SAndroid Build Coastguard Worker 		struct {
897*61046927SAndroid Build Coastguard Worker 			__u32	primary:1;
898*61046927SAndroid Build Coastguard Worker 			__u32	stereo:1;
899*61046927SAndroid Build Coastguard Worker 			__u32	override_priority:1;
900*61046927SAndroid Build Coastguard Worker 			__u32	reserved:29;
901*61046927SAndroid Build Coastguard Worker 		};
902*61046927SAndroid Build Coastguard Worker 		__u32		value;
903*61046927SAndroid Build Coastguard Worker 	} flags;
904*61046927SAndroid Build Coastguard Worker 	__u64			gpu_virtual_address;
905*61046927SAndroid Build Coastguard Worker 	union {
906*61046927SAndroid Build Coastguard Worker 		__u32		priority;
907*61046927SAndroid Build Coastguard Worker 		__u64		unused;
908*61046927SAndroid Build Coastguard Worker 	};
909*61046927SAndroid Build Coastguard Worker 	__u64			reserved[5];
910*61046927SAndroid Build Coastguard Worker };
911*61046927SAndroid Build Coastguard Worker 
912*61046927SAndroid Build Coastguard Worker struct d3dkmt_createallocationflags {
913*61046927SAndroid Build Coastguard Worker 	union {
914*61046927SAndroid Build Coastguard Worker 		struct {
915*61046927SAndroid Build Coastguard Worker 			__u32		create_resource:1;
916*61046927SAndroid Build Coastguard Worker 			__u32		create_shared:1;
917*61046927SAndroid Build Coastguard Worker 			__u32		non_secure:1;
918*61046927SAndroid Build Coastguard Worker 			__u32		create_protected:1;
919*61046927SAndroid Build Coastguard Worker 			__u32		restrict_shared_access:1;
920*61046927SAndroid Build Coastguard Worker 			__u32		existing_sysmem:1;
921*61046927SAndroid Build Coastguard Worker 			__u32		nt_security_sharing:1;
922*61046927SAndroid Build Coastguard Worker 			__u32		read_only:1;
923*61046927SAndroid Build Coastguard Worker 			__u32		create_write_combined:1;
924*61046927SAndroid Build Coastguard Worker 			__u32		create_cached:1;
925*61046927SAndroid Build Coastguard Worker 			__u32		swap_chain_back_buffer:1;
926*61046927SAndroid Build Coastguard Worker 			__u32		cross_adapter:1;
927*61046927SAndroid Build Coastguard Worker 			__u32		open_cross_adapter:1;
928*61046927SAndroid Build Coastguard Worker 			__u32		partial_shared_creation:1;
929*61046927SAndroid Build Coastguard Worker 			__u32		zeroed:1;
930*61046927SAndroid Build Coastguard Worker 			__u32		write_watch:1;
931*61046927SAndroid Build Coastguard Worker 			__u32		standard_allocation:1;
932*61046927SAndroid Build Coastguard Worker 			__u32		existing_section:1;
933*61046927SAndroid Build Coastguard Worker 			__u32		reserved:14;
934*61046927SAndroid Build Coastguard Worker 		};
935*61046927SAndroid Build Coastguard Worker 		__u32			value;
936*61046927SAndroid Build Coastguard Worker 	};
937*61046927SAndroid Build Coastguard Worker };
938*61046927SAndroid Build Coastguard Worker 
939*61046927SAndroid Build Coastguard Worker struct d3dkmt_createallocation {
940*61046927SAndroid Build Coastguard Worker 	struct d3dkmthandle		device;
941*61046927SAndroid Build Coastguard Worker 	struct d3dkmthandle		resource;
942*61046927SAndroid Build Coastguard Worker 	struct d3dkmthandle		global_share;
943*61046927SAndroid Build Coastguard Worker 	__u32				reserved;
944*61046927SAndroid Build Coastguard Worker #ifdef __KERNEL__
945*61046927SAndroid Build Coastguard Worker 	const void			*private_runtime_data;
946*61046927SAndroid Build Coastguard Worker #else
947*61046927SAndroid Build Coastguard Worker 	__u64				private_runtime_data;
948*61046927SAndroid Build Coastguard Worker #endif
949*61046927SAndroid Build Coastguard Worker 	__u32				private_runtime_data_size;
950*61046927SAndroid Build Coastguard Worker 	__u32				reserved1;
951*61046927SAndroid Build Coastguard Worker 	union {
952*61046927SAndroid Build Coastguard Worker #ifdef __KERNEL__
953*61046927SAndroid Build Coastguard Worker 		struct d3dkmt_createstandardallocation *standard_allocation;
954*61046927SAndroid Build Coastguard Worker 		const void *priv_drv_data;
955*61046927SAndroid Build Coastguard Worker #else
956*61046927SAndroid Build Coastguard Worker 		__u64	standard_allocation;
957*61046927SAndroid Build Coastguard Worker 		__u64	priv_drv_data;
958*61046927SAndroid Build Coastguard Worker #endif
959*61046927SAndroid Build Coastguard Worker 	};
960*61046927SAndroid Build Coastguard Worker 	__u32				priv_drv_data_size;
961*61046927SAndroid Build Coastguard Worker 	__u32				alloc_count;
962*61046927SAndroid Build Coastguard Worker #ifdef __KERNEL__
963*61046927SAndroid Build Coastguard Worker 	struct d3dddi_allocationinfo2	*allocation_info;
964*61046927SAndroid Build Coastguard Worker #else
965*61046927SAndroid Build Coastguard Worker 	__u64				allocation_info;
966*61046927SAndroid Build Coastguard Worker #endif
967*61046927SAndroid Build Coastguard Worker 	struct d3dkmt_createallocationflags flags;
968*61046927SAndroid Build Coastguard Worker 	__u32				reserved2;
969*61046927SAndroid Build Coastguard Worker 	__u64				private_runtime_resource_handle;
970*61046927SAndroid Build Coastguard Worker };
971*61046927SAndroid Build Coastguard Worker 
972*61046927SAndroid Build Coastguard Worker struct d3dddicb_destroyallocation2flags {
973*61046927SAndroid Build Coastguard Worker 	union {
974*61046927SAndroid Build Coastguard Worker 		struct {
975*61046927SAndroid Build Coastguard Worker 			__u32		assume_not_in_use:1;
976*61046927SAndroid Build Coastguard Worker 			__u32		synchronous_destroy:1;
977*61046927SAndroid Build Coastguard Worker 			__u32		reserved:29;
978*61046927SAndroid Build Coastguard Worker 			__u32		system_use_only:1;
979*61046927SAndroid Build Coastguard Worker 		};
980*61046927SAndroid Build Coastguard Worker 		__u32			value;
981*61046927SAndroid Build Coastguard Worker 	};
982*61046927SAndroid Build Coastguard Worker };
983*61046927SAndroid Build Coastguard Worker 
984*61046927SAndroid Build Coastguard Worker struct d3dkmt_destroyallocation2 {
985*61046927SAndroid Build Coastguard Worker 	struct d3dkmthandle		device;
986*61046927SAndroid Build Coastguard Worker 	struct d3dkmthandle		resource;
987*61046927SAndroid Build Coastguard Worker #ifdef __KERNEL__
988*61046927SAndroid Build Coastguard Worker 	const struct d3dkmthandle	*allocations;
989*61046927SAndroid Build Coastguard Worker #else
990*61046927SAndroid Build Coastguard Worker 	__u64				allocations;
991*61046927SAndroid Build Coastguard Worker #endif
992*61046927SAndroid Build Coastguard Worker 	__u32				alloc_count;
993*61046927SAndroid Build Coastguard Worker 	struct d3dddicb_destroyallocation2flags flags;
994*61046927SAndroid Build Coastguard Worker };
995*61046927SAndroid Build Coastguard Worker 
996*61046927SAndroid Build Coastguard Worker struct d3dddi_makeresident_flags {
997*61046927SAndroid Build Coastguard Worker 	union {
998*61046927SAndroid Build Coastguard Worker 		struct {
999*61046927SAndroid Build Coastguard Worker 			__u32		cant_trim_further:1;
1000*61046927SAndroid Build Coastguard Worker 			__u32		must_succeed:1;
1001*61046927SAndroid Build Coastguard Worker 			__u32		reserved:30;
1002*61046927SAndroid Build Coastguard Worker 		};
1003*61046927SAndroid Build Coastguard Worker 		__u32			value;
1004*61046927SAndroid Build Coastguard Worker 	};
1005*61046927SAndroid Build Coastguard Worker };
1006*61046927SAndroid Build Coastguard Worker 
1007*61046927SAndroid Build Coastguard Worker struct d3dddi_makeresident {
1008*61046927SAndroid Build Coastguard Worker 	struct d3dkmthandle		paging_queue;
1009*61046927SAndroid Build Coastguard Worker 	__u32				alloc_count;
1010*61046927SAndroid Build Coastguard Worker #ifdef __KERNEL__
1011*61046927SAndroid Build Coastguard Worker 	const struct d3dkmthandle	*allocation_list;
1012*61046927SAndroid Build Coastguard Worker 	const __u32			*priority_list;
1013*61046927SAndroid Build Coastguard Worker #else
1014*61046927SAndroid Build Coastguard Worker 	__u64				allocation_list;
1015*61046927SAndroid Build Coastguard Worker 	__u64				priority_list;
1016*61046927SAndroid Build Coastguard Worker #endif
1017*61046927SAndroid Build Coastguard Worker 	struct d3dddi_makeresident_flags flags;
1018*61046927SAndroid Build Coastguard Worker 	__u64				paging_fence_value;
1019*61046927SAndroid Build Coastguard Worker 	__u64				num_bytes_to_trim;
1020*61046927SAndroid Build Coastguard Worker };
1021*61046927SAndroid Build Coastguard Worker 
1022*61046927SAndroid Build Coastguard Worker struct d3dddi_evict_flags {
1023*61046927SAndroid Build Coastguard Worker 	union {
1024*61046927SAndroid Build Coastguard Worker 		struct {
1025*61046927SAndroid Build Coastguard Worker 			__u32		evict_only_if_necessary:1;
1026*61046927SAndroid Build Coastguard Worker 			__u32		not_written_to:1;
1027*61046927SAndroid Build Coastguard Worker 			__u32		reserved:30;
1028*61046927SAndroid Build Coastguard Worker 		};
1029*61046927SAndroid Build Coastguard Worker 		__u32			value;
1030*61046927SAndroid Build Coastguard Worker 	};
1031*61046927SAndroid Build Coastguard Worker };
1032*61046927SAndroid Build Coastguard Worker 
1033*61046927SAndroid Build Coastguard Worker struct d3dkmt_evict {
1034*61046927SAndroid Build Coastguard Worker 	struct d3dkmthandle		device;
1035*61046927SAndroid Build Coastguard Worker 	__u32				alloc_count;
1036*61046927SAndroid Build Coastguard Worker #ifdef __KERNEL__
1037*61046927SAndroid Build Coastguard Worker 	const struct d3dkmthandle	*allocations;
1038*61046927SAndroid Build Coastguard Worker #else
1039*61046927SAndroid Build Coastguard Worker 	__u64				allocations;
1040*61046927SAndroid Build Coastguard Worker #endif
1041*61046927SAndroid Build Coastguard Worker 	struct d3dddi_evict_flags	flags;
1042*61046927SAndroid Build Coastguard Worker 	__u32				reserved;
1043*61046927SAndroid Build Coastguard Worker 	__u64				num_bytes_to_trim;
1044*61046927SAndroid Build Coastguard Worker };
1045*61046927SAndroid Build Coastguard Worker 
1046*61046927SAndroid Build Coastguard Worker struct d3dddigpuva_protection_type {
1047*61046927SAndroid Build Coastguard Worker 	union {
1048*61046927SAndroid Build Coastguard Worker 		struct {
1049*61046927SAndroid Build Coastguard Worker 			__u64	write:1;
1050*61046927SAndroid Build Coastguard Worker 			__u64	execute:1;
1051*61046927SAndroid Build Coastguard Worker 			__u64	zero:1;
1052*61046927SAndroid Build Coastguard Worker 			__u64	no_access:1;
1053*61046927SAndroid Build Coastguard Worker 			__u64	system_use_only:1;
1054*61046927SAndroid Build Coastguard Worker 			__u64	reserved:59;
1055*61046927SAndroid Build Coastguard Worker 		};
1056*61046927SAndroid Build Coastguard Worker 		__u64		value;
1057*61046927SAndroid Build Coastguard Worker 	};
1058*61046927SAndroid Build Coastguard Worker };
1059*61046927SAndroid Build Coastguard Worker 
1060*61046927SAndroid Build Coastguard Worker enum d3dddi_updategpuvirtualaddress_operation_type {
1061*61046927SAndroid Build Coastguard Worker 	_D3DDDI_UPDATEGPUVIRTUALADDRESS_MAP		= 0,
1062*61046927SAndroid Build Coastguard Worker 	_D3DDDI_UPDATEGPUVIRTUALADDRESS_UNMAP		= 1,
1063*61046927SAndroid Build Coastguard Worker 	_D3DDDI_UPDATEGPUVIRTUALADDRESS_COPY		= 2,
1064*61046927SAndroid Build Coastguard Worker 	_D3DDDI_UPDATEGPUVIRTUALADDRESS_MAP_PROTECT	= 3,
1065*61046927SAndroid Build Coastguard Worker };
1066*61046927SAndroid Build Coastguard Worker 
1067*61046927SAndroid Build Coastguard Worker struct d3dddi_updategpuvirtualaddress_operation {
1068*61046927SAndroid Build Coastguard Worker 	enum d3dddi_updategpuvirtualaddress_operation_type operation;
1069*61046927SAndroid Build Coastguard Worker 	union {
1070*61046927SAndroid Build Coastguard Worker 		struct {
1071*61046927SAndroid Build Coastguard Worker 			__u64		base_address;
1072*61046927SAndroid Build Coastguard Worker 			__u64		size;
1073*61046927SAndroid Build Coastguard Worker 			struct d3dkmthandle allocation;
1074*61046927SAndroid Build Coastguard Worker 			__u64		allocation_offset;
1075*61046927SAndroid Build Coastguard Worker 			__u64		allocation_size;
1076*61046927SAndroid Build Coastguard Worker 		} map;
1077*61046927SAndroid Build Coastguard Worker 		struct {
1078*61046927SAndroid Build Coastguard Worker 			__u64		base_address;
1079*61046927SAndroid Build Coastguard Worker 			__u64		size;
1080*61046927SAndroid Build Coastguard Worker 			struct d3dkmthandle allocation;
1081*61046927SAndroid Build Coastguard Worker 			__u64		allocation_offset;
1082*61046927SAndroid Build Coastguard Worker 			__u64		allocation_size;
1083*61046927SAndroid Build Coastguard Worker 			struct d3dddigpuva_protection_type protection;
1084*61046927SAndroid Build Coastguard Worker 			__u64		driver_protection;
1085*61046927SAndroid Build Coastguard Worker 		} map_protect;
1086*61046927SAndroid Build Coastguard Worker 		struct {
1087*61046927SAndroid Build Coastguard Worker 			__u64	base_address;
1088*61046927SAndroid Build Coastguard Worker 			__u64	size;
1089*61046927SAndroid Build Coastguard Worker 			struct d3dddigpuva_protection_type protection;
1090*61046927SAndroid Build Coastguard Worker 		} unmap;
1091*61046927SAndroid Build Coastguard Worker 		struct {
1092*61046927SAndroid Build Coastguard Worker 			__u64	source_address;
1093*61046927SAndroid Build Coastguard Worker 			__u64	size;
1094*61046927SAndroid Build Coastguard Worker 			__u64	dest_address;
1095*61046927SAndroid Build Coastguard Worker 		} copy;
1096*61046927SAndroid Build Coastguard Worker 	};
1097*61046927SAndroid Build Coastguard Worker };
1098*61046927SAndroid Build Coastguard Worker 
1099*61046927SAndroid Build Coastguard Worker enum d3dddigpuva_reservation_type {
1100*61046927SAndroid Build Coastguard Worker 	_D3DDDIGPUVA_RESERVE_NO_ACCESS		= 0,
1101*61046927SAndroid Build Coastguard Worker 	_D3DDDIGPUVA_RESERVE_ZERO		= 1,
1102*61046927SAndroid Build Coastguard Worker 	_D3DDDIGPUVA_RESERVE_NO_COMMIT		= 2
1103*61046927SAndroid Build Coastguard Worker };
1104*61046927SAndroid Build Coastguard Worker 
1105*61046927SAndroid Build Coastguard Worker struct d3dkmt_updategpuvirtualaddress {
1106*61046927SAndroid Build Coastguard Worker 	struct d3dkmthandle			device;
1107*61046927SAndroid Build Coastguard Worker 	struct d3dkmthandle			context;
1108*61046927SAndroid Build Coastguard Worker 	struct d3dkmthandle			fence_object;
1109*61046927SAndroid Build Coastguard Worker 	__u32					num_operations;
1110*61046927SAndroid Build Coastguard Worker #ifdef __KERNEL__
1111*61046927SAndroid Build Coastguard Worker 	struct d3dddi_updategpuvirtualaddress_operation *operations;
1112*61046927SAndroid Build Coastguard Worker #else
1113*61046927SAndroid Build Coastguard Worker 	__u64					operations;
1114*61046927SAndroid Build Coastguard Worker #endif
1115*61046927SAndroid Build Coastguard Worker 	__u32					reserved0;
1116*61046927SAndroid Build Coastguard Worker 	__u32					reserved1;
1117*61046927SAndroid Build Coastguard Worker 	__u64					reserved2;
1118*61046927SAndroid Build Coastguard Worker 	__u64					fence_value;
1119*61046927SAndroid Build Coastguard Worker 	union {
1120*61046927SAndroid Build Coastguard Worker 		struct {
1121*61046927SAndroid Build Coastguard Worker 			__u32			do_not_wait:1;
1122*61046927SAndroid Build Coastguard Worker 			__u32			reserved:31;
1123*61046927SAndroid Build Coastguard Worker 		};
1124*61046927SAndroid Build Coastguard Worker 		__u32				value;
1125*61046927SAndroid Build Coastguard Worker 	} flags;
1126*61046927SAndroid Build Coastguard Worker 	__u32					reserved3;
1127*61046927SAndroid Build Coastguard Worker };
1128*61046927SAndroid Build Coastguard Worker 
1129*61046927SAndroid Build Coastguard Worker struct d3dddi_mapgpuvirtualaddress {
1130*61046927SAndroid Build Coastguard Worker 	struct d3dkmthandle			paging_queue;
1131*61046927SAndroid Build Coastguard Worker 	__u64					base_address;
1132*61046927SAndroid Build Coastguard Worker 	__u64					minimum_address;
1133*61046927SAndroid Build Coastguard Worker 	__u64					maximum_address;
1134*61046927SAndroid Build Coastguard Worker 	struct d3dkmthandle			allocation;
1135*61046927SAndroid Build Coastguard Worker 	__u64					offset_in_pages;
1136*61046927SAndroid Build Coastguard Worker 	__u64					size_in_pages;
1137*61046927SAndroid Build Coastguard Worker 	struct d3dddigpuva_protection_type	protection;
1138*61046927SAndroid Build Coastguard Worker 	__u64					driver_protection;
1139*61046927SAndroid Build Coastguard Worker 	__u32					reserved0;
1140*61046927SAndroid Build Coastguard Worker 	__u64					reserved1;
1141*61046927SAndroid Build Coastguard Worker 	__u64					virtual_address;
1142*61046927SAndroid Build Coastguard Worker 	__u64					paging_fence_value;
1143*61046927SAndroid Build Coastguard Worker };
1144*61046927SAndroid Build Coastguard Worker 
1145*61046927SAndroid Build Coastguard Worker struct d3dddi_reservegpuvirtualaddress {
1146*61046927SAndroid Build Coastguard Worker 	struct d3dkmthandle			adapter;
1147*61046927SAndroid Build Coastguard Worker 	__u64					base_address;
1148*61046927SAndroid Build Coastguard Worker 	__u64					minimum_address;
1149*61046927SAndroid Build Coastguard Worker 	__u64					maximum_address;
1150*61046927SAndroid Build Coastguard Worker 	__u64					size;
1151*61046927SAndroid Build Coastguard Worker 	enum d3dddigpuva_reservation_type	reservation_type;
1152*61046927SAndroid Build Coastguard Worker 	__u64					driver_protection;
1153*61046927SAndroid Build Coastguard Worker 	__u64					virtual_address;
1154*61046927SAndroid Build Coastguard Worker 	__u64					paging_fence_value;
1155*61046927SAndroid Build Coastguard Worker };
1156*61046927SAndroid Build Coastguard Worker 
1157*61046927SAndroid Build Coastguard Worker struct d3dkmt_freegpuvirtualaddress {
1158*61046927SAndroid Build Coastguard Worker 	struct d3dkmthandle	adapter;
1159*61046927SAndroid Build Coastguard Worker 	__u32			reserved;
1160*61046927SAndroid Build Coastguard Worker 	__u64			base_address;
1161*61046927SAndroid Build Coastguard Worker 	__u64			size;
1162*61046927SAndroid Build Coastguard Worker };
1163*61046927SAndroid Build Coastguard Worker 
1164*61046927SAndroid Build Coastguard Worker enum d3dkmt_memory_segment_group {
1165*61046927SAndroid Build Coastguard Worker 	_D3DKMT_MEMORY_SEGMENT_GROUP_LOCAL	= 0,
1166*61046927SAndroid Build Coastguard Worker 	_D3DKMT_MEMORY_SEGMENT_GROUP_NON_LOCAL	= 1
1167*61046927SAndroid Build Coastguard Worker };
1168*61046927SAndroid Build Coastguard Worker 
1169*61046927SAndroid Build Coastguard Worker struct d3dkmt_queryvideomemoryinfo {
1170*61046927SAndroid Build Coastguard Worker 	__u64					process;
1171*61046927SAndroid Build Coastguard Worker 	struct d3dkmthandle			adapter;
1172*61046927SAndroid Build Coastguard Worker 	enum d3dkmt_memory_segment_group	memory_segment_group;
1173*61046927SAndroid Build Coastguard Worker 	__u64					budget;
1174*61046927SAndroid Build Coastguard Worker 	__u64					current_usage;
1175*61046927SAndroid Build Coastguard Worker 	__u64					current_reservation;
1176*61046927SAndroid Build Coastguard Worker 	__u64					available_for_reservation;
1177*61046927SAndroid Build Coastguard Worker 	__u32					physical_adapter_index;
1178*61046927SAndroid Build Coastguard Worker };
1179*61046927SAndroid Build Coastguard Worker 
1180*61046927SAndroid Build Coastguard Worker struct d3dkmt_adaptertype {
1181*61046927SAndroid Build Coastguard Worker 	union {
1182*61046927SAndroid Build Coastguard Worker 		struct {
1183*61046927SAndroid Build Coastguard Worker 			__u32		render_supported:1;
1184*61046927SAndroid Build Coastguard Worker 			__u32		display_supported:1;
1185*61046927SAndroid Build Coastguard Worker 			__u32		software_device:1;
1186*61046927SAndroid Build Coastguard Worker 			__u32		post_device:1;
1187*61046927SAndroid Build Coastguard Worker 			__u32		hybrid_discrete:1;
1188*61046927SAndroid Build Coastguard Worker 			__u32		hybrid_integrated:1;
1189*61046927SAndroid Build Coastguard Worker 			__u32		indirect_display_device:1;
1190*61046927SAndroid Build Coastguard Worker 			__u32		paravirtualized:1;
1191*61046927SAndroid Build Coastguard Worker 			__u32		acg_supported:1;
1192*61046927SAndroid Build Coastguard Worker 			__u32		support_set_timings_from_vidpn:1;
1193*61046927SAndroid Build Coastguard Worker 			__u32		detachable:1;
1194*61046927SAndroid Build Coastguard Worker 			__u32		compute_only:1;
1195*61046927SAndroid Build Coastguard Worker 			__u32		prototype:1;
1196*61046927SAndroid Build Coastguard Worker 			__u32		reserved:19;
1197*61046927SAndroid Build Coastguard Worker 		};
1198*61046927SAndroid Build Coastguard Worker 		__u32			value;
1199*61046927SAndroid Build Coastguard Worker 	};
1200*61046927SAndroid Build Coastguard Worker };
1201*61046927SAndroid Build Coastguard Worker 
1202*61046927SAndroid Build Coastguard Worker enum kmtqueryadapterinfotype {
1203*61046927SAndroid Build Coastguard Worker 	_KMTQAITYPE_UMDRIVERPRIVATE	= 0,
1204*61046927SAndroid Build Coastguard Worker 	_KMTQAITYPE_ADAPTERTYPE		= 15,
1205*61046927SAndroid Build Coastguard Worker 	_KMTQAITYPE_ADAPTERTYPE_RENDER	= 57
1206*61046927SAndroid Build Coastguard Worker };
1207*61046927SAndroid Build Coastguard Worker 
1208*61046927SAndroid Build Coastguard Worker struct d3dkmt_queryadapterinfo {
1209*61046927SAndroid Build Coastguard Worker 	struct d3dkmthandle		adapter;
1210*61046927SAndroid Build Coastguard Worker 	enum kmtqueryadapterinfotype	type;
1211*61046927SAndroid Build Coastguard Worker #ifdef __KERNEL__
1212*61046927SAndroid Build Coastguard Worker 	void				*private_data;
1213*61046927SAndroid Build Coastguard Worker #else
1214*61046927SAndroid Build Coastguard Worker 	__u64				private_data;
1215*61046927SAndroid Build Coastguard Worker #endif
1216*61046927SAndroid Build Coastguard Worker 	__u32				private_data_size;
1217*61046927SAndroid Build Coastguard Worker };
1218*61046927SAndroid Build Coastguard Worker 
1219*61046927SAndroid Build Coastguard Worker #pragma pack(push, 1)
1220*61046927SAndroid Build Coastguard Worker 
1221*61046927SAndroid Build Coastguard Worker struct dxgk_gpuclockdata_flags {
1222*61046927SAndroid Build Coastguard Worker 	union {
1223*61046927SAndroid Build Coastguard Worker 		struct {
1224*61046927SAndroid Build Coastguard Worker 			__u32	context_management_processor:1;
1225*61046927SAndroid Build Coastguard Worker 			__u32	reserved:31;
1226*61046927SAndroid Build Coastguard Worker 		};
1227*61046927SAndroid Build Coastguard Worker 		__u32		value;
1228*61046927SAndroid Build Coastguard Worker 	};
1229*61046927SAndroid Build Coastguard Worker };
1230*61046927SAndroid Build Coastguard Worker 
1231*61046927SAndroid Build Coastguard Worker struct dxgk_gpuclockdata {
1232*61046927SAndroid Build Coastguard Worker 	__u64				gpu_frequency;
1233*61046927SAndroid Build Coastguard Worker 	__u64				gpu_clock_counter;
1234*61046927SAndroid Build Coastguard Worker 	__u64				cpu_clock_counter;
1235*61046927SAndroid Build Coastguard Worker 	struct dxgk_gpuclockdata_flags	flags;
1236*61046927SAndroid Build Coastguard Worker } __packed;
1237*61046927SAndroid Build Coastguard Worker 
1238*61046927SAndroid Build Coastguard Worker struct d3dkmt_queryclockcalibration {
1239*61046927SAndroid Build Coastguard Worker 	struct d3dkmthandle	adapter;
1240*61046927SAndroid Build Coastguard Worker 	__u32			node_ordinal;
1241*61046927SAndroid Build Coastguard Worker 	__u32			physical_adapter_index;
1242*61046927SAndroid Build Coastguard Worker 	struct dxgk_gpuclockdata clock_data;
1243*61046927SAndroid Build Coastguard Worker };
1244*61046927SAndroid Build Coastguard Worker 
1245*61046927SAndroid Build Coastguard Worker #pragma pack(pop)
1246*61046927SAndroid Build Coastguard Worker 
1247*61046927SAndroid Build Coastguard Worker struct d3dkmt_flushheaptransitions {
1248*61046927SAndroid Build Coastguard Worker 	struct d3dkmthandle	adapter;
1249*61046927SAndroid Build Coastguard Worker };
1250*61046927SAndroid Build Coastguard Worker 
1251*61046927SAndroid Build Coastguard Worker struct d3dddi_openallocationinfo2 {
1252*61046927SAndroid Build Coastguard Worker 	struct d3dkmthandle	allocation;
1253*61046927SAndroid Build Coastguard Worker #ifdef __KERNEL__
1254*61046927SAndroid Build Coastguard Worker 	void			*priv_drv_data;
1255*61046927SAndroid Build Coastguard Worker #else
1256*61046927SAndroid Build Coastguard Worker 	__u64			priv_drv_data;
1257*61046927SAndroid Build Coastguard Worker #endif
1258*61046927SAndroid Build Coastguard Worker 	__u32			priv_drv_data_size;
1259*61046927SAndroid Build Coastguard Worker 	__u64			gpu_va;
1260*61046927SAndroid Build Coastguard Worker 	__u64			reserved[6];
1261*61046927SAndroid Build Coastguard Worker };
1262*61046927SAndroid Build Coastguard Worker 
1263*61046927SAndroid Build Coastguard Worker struct d3dddi_updateallocproperty_flags {
1264*61046927SAndroid Build Coastguard Worker 	union {
1265*61046927SAndroid Build Coastguard Worker 		struct {
1266*61046927SAndroid Build Coastguard Worker 			__u32			accessed_physically:1;
1267*61046927SAndroid Build Coastguard Worker 			__u32			reserved:31;
1268*61046927SAndroid Build Coastguard Worker 		};
1269*61046927SAndroid Build Coastguard Worker 		__u32				value;
1270*61046927SAndroid Build Coastguard Worker 	};
1271*61046927SAndroid Build Coastguard Worker };
1272*61046927SAndroid Build Coastguard Worker 
1273*61046927SAndroid Build Coastguard Worker struct d3dddi_segmentpreference {
1274*61046927SAndroid Build Coastguard Worker 	union {
1275*61046927SAndroid Build Coastguard Worker 		struct {
1276*61046927SAndroid Build Coastguard Worker 			__u32			segment_id0:5;
1277*61046927SAndroid Build Coastguard Worker 			__u32			direction0:1;
1278*61046927SAndroid Build Coastguard Worker 			__u32			segment_id1:5;
1279*61046927SAndroid Build Coastguard Worker 			__u32			direction1:1;
1280*61046927SAndroid Build Coastguard Worker 			__u32			segment_id2:5;
1281*61046927SAndroid Build Coastguard Worker 			__u32			direction2:1;
1282*61046927SAndroid Build Coastguard Worker 			__u32			segment_id3:5;
1283*61046927SAndroid Build Coastguard Worker 			__u32			direction3:1;
1284*61046927SAndroid Build Coastguard Worker 			__u32			segment_id4:5;
1285*61046927SAndroid Build Coastguard Worker 			__u32			direction4:1;
1286*61046927SAndroid Build Coastguard Worker 			__u32			reserved:2;
1287*61046927SAndroid Build Coastguard Worker 		};
1288*61046927SAndroid Build Coastguard Worker 		__u32				value;
1289*61046927SAndroid Build Coastguard Worker 	};
1290*61046927SAndroid Build Coastguard Worker };
1291*61046927SAndroid Build Coastguard Worker 
1292*61046927SAndroid Build Coastguard Worker struct d3dddi_updateallocproperty {
1293*61046927SAndroid Build Coastguard Worker 	struct d3dkmthandle			paging_queue;
1294*61046927SAndroid Build Coastguard Worker 	struct d3dkmthandle			allocation;
1295*61046927SAndroid Build Coastguard Worker 	__u32					supported_segment_set;
1296*61046927SAndroid Build Coastguard Worker 	struct d3dddi_segmentpreference		preferred_segment;
1297*61046927SAndroid Build Coastguard Worker 	struct d3dddi_updateallocproperty_flags	flags;
1298*61046927SAndroid Build Coastguard Worker 	__u64					paging_fence_value;
1299*61046927SAndroid Build Coastguard Worker 	union {
1300*61046927SAndroid Build Coastguard Worker 		struct {
1301*61046927SAndroid Build Coastguard Worker 			__u32			set_accessed_physically:1;
1302*61046927SAndroid Build Coastguard Worker 			__u32			set_supported_segmentSet:1;
1303*61046927SAndroid Build Coastguard Worker 			__u32			set_preferred_segment:1;
1304*61046927SAndroid Build Coastguard Worker 			__u32			reserved:29;
1305*61046927SAndroid Build Coastguard Worker 		};
1306*61046927SAndroid Build Coastguard Worker 		__u32				property_mask_value;
1307*61046927SAndroid Build Coastguard Worker 	};
1308*61046927SAndroid Build Coastguard Worker };
1309*61046927SAndroid Build Coastguard Worker 
1310*61046927SAndroid Build Coastguard Worker enum d3dkmt_offer_priority {
1311*61046927SAndroid Build Coastguard Worker 	_D3DKMT_OFFER_PRIORITY_LOW	= 1,
1312*61046927SAndroid Build Coastguard Worker 	_D3DKMT_OFFER_PRIORITY_NORMAL	= 2,
1313*61046927SAndroid Build Coastguard Worker 	_D3DKMT_OFFER_PRIORITY_HIGH	= 3,
1314*61046927SAndroid Build Coastguard Worker 	_D3DKMT_OFFER_PRIORITY_AUTO	= 4,
1315*61046927SAndroid Build Coastguard Worker };
1316*61046927SAndroid Build Coastguard Worker 
1317*61046927SAndroid Build Coastguard Worker struct d3dkmt_offer_flags {
1318*61046927SAndroid Build Coastguard Worker 	union {
1319*61046927SAndroid Build Coastguard Worker 		struct {
1320*61046927SAndroid Build Coastguard Worker 			__u32	offer_immediately:1;
1321*61046927SAndroid Build Coastguard Worker 			__u32	allow_decommit:1;
1322*61046927SAndroid Build Coastguard Worker 			__u32	reserved:30;
1323*61046927SAndroid Build Coastguard Worker 		};
1324*61046927SAndroid Build Coastguard Worker 		__u32		value;
1325*61046927SAndroid Build Coastguard Worker 	};
1326*61046927SAndroid Build Coastguard Worker };
1327*61046927SAndroid Build Coastguard Worker 
1328*61046927SAndroid Build Coastguard Worker struct d3dkmt_offerallocations {
1329*61046927SAndroid Build Coastguard Worker 	struct d3dkmthandle		device;
1330*61046927SAndroid Build Coastguard Worker 	__u32				reserved;
1331*61046927SAndroid Build Coastguard Worker #ifdef __KERNEL__
1332*61046927SAndroid Build Coastguard Worker 	struct d3dkmthandle		*resources;
1333*61046927SAndroid Build Coastguard Worker 	const struct d3dkmthandle	*allocations;
1334*61046927SAndroid Build Coastguard Worker #else
1335*61046927SAndroid Build Coastguard Worker 	__u64				resources;
1336*61046927SAndroid Build Coastguard Worker 	__u64				allocations;
1337*61046927SAndroid Build Coastguard Worker #endif
1338*61046927SAndroid Build Coastguard Worker 	__u32				allocation_count;
1339*61046927SAndroid Build Coastguard Worker 	enum d3dkmt_offer_priority	priority;
1340*61046927SAndroid Build Coastguard Worker 	struct d3dkmt_offer_flags	flags;
1341*61046927SAndroid Build Coastguard Worker 	__u32				reserved1;
1342*61046927SAndroid Build Coastguard Worker };
1343*61046927SAndroid Build Coastguard Worker 
1344*61046927SAndroid Build Coastguard Worker enum d3dddi_reclaim_result {
1345*61046927SAndroid Build Coastguard Worker 	_D3DDDI_RECLAIM_RESULT_OK		= 0,
1346*61046927SAndroid Build Coastguard Worker 	_D3DDDI_RECLAIM_RESULT_DISCARDED	= 1,
1347*61046927SAndroid Build Coastguard Worker 	_D3DDDI_RECLAIM_RESULT_NOT_COMMITTED	= 2,
1348*61046927SAndroid Build Coastguard Worker };
1349*61046927SAndroid Build Coastguard Worker 
1350*61046927SAndroid Build Coastguard Worker struct d3dkmt_reclaimallocations2 {
1351*61046927SAndroid Build Coastguard Worker 	struct d3dkmthandle	paging_queue;
1352*61046927SAndroid Build Coastguard Worker 	__u32			allocation_count;
1353*61046927SAndroid Build Coastguard Worker #ifdef __KERNEL__
1354*61046927SAndroid Build Coastguard Worker 	struct d3dkmthandle	*resources;
1355*61046927SAndroid Build Coastguard Worker 	struct d3dkmthandle	*allocations;
1356*61046927SAndroid Build Coastguard Worker #else
1357*61046927SAndroid Build Coastguard Worker 	__u64			resources;
1358*61046927SAndroid Build Coastguard Worker 	__u64			allocations;
1359*61046927SAndroid Build Coastguard Worker #endif
1360*61046927SAndroid Build Coastguard Worker 	union {
1361*61046927SAndroid Build Coastguard Worker #ifdef __KERNEL__
1362*61046927SAndroid Build Coastguard Worker 		__u32				*discarded;
1363*61046927SAndroid Build Coastguard Worker 		enum d3dddi_reclaim_result	*results;
1364*61046927SAndroid Build Coastguard Worker #else
1365*61046927SAndroid Build Coastguard Worker 		__u64				discarded;
1366*61046927SAndroid Build Coastguard Worker 		__u64				results;
1367*61046927SAndroid Build Coastguard Worker #endif
1368*61046927SAndroid Build Coastguard Worker 	};
1369*61046927SAndroid Build Coastguard Worker 	__u64			paging_fence_value;
1370*61046927SAndroid Build Coastguard Worker };
1371*61046927SAndroid Build Coastguard Worker 
1372*61046927SAndroid Build Coastguard Worker struct d3dkmt_changevideomemoryreservation {
1373*61046927SAndroid Build Coastguard Worker 	__u64			process;
1374*61046927SAndroid Build Coastguard Worker 	struct d3dkmthandle	adapter;
1375*61046927SAndroid Build Coastguard Worker 	enum d3dkmt_memory_segment_group memory_segment_group;
1376*61046927SAndroid Build Coastguard Worker 	__u64			reservation;
1377*61046927SAndroid Build Coastguard Worker 	__u32			physical_adapter_index;
1378*61046927SAndroid Build Coastguard Worker };
1379*61046927SAndroid Build Coastguard Worker 
1380*61046927SAndroid Build Coastguard Worker struct d3dkmt_createhwqueue {
1381*61046927SAndroid Build Coastguard Worker 	struct d3dkmthandle	context;
1382*61046927SAndroid Build Coastguard Worker 	struct d3dddi_createhwqueueflags flags;
1383*61046927SAndroid Build Coastguard Worker 	__u32			priv_drv_data_size;
1384*61046927SAndroid Build Coastguard Worker 	__u32			reserved;
1385*61046927SAndroid Build Coastguard Worker #ifdef __KERNEL__
1386*61046927SAndroid Build Coastguard Worker 	void			*priv_drv_data;
1387*61046927SAndroid Build Coastguard Worker #else
1388*61046927SAndroid Build Coastguard Worker 	__u64			priv_drv_data;
1389*61046927SAndroid Build Coastguard Worker #endif
1390*61046927SAndroid Build Coastguard Worker 	struct d3dkmthandle	queue;
1391*61046927SAndroid Build Coastguard Worker 	struct d3dkmthandle	queue_progress_fence;
1392*61046927SAndroid Build Coastguard Worker #ifdef __KERNEL__
1393*61046927SAndroid Build Coastguard Worker 	void			*queue_progress_fence_cpu_va;
1394*61046927SAndroid Build Coastguard Worker #else
1395*61046927SAndroid Build Coastguard Worker 	__u64			queue_progress_fence_cpu_va;
1396*61046927SAndroid Build Coastguard Worker #endif
1397*61046927SAndroid Build Coastguard Worker 	__u64			queue_progress_fence_gpu_va;
1398*61046927SAndroid Build Coastguard Worker };
1399*61046927SAndroid Build Coastguard Worker 
1400*61046927SAndroid Build Coastguard Worker struct d3dkmt_destroyhwqueue {
1401*61046927SAndroid Build Coastguard Worker 	struct d3dkmthandle	queue;
1402*61046927SAndroid Build Coastguard Worker };
1403*61046927SAndroid Build Coastguard Worker 
1404*61046927SAndroid Build Coastguard Worker struct d3dkmt_submitwaitforsyncobjectstohwqueue {
1405*61046927SAndroid Build Coastguard Worker 	struct d3dkmthandle	hwqueue;
1406*61046927SAndroid Build Coastguard Worker 	__u32			object_count;
1407*61046927SAndroid Build Coastguard Worker #ifdef __KERNEL__
1408*61046927SAndroid Build Coastguard Worker 	struct d3dkmthandle	*objects;
1409*61046927SAndroid Build Coastguard Worker 	__u64			*fence_values;
1410*61046927SAndroid Build Coastguard Worker #else
1411*61046927SAndroid Build Coastguard Worker 	__u64			objects;
1412*61046927SAndroid Build Coastguard Worker 	__u64			fence_values;
1413*61046927SAndroid Build Coastguard Worker #endif
1414*61046927SAndroid Build Coastguard Worker };
1415*61046927SAndroid Build Coastguard Worker 
1416*61046927SAndroid Build Coastguard Worker struct d3dkmt_submitsignalsyncobjectstohwqueue {
1417*61046927SAndroid Build Coastguard Worker 	struct d3dddicb_signalflags	flags;
1418*61046927SAndroid Build Coastguard Worker 	__u32				hwqueue_count;
1419*61046927SAndroid Build Coastguard Worker #ifdef __KERNEL__
1420*61046927SAndroid Build Coastguard Worker 	struct d3dkmthandle		*hwqueues;
1421*61046927SAndroid Build Coastguard Worker #else
1422*61046927SAndroid Build Coastguard Worker 	__u64				hwqueues;
1423*61046927SAndroid Build Coastguard Worker #endif
1424*61046927SAndroid Build Coastguard Worker 	__u32				object_count;
1425*61046927SAndroid Build Coastguard Worker 	__u32				reserved;
1426*61046927SAndroid Build Coastguard Worker #ifdef __KERNEL__
1427*61046927SAndroid Build Coastguard Worker 	struct d3dkmthandle		*objects;
1428*61046927SAndroid Build Coastguard Worker 	__u64				*fence_values;
1429*61046927SAndroid Build Coastguard Worker #else
1430*61046927SAndroid Build Coastguard Worker 	__u64				objects;
1431*61046927SAndroid Build Coastguard Worker 	__u64				fence_values;
1432*61046927SAndroid Build Coastguard Worker #endif
1433*61046927SAndroid Build Coastguard Worker };
1434*61046927SAndroid Build Coastguard Worker 
1435*61046927SAndroid Build Coastguard Worker struct d3dkmt_opensyncobjectfromnthandle2 {
1436*61046927SAndroid Build Coastguard Worker 	__u64			nt_handle;
1437*61046927SAndroid Build Coastguard Worker 	struct d3dkmthandle	device;
1438*61046927SAndroid Build Coastguard Worker 	struct d3dddi_synchronizationobject_flags flags;
1439*61046927SAndroid Build Coastguard Worker 	struct d3dkmthandle	sync_object;
1440*61046927SAndroid Build Coastguard Worker 	__u32			reserved1;
1441*61046927SAndroid Build Coastguard Worker 	union {
1442*61046927SAndroid Build Coastguard Worker 		struct {
1443*61046927SAndroid Build Coastguard Worker #ifdef __KERNEL__
1444*61046927SAndroid Build Coastguard Worker 			void	*fence_value_cpu_va;
1445*61046927SAndroid Build Coastguard Worker #else
1446*61046927SAndroid Build Coastguard Worker 			__u64	fence_value_cpu_va;
1447*61046927SAndroid Build Coastguard Worker #endif
1448*61046927SAndroid Build Coastguard Worker 			__u64	fence_value_gpu_va;
1449*61046927SAndroid Build Coastguard Worker 			__u32	engine_affinity;
1450*61046927SAndroid Build Coastguard Worker 		} monitored_fence;
1451*61046927SAndroid Build Coastguard Worker 		__u64	reserved[8];
1452*61046927SAndroid Build Coastguard Worker 	};
1453*61046927SAndroid Build Coastguard Worker };
1454*61046927SAndroid Build Coastguard Worker 
1455*61046927SAndroid Build Coastguard Worker struct d3dkmt_openresourcefromnthandle {
1456*61046927SAndroid Build Coastguard Worker 	struct d3dkmthandle	device;
1457*61046927SAndroid Build Coastguard Worker 	__u32			reserved;
1458*61046927SAndroid Build Coastguard Worker 	__u64			nt_handle;
1459*61046927SAndroid Build Coastguard Worker 	__u32			allocation_count;
1460*61046927SAndroid Build Coastguard Worker 	__u32			reserved1;
1461*61046927SAndroid Build Coastguard Worker #ifdef __KERNEL__
1462*61046927SAndroid Build Coastguard Worker 	struct d3dddi_openallocationinfo2 *open_alloc_info;
1463*61046927SAndroid Build Coastguard Worker #else
1464*61046927SAndroid Build Coastguard Worker 	__u64			open_alloc_info;
1465*61046927SAndroid Build Coastguard Worker #endif
1466*61046927SAndroid Build Coastguard Worker 	int			private_runtime_data_size;
1467*61046927SAndroid Build Coastguard Worker 	__u32			reserved2;
1468*61046927SAndroid Build Coastguard Worker #ifdef __KERNEL__
1469*61046927SAndroid Build Coastguard Worker 	void			*private_runtime_data;
1470*61046927SAndroid Build Coastguard Worker #else
1471*61046927SAndroid Build Coastguard Worker 	__u64			private_runtime_data;
1472*61046927SAndroid Build Coastguard Worker #endif
1473*61046927SAndroid Build Coastguard Worker 	__u32			resource_priv_drv_data_size;
1474*61046927SAndroid Build Coastguard Worker 	__u32			reserved3;
1475*61046927SAndroid Build Coastguard Worker #ifdef __KERNEL__
1476*61046927SAndroid Build Coastguard Worker 	void			*resource_priv_drv_data;
1477*61046927SAndroid Build Coastguard Worker #else
1478*61046927SAndroid Build Coastguard Worker 	__u64			resource_priv_drv_data;
1479*61046927SAndroid Build Coastguard Worker #endif
1480*61046927SAndroid Build Coastguard Worker 	__u32			total_priv_drv_data_size;
1481*61046927SAndroid Build Coastguard Worker #ifdef __KERNEL__
1482*61046927SAndroid Build Coastguard Worker 	void			*total_priv_drv_data;
1483*61046927SAndroid Build Coastguard Worker #else
1484*61046927SAndroid Build Coastguard Worker 	__u64			total_priv_drv_data;
1485*61046927SAndroid Build Coastguard Worker #endif
1486*61046927SAndroid Build Coastguard Worker 	struct d3dkmthandle	resource;
1487*61046927SAndroid Build Coastguard Worker 	struct d3dkmthandle	keyed_mutex;
1488*61046927SAndroid Build Coastguard Worker #ifdef __KERNEL__
1489*61046927SAndroid Build Coastguard Worker 	void			*keyed_mutex_private_data;
1490*61046927SAndroid Build Coastguard Worker #else
1491*61046927SAndroid Build Coastguard Worker 	__u64			keyed_mutex_private_data;
1492*61046927SAndroid Build Coastguard Worker #endif
1493*61046927SAndroid Build Coastguard Worker 	__u32			keyed_mutex_private_data_size;
1494*61046927SAndroid Build Coastguard Worker 	struct d3dkmthandle	sync_object;
1495*61046927SAndroid Build Coastguard Worker };
1496*61046927SAndroid Build Coastguard Worker 
1497*61046927SAndroid Build Coastguard Worker struct d3dkmt_queryresourceinfofromnthandle {
1498*61046927SAndroid Build Coastguard Worker 	struct d3dkmthandle	device;
1499*61046927SAndroid Build Coastguard Worker 	__u32			reserved;
1500*61046927SAndroid Build Coastguard Worker 	__u64			nt_handle;
1501*61046927SAndroid Build Coastguard Worker #ifdef __KERNEL__
1502*61046927SAndroid Build Coastguard Worker 	void			*private_runtime_data;
1503*61046927SAndroid Build Coastguard Worker #else
1504*61046927SAndroid Build Coastguard Worker 	__u64			private_runtime_data;
1505*61046927SAndroid Build Coastguard Worker #endif
1506*61046927SAndroid Build Coastguard Worker 	__u32			private_runtime_data_size;
1507*61046927SAndroid Build Coastguard Worker 	__u32			total_priv_drv_data_size;
1508*61046927SAndroid Build Coastguard Worker 	__u32			resource_priv_drv_data_size;
1509*61046927SAndroid Build Coastguard Worker 	__u32			allocation_count;
1510*61046927SAndroid Build Coastguard Worker };
1511*61046927SAndroid Build Coastguard Worker 
1512*61046927SAndroid Build Coastguard Worker struct d3dkmt_shareobjects {
1513*61046927SAndroid Build Coastguard Worker 	__u32			object_count;
1514*61046927SAndroid Build Coastguard Worker 	__u32			reserved;
1515*61046927SAndroid Build Coastguard Worker #ifdef __KERNEL__
1516*61046927SAndroid Build Coastguard Worker 	const struct d3dkmthandle *objects;
1517*61046927SAndroid Build Coastguard Worker 	void			*object_attr;	/* security attributes */
1518*61046927SAndroid Build Coastguard Worker #else
1519*61046927SAndroid Build Coastguard Worker 	__u64			objects;
1520*61046927SAndroid Build Coastguard Worker 	__u64			object_attr;
1521*61046927SAndroid Build Coastguard Worker #endif
1522*61046927SAndroid Build Coastguard Worker 	__u32			desired_access;
1523*61046927SAndroid Build Coastguard Worker 	__u32			reserved1;
1524*61046927SAndroid Build Coastguard Worker #ifdef __KERNEL__
1525*61046927SAndroid Build Coastguard Worker 	__u64			*shared_handle;	/* output file descriptors */
1526*61046927SAndroid Build Coastguard Worker #else
1527*61046927SAndroid Build Coastguard Worker 	__u64			shared_handle;
1528*61046927SAndroid Build Coastguard Worker #endif
1529*61046927SAndroid Build Coastguard Worker };
1530*61046927SAndroid Build Coastguard Worker 
1531*61046927SAndroid Build Coastguard Worker union d3dkmt_enumadapters_filter {
1532*61046927SAndroid Build Coastguard Worker 	struct {
1533*61046927SAndroid Build Coastguard Worker 		__u64	include_compute_only:1;
1534*61046927SAndroid Build Coastguard Worker 		__u64	include_display_only:1;
1535*61046927SAndroid Build Coastguard Worker 		__u64	reserved:62;
1536*61046927SAndroid Build Coastguard Worker 	};
1537*61046927SAndroid Build Coastguard Worker 	__u64		value;
1538*61046927SAndroid Build Coastguard Worker };
1539*61046927SAndroid Build Coastguard Worker 
1540*61046927SAndroid Build Coastguard Worker struct d3dkmt_enumadapters3 {
1541*61046927SAndroid Build Coastguard Worker 	union d3dkmt_enumadapters_filter	filter;
1542*61046927SAndroid Build Coastguard Worker 	__u32					adapter_count;
1543*61046927SAndroid Build Coastguard Worker 	__u32					reserved;
1544*61046927SAndroid Build Coastguard Worker #ifdef __KERNEL__
1545*61046927SAndroid Build Coastguard Worker 	struct d3dkmt_adapterinfo		*adapters;
1546*61046927SAndroid Build Coastguard Worker #else
1547*61046927SAndroid Build Coastguard Worker 	__u64					adapters;
1548*61046927SAndroid Build Coastguard Worker #endif
1549*61046927SAndroid Build Coastguard Worker };
1550*61046927SAndroid Build Coastguard Worker 
1551*61046927SAndroid Build Coastguard Worker enum d3dkmt_querystatistics_type {
1552*61046927SAndroid Build Coastguard Worker 	_D3DKMT_QUERYSTATISTICS_ADAPTER                = 0,
1553*61046927SAndroid Build Coastguard Worker 	_D3DKMT_QUERYSTATISTICS_PROCESS                = 1,
1554*61046927SAndroid Build Coastguard Worker 	_D3DKMT_QUERYSTATISTICS_PROCESS_ADAPTER        = 2,
1555*61046927SAndroid Build Coastguard Worker 	_D3DKMT_QUERYSTATISTICS_SEGMENT                = 3,
1556*61046927SAndroid Build Coastguard Worker 	_D3DKMT_QUERYSTATISTICS_PROCESS_SEGMENT        = 4,
1557*61046927SAndroid Build Coastguard Worker 	_D3DKMT_QUERYSTATISTICS_NODE                   = 5,
1558*61046927SAndroid Build Coastguard Worker 	_D3DKMT_QUERYSTATISTICS_PROCESS_NODE           = 6,
1559*61046927SAndroid Build Coastguard Worker 	_D3DKMT_QUERYSTATISTICS_VIDPNSOURCE            = 7,
1560*61046927SAndroid Build Coastguard Worker 	_D3DKMT_QUERYSTATISTICS_PROCESS_VIDPNSOURCE    = 8,
1561*61046927SAndroid Build Coastguard Worker 	_D3DKMT_QUERYSTATISTICS_PROCESS_SEGMENT_GROUP  = 9,
1562*61046927SAndroid Build Coastguard Worker 	_D3DKMT_QUERYSTATISTICS_PHYSICAL_ADAPTER       = 10,
1563*61046927SAndroid Build Coastguard Worker };
1564*61046927SAndroid Build Coastguard Worker 
1565*61046927SAndroid Build Coastguard Worker struct d3dkmt_querystatistics_result {
1566*61046927SAndroid Build Coastguard Worker 	char size[0x308];
1567*61046927SAndroid Build Coastguard Worker };
1568*61046927SAndroid Build Coastguard Worker 
1569*61046927SAndroid Build Coastguard Worker struct d3dkmt_querystatistics {
1570*61046927SAndroid Build Coastguard Worker 	union {
1571*61046927SAndroid Build Coastguard Worker 		struct {
1572*61046927SAndroid Build Coastguard Worker 			enum d3dkmt_querystatistics_type	type;
1573*61046927SAndroid Build Coastguard Worker 			struct winluid				adapter_luid;
1574*61046927SAndroid Build Coastguard Worker 			__u64					process;
1575*61046927SAndroid Build Coastguard Worker 			struct d3dkmt_querystatistics_result	result;
1576*61046927SAndroid Build Coastguard Worker 		};
1577*61046927SAndroid Build Coastguard Worker 		char size[0x328];
1578*61046927SAndroid Build Coastguard Worker 	};
1579*61046927SAndroid Build Coastguard Worker };
1580*61046927SAndroid Build Coastguard Worker 
1581*61046927SAndroid Build Coastguard Worker struct d3dkmt_shareobjectwithhost {
1582*61046927SAndroid Build Coastguard Worker 	struct d3dkmthandle	device_handle;
1583*61046927SAndroid Build Coastguard Worker 	struct d3dkmthandle	object_handle;
1584*61046927SAndroid Build Coastguard Worker 	__u64			reserved;
1585*61046927SAndroid Build Coastguard Worker 	__u64			object_vail_nt_handle;
1586*61046927SAndroid Build Coastguard Worker };
1587*61046927SAndroid Build Coastguard Worker 
1588*61046927SAndroid Build Coastguard Worker struct d3dkmt_createsyncfile {
1589*61046927SAndroid Build Coastguard Worker 	struct d3dkmthandle	device;
1590*61046927SAndroid Build Coastguard Worker 	struct d3dkmthandle	monitored_fence;
1591*61046927SAndroid Build Coastguard Worker 	__u64			fence_value;
1592*61046927SAndroid Build Coastguard Worker 	__u64			sync_file_handle;	/* out */
1593*61046927SAndroid Build Coastguard Worker };
1594*61046927SAndroid Build Coastguard Worker 
1595*61046927SAndroid Build Coastguard Worker struct d3dkmt_waitsyncfile {
1596*61046927SAndroid Build Coastguard Worker 	__u64			sync_file_handle;
1597*61046927SAndroid Build Coastguard Worker 	struct d3dkmthandle	context;
1598*61046927SAndroid Build Coastguard Worker 	__u32			reserved;
1599*61046927SAndroid Build Coastguard Worker };
1600*61046927SAndroid Build Coastguard Worker 
1601*61046927SAndroid Build Coastguard Worker struct d3dkmt_opensyncobjectfromsyncfile {
1602*61046927SAndroid Build Coastguard Worker 	__u64			sync_file_handle;
1603*61046927SAndroid Build Coastguard Worker 	struct d3dkmthandle	device;
1604*61046927SAndroid Build Coastguard Worker 	struct d3dkmthandle	syncobj;	/* out */
1605*61046927SAndroid Build Coastguard Worker 	__u64			fence_value;	/* out */
1606*61046927SAndroid Build Coastguard Worker #ifdef __KERNEL__
1607*61046927SAndroid Build Coastguard Worker 	void			*fence_value_cpu_va;	/* out */
1608*61046927SAndroid Build Coastguard Worker #else
1609*61046927SAndroid Build Coastguard Worker 	__u64			fence_value_cpu_va;	/* out */
1610*61046927SAndroid Build Coastguard Worker #endif
1611*61046927SAndroid Build Coastguard Worker 	__u64			fence_value_gpu_va;	/* out */
1612*61046927SAndroid Build Coastguard Worker };
1613*61046927SAndroid Build Coastguard Worker 
1614*61046927SAndroid Build Coastguard Worker struct d3dkmt_enumprocesses {
1615*61046927SAndroid Build Coastguard Worker 	struct winluid 		adapter_luid;
1616*61046927SAndroid Build Coastguard Worker #ifdef __KERNEL__
1617*61046927SAndroid Build Coastguard Worker 	__u32			*buffer;
1618*61046927SAndroid Build Coastguard Worker #else
1619*61046927SAndroid Build Coastguard Worker 	__u64			buffer;
1620*61046927SAndroid Build Coastguard Worker #endif
1621*61046927SAndroid Build Coastguard Worker 	__u64			buffer_count;
1622*61046927SAndroid Build Coastguard Worker };
1623*61046927SAndroid Build Coastguard Worker 
1624*61046927SAndroid Build Coastguard Worker enum dxgk_feature_id {
1625*61046927SAndroid Build Coastguard Worker 	_DXGK_FEATURE_HWSCH				= 0,
1626*61046927SAndroid Build Coastguard Worker 	_DXGK_FEATURE_PAGE_BASED_MEMORY_MANAGER		= 32,
1627*61046927SAndroid Build Coastguard Worker 	_DXGK_FEATURE_KERNEL_MODE_TESTING		= 33,
1628*61046927SAndroid Build Coastguard Worker 	_DXGK_FEATURE_MAX
1629*61046927SAndroid Build Coastguard Worker };
1630*61046927SAndroid Build Coastguard Worker 
1631*61046927SAndroid Build Coastguard Worker struct dxgk_isfeatureenabled_result {
1632*61046927SAndroid Build Coastguard Worker 	__u16	version;
1633*61046927SAndroid Build Coastguard Worker 	union {
1634*61046927SAndroid Build Coastguard Worker 		struct {
1635*61046927SAndroid Build Coastguard Worker 			__u16 enabled			:  1;
1636*61046927SAndroid Build Coastguard Worker 			__u16 known_feature		:  1;
1637*61046927SAndroid Build Coastguard Worker 			__u16 supported_by_driver	:  1;
1638*61046927SAndroid Build Coastguard Worker 			__u16 supported_on_config	:  1;
1639*61046927SAndroid Build Coastguard Worker 			__u16 reserved			: 12;
1640*61046927SAndroid Build Coastguard Worker 		};
1641*61046927SAndroid Build Coastguard Worker 		__u16 value;
1642*61046927SAndroid Build Coastguard Worker 	};
1643*61046927SAndroid Build Coastguard Worker };
1644*61046927SAndroid Build Coastguard Worker 
1645*61046927SAndroid Build Coastguard Worker struct d3dkmt_isfeatureenabled {
1646*61046927SAndroid Build Coastguard Worker 	struct d3dkmthandle			adapter;
1647*61046927SAndroid Build Coastguard Worker 	enum dxgk_feature_id			feature_id;
1648*61046927SAndroid Build Coastguard Worker 	struct dxgk_isfeatureenabled_result	result;
1649*61046927SAndroid Build Coastguard Worker };
1650*61046927SAndroid Build Coastguard Worker 
1651*61046927SAndroid Build Coastguard Worker struct d3dkmt_invalidatecache {
1652*61046927SAndroid Build Coastguard Worker 	struct d3dkmthandle	device;
1653*61046927SAndroid Build Coastguard Worker 	struct d3dkmthandle	allocation;
1654*61046927SAndroid Build Coastguard Worker 	__u64			offset;
1655*61046927SAndroid Build Coastguard Worker 	__u64			length;
1656*61046927SAndroid Build Coastguard Worker };
1657*61046927SAndroid Build Coastguard Worker 
1658*61046927SAndroid Build Coastguard Worker /*
1659*61046927SAndroid Build Coastguard Worker  * Dxgkrnl Graphics Port Driver ioctl definitions
1660*61046927SAndroid Build Coastguard Worker  *
1661*61046927SAndroid Build Coastguard Worker  */
1662*61046927SAndroid Build Coastguard Worker 
1663*61046927SAndroid Build Coastguard Worker #define LX_DXOPENADAPTERFROMLUID	\
1664*61046927SAndroid Build Coastguard Worker 	_IOWR(0x47, 0x01, struct d3dkmt_openadapterfromluid)
1665*61046927SAndroid Build Coastguard Worker #define LX_DXCREATEDEVICE		\
1666*61046927SAndroid Build Coastguard Worker 	_IOWR(0x47, 0x02, struct d3dkmt_createdevice)
1667*61046927SAndroid Build Coastguard Worker #define LX_DXCREATECONTEXTVIRTUAL	\
1668*61046927SAndroid Build Coastguard Worker 	_IOWR(0x47, 0x04, struct d3dkmt_createcontextvirtual)
1669*61046927SAndroid Build Coastguard Worker #define LX_DXDESTROYCONTEXT		\
1670*61046927SAndroid Build Coastguard Worker 	_IOWR(0x47, 0x05, struct d3dkmt_destroycontext)
1671*61046927SAndroid Build Coastguard Worker #define LX_DXCREATEALLOCATION		\
1672*61046927SAndroid Build Coastguard Worker 	_IOWR(0x47, 0x06, struct d3dkmt_createallocation)
1673*61046927SAndroid Build Coastguard Worker #define LX_DXCREATEPAGINGQUEUE		\
1674*61046927SAndroid Build Coastguard Worker 	_IOWR(0x47, 0x07, struct d3dkmt_createpagingqueue)
1675*61046927SAndroid Build Coastguard Worker #define LX_DXRESERVEGPUVIRTUALADDRESS	\
1676*61046927SAndroid Build Coastguard Worker 	_IOWR(0x47, 0x08, struct d3dddi_reservegpuvirtualaddress)
1677*61046927SAndroid Build Coastguard Worker #define LX_DXQUERYADAPTERINFO		\
1678*61046927SAndroid Build Coastguard Worker 	_IOWR(0x47, 0x09, struct d3dkmt_queryadapterinfo)
1679*61046927SAndroid Build Coastguard Worker #define LX_DXQUERYVIDEOMEMORYINFO	\
1680*61046927SAndroid Build Coastguard Worker 	_IOWR(0x47, 0x0a, struct d3dkmt_queryvideomemoryinfo)
1681*61046927SAndroid Build Coastguard Worker #define LX_DXMAKERESIDENT		\
1682*61046927SAndroid Build Coastguard Worker 	_IOWR(0x47, 0x0b, struct d3dddi_makeresident)
1683*61046927SAndroid Build Coastguard Worker #define LX_DXMAPGPUVIRTUALADDRESS	\
1684*61046927SAndroid Build Coastguard Worker 	_IOWR(0x47, 0x0c, struct d3dddi_mapgpuvirtualaddress)
1685*61046927SAndroid Build Coastguard Worker #define LX_DXESCAPE			\
1686*61046927SAndroid Build Coastguard Worker 	_IOWR(0x47, 0x0d, struct d3dkmt_escape)
1687*61046927SAndroid Build Coastguard Worker #define LX_DXGETDEVICESTATE		\
1688*61046927SAndroid Build Coastguard Worker 	_IOWR(0x47, 0x0e, struct d3dkmt_getdevicestate)
1689*61046927SAndroid Build Coastguard Worker #define LX_DXSUBMITCOMMAND		\
1690*61046927SAndroid Build Coastguard Worker 	_IOWR(0x47, 0x0f, struct d3dkmt_submitcommand)
1691*61046927SAndroid Build Coastguard Worker #define LX_DXCREATESYNCHRONIZATIONOBJECT \
1692*61046927SAndroid Build Coastguard Worker 	_IOWR(0x47, 0x10, struct d3dkmt_createsynchronizationobject2)
1693*61046927SAndroid Build Coastguard Worker #define LX_DXSIGNALSYNCHRONIZATIONOBJECT \
1694*61046927SAndroid Build Coastguard Worker 	_IOWR(0x47, 0x11, struct d3dkmt_signalsynchronizationobject2)
1695*61046927SAndroid Build Coastguard Worker #define LX_DXWAITFORSYNCHRONIZATIONOBJECT \
1696*61046927SAndroid Build Coastguard Worker 	_IOWR(0x47, 0x12, struct d3dkmt_waitforsynchronizationobject2)
1697*61046927SAndroid Build Coastguard Worker #define LX_DXDESTROYALLOCATION2		\
1698*61046927SAndroid Build Coastguard Worker 	_IOWR(0x47, 0x13, struct d3dkmt_destroyallocation2)
1699*61046927SAndroid Build Coastguard Worker #define LX_DXENUMADAPTERS2		\
1700*61046927SAndroid Build Coastguard Worker 	_IOWR(0x47, 0x14, struct d3dkmt_enumadapters2)
1701*61046927SAndroid Build Coastguard Worker #define LX_DXCLOSEADAPTER		\
1702*61046927SAndroid Build Coastguard Worker 	_IOWR(0x47, 0x15, struct d3dkmt_closeadapter)
1703*61046927SAndroid Build Coastguard Worker #define LX_DXCHANGEVIDEOMEMORYRESERVATION \
1704*61046927SAndroid Build Coastguard Worker 	_IOWR(0x47, 0x16, struct d3dkmt_changevideomemoryreservation)
1705*61046927SAndroid Build Coastguard Worker #define LX_DXCREATEHWQUEUE		\
1706*61046927SAndroid Build Coastguard Worker 	_IOWR(0x47, 0x18, struct d3dkmt_createhwqueue)
1707*61046927SAndroid Build Coastguard Worker #define LX_DXDESTROYHWQUEUE		\
1708*61046927SAndroid Build Coastguard Worker 	_IOWR(0x47, 0x1b, struct d3dkmt_destroyhwqueue)
1709*61046927SAndroid Build Coastguard Worker #define LX_DXDESTROYPAGINGQUEUE		\
1710*61046927SAndroid Build Coastguard Worker 	_IOWR(0x47, 0x1c, struct d3dddi_destroypagingqueue)
1711*61046927SAndroid Build Coastguard Worker #define LX_DXDESTROYDEVICE		\
1712*61046927SAndroid Build Coastguard Worker 	_IOWR(0x47, 0x19, struct d3dkmt_destroydevice)
1713*61046927SAndroid Build Coastguard Worker #define LX_DXDESTROYSYNCHRONIZATIONOBJECT \
1714*61046927SAndroid Build Coastguard Worker 	_IOWR(0x47, 0x1d, struct d3dkmt_destroysynchronizationobject)
1715*61046927SAndroid Build Coastguard Worker #define LX_DXEVICT			\
1716*61046927SAndroid Build Coastguard Worker 	_IOWR(0x47, 0x1e, struct d3dkmt_evict)
1717*61046927SAndroid Build Coastguard Worker #define LX_DXFLUSHHEAPTRANSITIONS	\
1718*61046927SAndroid Build Coastguard Worker 	_IOWR(0x47, 0x1f, struct d3dkmt_flushheaptransitions)
1719*61046927SAndroid Build Coastguard Worker #define LX_DXFREEGPUVIRTUALADDRESS	\
1720*61046927SAndroid Build Coastguard Worker 	_IOWR(0x47, 0x20, struct d3dkmt_freegpuvirtualaddress)
1721*61046927SAndroid Build Coastguard Worker #define LX_DXGETCONTEXTINPROCESSSCHEDULINGPRIORITY \
1722*61046927SAndroid Build Coastguard Worker 	_IOWR(0x47, 0x21, struct d3dkmt_getcontextinprocessschedulingpriority)
1723*61046927SAndroid Build Coastguard Worker #define LX_DXGETCONTEXTSCHEDULINGPRIORITY \
1724*61046927SAndroid Build Coastguard Worker 	_IOWR(0x47, 0x22, struct d3dkmt_getcontextschedulingpriority)
1725*61046927SAndroid Build Coastguard Worker #define LX_DXINVALIDATECACHE \
1726*61046927SAndroid Build Coastguard Worker 	_IOWR(0x47, 0x24, struct d3dkmt_invalidatecache)
1727*61046927SAndroid Build Coastguard Worker #define LX_DXLOCK2			\
1728*61046927SAndroid Build Coastguard Worker 	_IOWR(0x47, 0x25, struct d3dkmt_lock2)
1729*61046927SAndroid Build Coastguard Worker #define LX_DXMARKDEVICEASERROR		\
1730*61046927SAndroid Build Coastguard Worker 	_IOWR(0x47, 0x26, struct d3dkmt_markdeviceaserror)
1731*61046927SAndroid Build Coastguard Worker #define LX_DXOFFERALLOCATIONS		\
1732*61046927SAndroid Build Coastguard Worker 	_IOWR(0x47, 0x27, struct d3dkmt_offerallocations)
1733*61046927SAndroid Build Coastguard Worker #define LX_DXQUERYALLOCATIONRESIDENCY	\
1734*61046927SAndroid Build Coastguard Worker 	_IOWR(0x47, 0x2a, struct d3dkmt_queryallocationresidency)
1735*61046927SAndroid Build Coastguard Worker #define LX_DXRECLAIMALLOCATIONS2	\
1736*61046927SAndroid Build Coastguard Worker 	_IOWR(0x47, 0x2c, struct d3dkmt_reclaimallocations2)
1737*61046927SAndroid Build Coastguard Worker #define LX_DXSETALLOCATIONPRIORITY	\
1738*61046927SAndroid Build Coastguard Worker 	_IOWR(0x47, 0x2e, struct d3dkmt_setallocationpriority)
1739*61046927SAndroid Build Coastguard Worker #define LX_DXSETCONTEXTINPROCESSSCHEDULINGPRIORITY \
1740*61046927SAndroid Build Coastguard Worker 	_IOWR(0x47, 0x2f, struct d3dkmt_setcontextinprocessschedulingpriority)
1741*61046927SAndroid Build Coastguard Worker #define LX_DXSETCONTEXTSCHEDULINGPRIORITY \
1742*61046927SAndroid Build Coastguard Worker 	_IOWR(0x47, 0x30, struct d3dkmt_setcontextschedulingpriority)
1743*61046927SAndroid Build Coastguard Worker #define LX_DXSIGNALSYNCHRONIZATIONOBJECTFROMCPU \
1744*61046927SAndroid Build Coastguard Worker 	_IOWR(0x47, 0x31, struct d3dkmt_signalsynchronizationobjectfromcpu)
1745*61046927SAndroid Build Coastguard Worker #define LX_DXSIGNALSYNCHRONIZATIONOBJECTFROMGPU \
1746*61046927SAndroid Build Coastguard Worker 	_IOWR(0x47, 0x32, struct d3dkmt_signalsynchronizationobjectfromgpu)
1747*61046927SAndroid Build Coastguard Worker #define LX_DXSIGNALSYNCHRONIZATIONOBJECTFROMGPU2 \
1748*61046927SAndroid Build Coastguard Worker 	_IOWR(0x47, 0x33, struct d3dkmt_signalsynchronizationobjectfromgpu2)
1749*61046927SAndroid Build Coastguard Worker #define LX_DXSUBMITCOMMANDTOHWQUEUE	\
1750*61046927SAndroid Build Coastguard Worker 	_IOWR(0x47, 0x34, struct d3dkmt_submitcommandtohwqueue)
1751*61046927SAndroid Build Coastguard Worker #define LX_DXSUBMITSIGNALSYNCOBJECTSTOHWQUEUE \
1752*61046927SAndroid Build Coastguard Worker 	_IOWR(0x47, 0x35, struct d3dkmt_submitsignalsyncobjectstohwqueue)
1753*61046927SAndroid Build Coastguard Worker #define LX_DXSUBMITWAITFORSYNCOBJECTSTOHWQUEUE \
1754*61046927SAndroid Build Coastguard Worker 	_IOWR(0x47, 0x36, struct d3dkmt_submitwaitforsyncobjectstohwqueue)
1755*61046927SAndroid Build Coastguard Worker #define LX_DXUNLOCK2			\
1756*61046927SAndroid Build Coastguard Worker 	_IOWR(0x47, 0x37, struct d3dkmt_unlock2)
1757*61046927SAndroid Build Coastguard Worker #define LX_DXUPDATEALLOCPROPERTY	\
1758*61046927SAndroid Build Coastguard Worker 	_IOWR(0x47, 0x38, struct d3dddi_updateallocproperty)
1759*61046927SAndroid Build Coastguard Worker #define LX_DXUPDATEGPUVIRTUALADDRESS	\
1760*61046927SAndroid Build Coastguard Worker 	_IOWR(0x47, 0x39, struct d3dkmt_updategpuvirtualaddress)
1761*61046927SAndroid Build Coastguard Worker #define LX_DXWAITFORSYNCHRONIZATIONOBJECTFROMCPU \
1762*61046927SAndroid Build Coastguard Worker 	_IOWR(0x47, 0x3a, struct d3dkmt_waitforsynchronizationobjectfromcpu)
1763*61046927SAndroid Build Coastguard Worker #define LX_DXWAITFORSYNCHRONIZATIONOBJECTFROMGPU \
1764*61046927SAndroid Build Coastguard Worker 	_IOWR(0x47, 0x3b, struct d3dkmt_waitforsynchronizationobjectfromgpu)
1765*61046927SAndroid Build Coastguard Worker #define LX_DXGETALLOCATIONPRIORITY	\
1766*61046927SAndroid Build Coastguard Worker 	_IOWR(0x47, 0x3c, struct d3dkmt_getallocationpriority)
1767*61046927SAndroid Build Coastguard Worker #define LX_DXQUERYCLOCKCALIBRATION	\
1768*61046927SAndroid Build Coastguard Worker 	_IOWR(0x47, 0x3d, struct d3dkmt_queryclockcalibration)
1769*61046927SAndroid Build Coastguard Worker #define LX_DXENUMADAPTERS3		\
1770*61046927SAndroid Build Coastguard Worker 	_IOWR(0x47, 0x3e, struct d3dkmt_enumadapters3)
1771*61046927SAndroid Build Coastguard Worker #define LX_DXSHAREOBJECTS		\
1772*61046927SAndroid Build Coastguard Worker 	_IOWR(0x47, 0x3f, struct d3dkmt_shareobjects)
1773*61046927SAndroid Build Coastguard Worker #define LX_DXOPENSYNCOBJECTFROMNTHANDLE2 \
1774*61046927SAndroid Build Coastguard Worker 	_IOWR(0x47, 0x40, struct d3dkmt_opensyncobjectfromnthandle2)
1775*61046927SAndroid Build Coastguard Worker #define LX_DXQUERYRESOURCEINFOFROMNTHANDLE \
1776*61046927SAndroid Build Coastguard Worker 	_IOWR(0x47, 0x41, struct d3dkmt_queryresourceinfofromnthandle)
1777*61046927SAndroid Build Coastguard Worker #define LX_DXOPENRESOURCEFROMNTHANDLE	\
1778*61046927SAndroid Build Coastguard Worker 	_IOWR(0x47, 0x42, struct d3dkmt_openresourcefromnthandle)
1779*61046927SAndroid Build Coastguard Worker #define LX_DXQUERYSTATISTICS	\
1780*61046927SAndroid Build Coastguard Worker 	_IOWR(0x47, 0x43, struct d3dkmt_querystatistics)
1781*61046927SAndroid Build Coastguard Worker #define LX_DXSHAREOBJECTWITHHOST	\
1782*61046927SAndroid Build Coastguard Worker 	_IOWR(0x47, 0x44, struct d3dkmt_shareobjectwithhost)
1783*61046927SAndroid Build Coastguard Worker #define LX_DXCREATESYNCFILE	\
1784*61046927SAndroid Build Coastguard Worker 	_IOWR(0x47, 0x45, struct d3dkmt_createsyncfile)
1785*61046927SAndroid Build Coastguard Worker #define LX_DXWAITSYNCFILE	\
1786*61046927SAndroid Build Coastguard Worker 	_IOWR(0x47, 0x46, struct d3dkmt_waitsyncfile)
1787*61046927SAndroid Build Coastguard Worker #define LX_DXOPENSYNCOBJECTFROMSYNCFILE	\
1788*61046927SAndroid Build Coastguard Worker 	_IOWR(0x47, 0x47, struct d3dkmt_opensyncobjectfromsyncfile)
1789*61046927SAndroid Build Coastguard Worker #define LX_DXENUMPROCESSES	\
1790*61046927SAndroid Build Coastguard Worker 	_IOWR(0x47, 0x48, struct d3dkmt_enumprocesses)
1791*61046927SAndroid Build Coastguard Worker #define LX_ISFEATUREENABLED	\
1792*61046927SAndroid Build Coastguard Worker 	_IOWR(0x47, 0x49, struct d3dkmt_isfeatureenabled)
1793*61046927SAndroid Build Coastguard Worker 
1794*61046927SAndroid Build Coastguard Worker #endif /* _D3DKMTHK_H */
1795