1/****************************************************************************
2 ****************************************************************************
3 ***
4 ***   This header was automatically generated from a Linux kernel header
5 ***   of the same name, to make information necessary for userspace to
6 ***   call into the kernel available to libc.  It contains only constants,
7 ***   structures, and macros generated from the original header, and thus,
8 ***   contains no copyrightable information.
9 ***
10 ***   To edit the content of this header, modify the corresponding
11 ***   source file (e.g. under external/kernel-headers/original/) then
12 ***   run bionic/libc/kernel/tools/update_all.py
13 ***
14 ***   Any manual change here will be lost the next time this script will
15 ***   be run. You've been warned!
16 ***
17 ****************************************************************************
18 ****************************************************************************/
19#ifndef _UAPI_MSM_KGSL_H
20#define _UAPI_MSM_KGSL_H
21#include <linux/types.h>
22#include <linux/ioctl.h>
23/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
24#define KGSL_VERSION_MAJOR 3
25#define KGSL_VERSION_MINOR 14
26#define KGSL_CONTEXT_SAVE_GMEM 0x00000001
27#define KGSL_CONTEXT_NO_GMEM_ALLOC 0x00000002
28/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
29#define KGSL_CONTEXT_SUBMIT_IB_LIST 0x00000004
30#define KGSL_CONTEXT_CTX_SWITCH 0x00000008
31#define KGSL_CONTEXT_PREAMBLE 0x00000010
32#define KGSL_CONTEXT_TRASH_STATE 0x00000020
33/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
34#define KGSL_CONTEXT_PER_CONTEXT_TS 0x00000040
35#define KGSL_CONTEXT_USER_GENERATED_TS 0x00000080
36#define KGSL_CONTEXT_END_OF_FRAME 0x00000100
37#define KGSL_CONTEXT_NO_FAULT_TOLERANCE 0x00000200
38/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
39#define KGSL_CONTEXT_SYNC 0x00000400
40#define KGSL_CONTEXT_PWR_CONSTRAINT 0x00000800
41#define KGSL_CONTEXT_PRIORITY_MASK 0x0000F000
42#define KGSL_CONTEXT_PRIORITY_SHIFT 12
43/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
44#define KGSL_CONTEXT_PRIORITY_UNDEF 0
45#define KGSL_CONTEXT_IFH_NOP 0x00010000
46#define KGSL_CONTEXT_SECURE 0x00020000
47#define KGSL_CONTEXT_PREEMPT_STYLE_MASK 0x0E000000
48/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
49#define KGSL_CONTEXT_PREEMPT_STYLE_SHIFT 25
50#define KGSL_CONTEXT_PREEMPT_STYLE_DEFAULT 0x0
51#define KGSL_CONTEXT_PREEMPT_STYLE_RINGBUFFER 0x1
52#define KGSL_CONTEXT_PREEMPT_STYLE_FINEGRAIN 0x2
53/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
54#define KGSL_CONTEXT_TYPE_MASK 0x01F00000
55#define KGSL_CONTEXT_TYPE_SHIFT 20
56#define KGSL_CONTEXT_TYPE_ANY 0
57#define KGSL_CONTEXT_TYPE_GL 1
58/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
59#define KGSL_CONTEXT_TYPE_CL 2
60#define KGSL_CONTEXT_TYPE_C2D 3
61#define KGSL_CONTEXT_TYPE_RS 4
62#define KGSL_CONTEXT_TYPE_UNKNOWN 0x1E
63/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
64#define KGSL_CONTEXT_INVALID 0xffffffff
65#define KGSL_CMDBATCH_MEMLIST 0x00000001
66#define KGSL_CMDBATCH_MARKER 0x00000002
67#define KGSL_CMDBATCH_SUBMIT_IB_LIST KGSL_CONTEXT_SUBMIT_IB_LIST
68/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
69#define KGSL_CMDBATCH_CTX_SWITCH KGSL_CONTEXT_CTX_SWITCH
70#define KGSL_CMDBATCH_PROFILING 0x00000010
71#define KGSL_CMDBATCH_PROFILING_KTIME 0x00000020
72#define KGSL_CMDBATCH_END_OF_FRAME KGSL_CONTEXT_END_OF_FRAME
73/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
74#define KGSL_CMDBATCH_SYNC KGSL_CONTEXT_SYNC
75#define KGSL_CMDBATCH_PWR_CONSTRAINT KGSL_CONTEXT_PWR_CONSTRAINT
76#define KGSL_CMDLIST_IB 0x00000001U
77#define KGSL_CMDLIST_CTXTSWITCH_PREAMBLE 0x00000002U
78/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
79#define KGSL_CMDLIST_IB_PREAMBLE 0x00000004U
80#define KGSL_OBJLIST_MEMOBJ 0x00000008U
81#define KGSL_OBJLIST_PROFILE 0x00000010U
82#define KGSL_CMD_SYNCPOINT_TYPE_TIMESTAMP 0
83/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
84#define KGSL_CMD_SYNCPOINT_TYPE_FENCE 1
85#define KGSL_MEMFLAGS_SECURE 0x00000008ULL
86#define KGSL_MEMFLAGS_GPUREADONLY 0x01000000U
87#define KGSL_MEMFLAGS_GPUWRITEONLY 0x02000000U
88/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
89#define KGSL_MEMFLAGS_FORCE_32BIT 0x100000000ULL
90#define KGSL_CACHEMODE_MASK 0x0C000000U
91#define KGSL_CACHEMODE_SHIFT 26
92#define KGSL_CACHEMODE_WRITECOMBINE 0
93/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
94#define KGSL_CACHEMODE_UNCACHED 1
95#define KGSL_CACHEMODE_WRITETHROUGH 2
96#define KGSL_CACHEMODE_WRITEBACK 3
97#define KGSL_MEMFLAGS_USE_CPU_MAP 0x10000000ULL
98/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
99#define KGSL_MEMTYPE_MASK 0x0000FF00
100#define KGSL_MEMTYPE_SHIFT 8
101#define KGSL_MEMTYPE_OBJECTANY 0
102#define KGSL_MEMTYPE_FRAMEBUFFER 1
103/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
104#define KGSL_MEMTYPE_RENDERBUFFER 2
105#define KGSL_MEMTYPE_ARRAYBUFFER 3
106#define KGSL_MEMTYPE_ELEMENTARRAYBUFFER 4
107#define KGSL_MEMTYPE_VERTEXARRAYBUFFER 5
108/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
109#define KGSL_MEMTYPE_TEXTURE 6
110#define KGSL_MEMTYPE_SURFACE 7
111#define KGSL_MEMTYPE_EGL_SURFACE 8
112#define KGSL_MEMTYPE_GL 9
113/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
114#define KGSL_MEMTYPE_CL 10
115#define KGSL_MEMTYPE_CL_BUFFER_MAP 11
116#define KGSL_MEMTYPE_CL_BUFFER_NOMAP 12
117#define KGSL_MEMTYPE_CL_IMAGE_MAP 13
118/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
119#define KGSL_MEMTYPE_CL_IMAGE_NOMAP 14
120#define KGSL_MEMTYPE_CL_KERNEL_STACK 15
121#define KGSL_MEMTYPE_COMMAND 16
122#define KGSL_MEMTYPE_2D 17
123/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
124#define KGSL_MEMTYPE_EGL_IMAGE 18
125#define KGSL_MEMTYPE_EGL_SHADOW 19
126#define KGSL_MEMTYPE_MULTISAMPLE 20
127#define KGSL_MEMTYPE_KERNEL 255
128/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
129#define KGSL_MEMALIGN_MASK 0x00FF0000
130#define KGSL_MEMALIGN_SHIFT 16
131enum kgsl_user_mem_type {
132  KGSL_USER_MEM_TYPE_PMEM = 0x00000000,
133/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
134  KGSL_USER_MEM_TYPE_ASHMEM = 0x00000001,
135  KGSL_USER_MEM_TYPE_ADDR = 0x00000002,
136  KGSL_USER_MEM_TYPE_ION = 0x00000003,
137  KGSL_USER_MEM_TYPE_DMABUF = 0x00000003,
138/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
139  KGSL_USER_MEM_TYPE_MAX = 0x00000007,
140};
141#define KGSL_MEMFLAGS_USERMEM_MASK 0x000000e0
142#define KGSL_MEMFLAGS_USERMEM_SHIFT 5
143/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
144#define KGSL_USERMEM_FLAG(x) (((x) + 1) << KGSL_MEMFLAGS_USERMEM_SHIFT)
145#define KGSL_MEMFLAGS_NOT_USERMEM 0
146#define KGSL_MEMFLAGS_USERMEM_PMEM KGSL_USERMEM_FLAG(KGSL_USER_MEM_TYPE_PMEM)
147#define KGSL_MEMFLAGS_USERMEM_ASHMEM KGSL_USERMEM_FLAG(KGSL_USER_MEM_TYPE_ASHMEM)
148/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
149#define KGSL_MEMFLAGS_USERMEM_ADDR KGSL_USERMEM_FLAG(KGSL_USER_MEM_TYPE_ADDR)
150#define KGSL_MEMFLAGS_USERMEM_ION KGSL_USERMEM_FLAG(KGSL_USER_MEM_TYPE_ION)
151#define KGSL_FLAGS_NORMALMODE 0x00000000
152#define KGSL_FLAGS_SAFEMODE 0x00000001
153/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
154#define KGSL_FLAGS_INITIALIZED0 0x00000002
155#define KGSL_FLAGS_INITIALIZED 0x00000004
156#define KGSL_FLAGS_STARTED 0x00000008
157#define KGSL_FLAGS_ACTIVE 0x00000010
158/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
159#define KGSL_FLAGS_RESERVED0 0x00000020
160#define KGSL_FLAGS_RESERVED1 0x00000040
161#define KGSL_FLAGS_RESERVED2 0x00000080
162#define KGSL_FLAGS_SOFT_RESET 0x00000100
163/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
164#define KGSL_FLAGS_PER_CONTEXT_TIMESTAMPS 0x00000200
165#define KGSL_SYNCOBJ_SERVER_TIMEOUT 2000
166enum kgsl_ctx_reset_stat {
167  KGSL_CTX_STAT_NO_ERROR = 0x00000000,
168/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
169  KGSL_CTX_STAT_GUILTY_CONTEXT_RESET_EXT = 0x00000001,
170  KGSL_CTX_STAT_INNOCENT_CONTEXT_RESET_EXT = 0x00000002,
171  KGSL_CTX_STAT_UNKNOWN_CONTEXT_RESET_EXT = 0x00000003
172};
173/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
174#define KGSL_CONVERT_TO_MBPS(val) (val * 1000 * 1000U)
175enum kgsl_deviceid {
176  KGSL_DEVICE_3D0 = 0x00000000,
177  KGSL_DEVICE_MAX
178/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
179};
180struct kgsl_devinfo {
181  unsigned int device_id;
182  unsigned int chip_id;
183/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
184  unsigned int mmu_enabled;
185  unsigned long gmem_gpubaseaddr;
186  unsigned int gpu_id;
187  size_t gmem_sizebytes;
188/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
189};
190struct kgsl_devmemstore {
191  volatile unsigned int soptimestamp;
192  unsigned int sbz;
193/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
194  volatile unsigned int eoptimestamp;
195  unsigned int sbz2;
196  volatile unsigned int preempted;
197  unsigned int sbz3;
198/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
199  volatile unsigned int ref_wait_ts;
200  unsigned int sbz4;
201  unsigned int current_context;
202  unsigned int sbz5;
203/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
204};
205#define KGSL_MEMSTORE_OFFSET(ctxt_id,field) ((ctxt_id) * sizeof(struct kgsl_devmemstore) + offsetof(struct kgsl_devmemstore, field))
206enum kgsl_timestamp_type {
207  KGSL_TIMESTAMP_CONSUMED = 0x00000001,
208/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
209  KGSL_TIMESTAMP_RETIRED = 0x00000002,
210  KGSL_TIMESTAMP_QUEUED = 0x00000003,
211};
212#define KGSL_PROP_DEVICE_INFO 0x1
213/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
214#define KGSL_PROP_DEVICE_SHADOW 0x2
215#define KGSL_PROP_DEVICE_POWER 0x3
216#define KGSL_PROP_SHMEM 0x4
217#define KGSL_PROP_SHMEM_APERTURES 0x5
218/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
219#define KGSL_PROP_MMU_ENABLE 0x6
220#define KGSL_PROP_INTERRUPT_WAITS 0x7
221#define KGSL_PROP_VERSION 0x8
222#define KGSL_PROP_GPU_RESET_STAT 0x9
223/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
224#define KGSL_PROP_PWRCTRL 0xE
225#define KGSL_PROP_PWR_CONSTRAINT 0x12
226#define KGSL_PROP_UCHE_GMEM_VADDR 0x13
227#define KGSL_PROP_SP_GENERIC_MEM 0x14
228/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
229#define KGSL_PROP_UCODE_VERSION 0x15
230#define KGSL_PROP_GPMU_VERSION 0x16
231#define KGSL_PROP_HIGHEST_BANK_BIT 0x17
232struct kgsl_shadowprop {
233/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
234  unsigned long gpuaddr;
235  size_t size;
236  unsigned int flags;
237};
238/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
239struct kgsl_version {
240  unsigned int drv_major;
241  unsigned int drv_minor;
242  unsigned int dev_major;
243/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
244  unsigned int dev_minor;
245};
246struct kgsl_sp_generic_mem {
247  uint64_t local;
248/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
249  uint64_t pvt;
250};
251struct kgsl_ucode_version {
252  unsigned int pfp;
253/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
254  unsigned int pm4;
255};
256struct kgsl_gpmu_version {
257  unsigned int major;
258/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
259  unsigned int minor;
260  unsigned int features;
261};
262#define KGSL_PERFCOUNTER_GROUP_CP 0x0
263/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
264#define KGSL_PERFCOUNTER_GROUP_RBBM 0x1
265#define KGSL_PERFCOUNTER_GROUP_PC 0x2
266#define KGSL_PERFCOUNTER_GROUP_VFD 0x3
267#define KGSL_PERFCOUNTER_GROUP_HLSQ 0x4
268/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
269#define KGSL_PERFCOUNTER_GROUP_VPC 0x5
270#define KGSL_PERFCOUNTER_GROUP_TSE 0x6
271#define KGSL_PERFCOUNTER_GROUP_RAS 0x7
272#define KGSL_PERFCOUNTER_GROUP_UCHE 0x8
273/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
274#define KGSL_PERFCOUNTER_GROUP_TP 0x9
275#define KGSL_PERFCOUNTER_GROUP_SP 0xA
276#define KGSL_PERFCOUNTER_GROUP_RB 0xB
277#define KGSL_PERFCOUNTER_GROUP_PWR 0xC
278/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
279#define KGSL_PERFCOUNTER_GROUP_VBIF 0xD
280#define KGSL_PERFCOUNTER_GROUP_VBIF_PWR 0xE
281#define KGSL_PERFCOUNTER_GROUP_MH 0xF
282#define KGSL_PERFCOUNTER_GROUP_PA_SU 0x10
283/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
284#define KGSL_PERFCOUNTER_GROUP_SQ 0x11
285#define KGSL_PERFCOUNTER_GROUP_SX 0x12
286#define KGSL_PERFCOUNTER_GROUP_TCF 0x13
287#define KGSL_PERFCOUNTER_GROUP_TCM 0x14
288/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
289#define KGSL_PERFCOUNTER_GROUP_TCR 0x15
290#define KGSL_PERFCOUNTER_GROUP_L2 0x16
291#define KGSL_PERFCOUNTER_GROUP_VSC 0x17
292#define KGSL_PERFCOUNTER_GROUP_CCU 0x18
293/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
294#define KGSL_PERFCOUNTER_GROUP_LRZ 0x19
295#define KGSL_PERFCOUNTER_GROUP_CMP 0x1A
296#define KGSL_PERFCOUNTER_GROUP_ALWAYSON 0x1B
297#define KGSL_PERFCOUNTER_GROUP_SP_PWR 0x1C
298/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
299#define KGSL_PERFCOUNTER_GROUP_TP_PWR 0x1D
300#define KGSL_PERFCOUNTER_GROUP_RB_PWR 0x1E
301#define KGSL_PERFCOUNTER_GROUP_CCU_PWR 0x1F
302#define KGSL_PERFCOUNTER_GROUP_UCHE_PWR 0x20
303/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
304#define KGSL_PERFCOUNTER_GROUP_CP_PWR 0x21
305#define KGSL_PERFCOUNTER_GROUP_GPMU_PWR 0x22
306#define KGSL_PERFCOUNTER_GROUP_ALWAYSON_PWR 0x23
307#define KGSL_PERFCOUNTER_GROUP_MAX 0x24
308/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
309#define KGSL_PERFCOUNTER_NOT_USED 0xFFFFFFFF
310#define KGSL_PERFCOUNTER_BROKEN 0xFFFFFFFE
311struct kgsl_ibdesc {
312  unsigned long gpuaddr;
313/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
314  unsigned long __pad;
315  size_t sizedwords;
316  unsigned int ctrl;
317};
318/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
319struct kgsl_cmdbatch_profiling_buffer {
320  uint64_t wall_clock_s;
321  uint64_t wall_clock_ns;
322  uint64_t gpu_ticks_queued;
323/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
324  uint64_t gpu_ticks_submitted;
325  uint64_t gpu_ticks_retired;
326};
327#define KGSL_IOC_TYPE 0x09
328/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
329struct kgsl_device_getproperty {
330  unsigned int type;
331  void __user * value;
332  size_t sizebytes;
333/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
334};
335#define IOCTL_KGSL_DEVICE_GETPROPERTY _IOWR(KGSL_IOC_TYPE, 0x2, struct kgsl_device_getproperty)
336struct kgsl_device_waittimestamp {
337  unsigned int timestamp;
338/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
339  unsigned int timeout;
340};
341#define IOCTL_KGSL_DEVICE_WAITTIMESTAMP _IOW(KGSL_IOC_TYPE, 0x6, struct kgsl_device_waittimestamp)
342struct kgsl_device_waittimestamp_ctxtid {
343/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
344  unsigned int context_id;
345  unsigned int timestamp;
346  unsigned int timeout;
347};
348/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
349#define IOCTL_KGSL_DEVICE_WAITTIMESTAMP_CTXTID _IOW(KGSL_IOC_TYPE, 0x7, struct kgsl_device_waittimestamp_ctxtid)
350struct kgsl_ringbuffer_issueibcmds {
351  unsigned int drawctxt_id;
352  unsigned long ibdesc_addr;
353/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
354  unsigned int numibs;
355  unsigned int timestamp;
356  unsigned int flags;
357};
358/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
359#define IOCTL_KGSL_RINGBUFFER_ISSUEIBCMDS _IOWR(KGSL_IOC_TYPE, 0x10, struct kgsl_ringbuffer_issueibcmds)
360struct kgsl_cmdstream_readtimestamp {
361  unsigned int type;
362  unsigned int timestamp;
363/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
364};
365#define IOCTL_KGSL_CMDSTREAM_READTIMESTAMP_OLD _IOR(KGSL_IOC_TYPE, 0x11, struct kgsl_cmdstream_readtimestamp)
366#define IOCTL_KGSL_CMDSTREAM_READTIMESTAMP _IOWR(KGSL_IOC_TYPE, 0x11, struct kgsl_cmdstream_readtimestamp)
367struct kgsl_cmdstream_freememontimestamp {
368/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
369  unsigned long gpuaddr;
370  unsigned int type;
371  unsigned int timestamp;
372};
373/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
374#define IOCTL_KGSL_CMDSTREAM_FREEMEMONTIMESTAMP _IOW(KGSL_IOC_TYPE, 0x12, struct kgsl_cmdstream_freememontimestamp)
375#define IOCTL_KGSL_CMDSTREAM_FREEMEMONTIMESTAMP_OLD _IOR(KGSL_IOC_TYPE, 0x12, struct kgsl_cmdstream_freememontimestamp)
376struct kgsl_drawctxt_create {
377  unsigned int flags;
378/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
379  unsigned int drawctxt_id;
380};
381#define IOCTL_KGSL_DRAWCTXT_CREATE _IOWR(KGSL_IOC_TYPE, 0x13, struct kgsl_drawctxt_create)
382struct kgsl_drawctxt_destroy {
383/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
384  unsigned int drawctxt_id;
385};
386#define IOCTL_KGSL_DRAWCTXT_DESTROY _IOW(KGSL_IOC_TYPE, 0x14, struct kgsl_drawctxt_destroy)
387struct kgsl_map_user_mem {
388/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
389  int fd;
390  unsigned long gpuaddr;
391  size_t len;
392  size_t offset;
393/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
394  unsigned long hostptr;
395  enum kgsl_user_mem_type memtype;
396  unsigned int flags;
397};
398/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
399#define IOCTL_KGSL_MAP_USER_MEM _IOWR(KGSL_IOC_TYPE, 0x15, struct kgsl_map_user_mem)
400struct kgsl_cmdstream_readtimestamp_ctxtid {
401  unsigned int context_id;
402  unsigned int type;
403/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
404  unsigned int timestamp;
405};
406#define IOCTL_KGSL_CMDSTREAM_READTIMESTAMP_CTXTID _IOWR(KGSL_IOC_TYPE, 0x16, struct kgsl_cmdstream_readtimestamp_ctxtid)
407struct kgsl_cmdstream_freememontimestamp_ctxtid {
408/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
409  unsigned int context_id;
410  unsigned long gpuaddr;
411  unsigned int type;
412  unsigned int timestamp;
413/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
414};
415#define IOCTL_KGSL_CMDSTREAM_FREEMEMONTIMESTAMP_CTXTID _IOW(KGSL_IOC_TYPE, 0x17, struct kgsl_cmdstream_freememontimestamp_ctxtid)
416struct kgsl_sharedmem_from_pmem {
417  int pmem_fd;
418/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
419  unsigned long gpuaddr;
420  unsigned int len;
421  unsigned int offset;
422};
423/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
424#define IOCTL_KGSL_SHAREDMEM_FROM_PMEM _IOWR(KGSL_IOC_TYPE, 0x20, struct kgsl_sharedmem_from_pmem)
425struct kgsl_sharedmem_free {
426  unsigned long gpuaddr;
427};
428/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
429#define IOCTL_KGSL_SHAREDMEM_FREE _IOW(KGSL_IOC_TYPE, 0x21, struct kgsl_sharedmem_free)
430struct kgsl_cff_user_event {
431  unsigned char cff_opcode;
432  unsigned int op1;
433/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
434  unsigned int op2;
435  unsigned int op3;
436  unsigned int op4;
437  unsigned int op5;
438/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
439  unsigned int __pad[2];
440};
441#define IOCTL_KGSL_CFF_USER_EVENT _IOW(KGSL_IOC_TYPE, 0x31, struct kgsl_cff_user_event)
442struct kgsl_gmem_desc {
443/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
444  unsigned int x;
445  unsigned int y;
446  unsigned int width;
447  unsigned int height;
448/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
449  unsigned int pitch;
450};
451struct kgsl_buffer_desc {
452  void * hostptr;
453/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
454  unsigned long gpuaddr;
455  int size;
456  unsigned int format;
457  unsigned int pitch;
458/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
459  unsigned int enabled;
460};
461struct kgsl_bind_gmem_shadow {
462  unsigned int drawctxt_id;
463/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
464  struct kgsl_gmem_desc gmem_desc;
465  unsigned int shadow_x;
466  unsigned int shadow_y;
467  struct kgsl_buffer_desc shadow_buffer;
468/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
469  unsigned int buffer_id;
470};
471#define IOCTL_KGSL_DRAWCTXT_BIND_GMEM_SHADOW _IOW(KGSL_IOC_TYPE, 0x22, struct kgsl_bind_gmem_shadow)
472struct kgsl_sharedmem_from_vmalloc {
473/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
474  unsigned long gpuaddr;
475  unsigned int hostptr;
476  unsigned int flags;
477};
478/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
479#define IOCTL_KGSL_SHAREDMEM_FROM_VMALLOC _IOWR(KGSL_IOC_TYPE, 0x23, struct kgsl_sharedmem_from_vmalloc)
480#define IOCTL_KGSL_SHAREDMEM_FLUSH_CACHE _IOW(KGSL_IOC_TYPE, 0x24, struct kgsl_sharedmem_free)
481struct kgsl_drawctxt_set_bin_base_offset {
482  unsigned int drawctxt_id;
483/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
484  unsigned int offset;
485};
486#define IOCTL_KGSL_DRAWCTXT_SET_BIN_BASE_OFFSET _IOW(KGSL_IOC_TYPE, 0x25, struct kgsl_drawctxt_set_bin_base_offset)
487enum kgsl_cmdwindow_type {
488/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
489  KGSL_CMDWINDOW_MIN = 0x00000000,
490  KGSL_CMDWINDOW_2D = 0x00000000,
491  KGSL_CMDWINDOW_3D = 0x00000001,
492  KGSL_CMDWINDOW_MMU = 0x00000002,
493/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
494  KGSL_CMDWINDOW_ARBITER = 0x000000FF,
495  KGSL_CMDWINDOW_MAX = 0x000000FF,
496};
497struct kgsl_cmdwindow_write {
498/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
499  enum kgsl_cmdwindow_type target;
500  unsigned int addr;
501  unsigned int data;
502};
503/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
504#define IOCTL_KGSL_CMDWINDOW_WRITE _IOW(KGSL_IOC_TYPE, 0x2e, struct kgsl_cmdwindow_write)
505struct kgsl_gpumem_alloc {
506  unsigned long gpuaddr;
507  size_t size;
508/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
509  unsigned int flags;
510};
511#define IOCTL_KGSL_GPUMEM_ALLOC _IOWR(KGSL_IOC_TYPE, 0x2f, struct kgsl_gpumem_alloc)
512struct kgsl_cff_syncmem {
513/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
514  unsigned long gpuaddr;
515  size_t len;
516  unsigned int __pad[2];
517};
518/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
519#define IOCTL_KGSL_CFF_SYNCMEM _IOW(KGSL_IOC_TYPE, 0x30, struct kgsl_cff_syncmem)
520struct kgsl_timestamp_event {
521  int type;
522  unsigned int timestamp;
523/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
524  unsigned int context_id;
525  void __user * priv;
526  size_t len;
527};
528/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
529#define IOCTL_KGSL_TIMESTAMP_EVENT_OLD _IOW(KGSL_IOC_TYPE, 0x31, struct kgsl_timestamp_event)
530#define KGSL_TIMESTAMP_EVENT_GENLOCK 1
531struct kgsl_timestamp_event_genlock {
532  int handle;
533/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
534};
535#define KGSL_TIMESTAMP_EVENT_FENCE 2
536struct kgsl_timestamp_event_fence {
537  int fence_fd;
538/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
539};
540#define IOCTL_KGSL_SETPROPERTY _IOW(KGSL_IOC_TYPE, 0x32, struct kgsl_device_getproperty)
541#define IOCTL_KGSL_TIMESTAMP_EVENT _IOWR(KGSL_IOC_TYPE, 0x33, struct kgsl_timestamp_event)
542struct kgsl_gpumem_alloc_id {
543/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
544  unsigned int id;
545  unsigned int flags;
546  size_t size;
547  size_t mmapsize;
548/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
549  unsigned long gpuaddr;
550  unsigned long __pad[2];
551};
552#define IOCTL_KGSL_GPUMEM_ALLOC_ID _IOWR(KGSL_IOC_TYPE, 0x34, struct kgsl_gpumem_alloc_id)
553/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
554struct kgsl_gpumem_free_id {
555  unsigned int id;
556  unsigned int __pad;
557};
558/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
559#define IOCTL_KGSL_GPUMEM_FREE_ID _IOWR(KGSL_IOC_TYPE, 0x35, struct kgsl_gpumem_free_id)
560struct kgsl_gpumem_get_info {
561  unsigned long gpuaddr;
562  unsigned int id;
563/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
564  unsigned int flags;
565  size_t size;
566  size_t mmapsize;
567  unsigned long useraddr;
568/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
569  unsigned long __pad[4];
570};
571#define IOCTL_KGSL_GPUMEM_GET_INFO _IOWR(KGSL_IOC_TYPE, 0x36, struct kgsl_gpumem_get_info)
572struct kgsl_gpumem_sync_cache {
573/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
574  unsigned long gpuaddr;
575  unsigned int id;
576  unsigned int op;
577  size_t offset;
578/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
579  size_t length;
580};
581#define KGSL_GPUMEM_CACHE_CLEAN (1 << 0)
582#define KGSL_GPUMEM_CACHE_TO_GPU KGSL_GPUMEM_CACHE_CLEAN
583/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
584#define KGSL_GPUMEM_CACHE_INV (1 << 1)
585#define KGSL_GPUMEM_CACHE_FROM_GPU KGSL_GPUMEM_CACHE_INV
586#define KGSL_GPUMEM_CACHE_FLUSH (KGSL_GPUMEM_CACHE_CLEAN | KGSL_GPUMEM_CACHE_INV)
587#define KGSL_GPUMEM_CACHE_RANGE (1 << 31U)
588/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
589#define IOCTL_KGSL_GPUMEM_SYNC_CACHE _IOW(KGSL_IOC_TYPE, 0x37, struct kgsl_gpumem_sync_cache)
590struct kgsl_perfcounter_get {
591  unsigned int groupid;
592  unsigned int countable;
593/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
594  unsigned int offset;
595  unsigned int offset_hi;
596  unsigned int __pad;
597};
598/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
599#define IOCTL_KGSL_PERFCOUNTER_GET _IOWR(KGSL_IOC_TYPE, 0x38, struct kgsl_perfcounter_get)
600struct kgsl_perfcounter_put {
601  unsigned int groupid;
602  unsigned int countable;
603/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
604  unsigned int __pad[2];
605};
606#define IOCTL_KGSL_PERFCOUNTER_PUT _IOW(KGSL_IOC_TYPE, 0x39, struct kgsl_perfcounter_put)
607struct kgsl_perfcounter_query {
608/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
609  unsigned int groupid;
610  unsigned int __user * countables;
611  unsigned int count;
612  unsigned int max_counters;
613/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
614  unsigned int __pad[2];
615};
616#define IOCTL_KGSL_PERFCOUNTER_QUERY _IOWR(KGSL_IOC_TYPE, 0x3A, struct kgsl_perfcounter_query)
617struct kgsl_perfcounter_read_group {
618/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
619  unsigned int groupid;
620  unsigned int countable;
621  unsigned long long value;
622};
623/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
624struct kgsl_perfcounter_read {
625  struct kgsl_perfcounter_read_group __user * reads;
626  unsigned int count;
627  unsigned int __pad[2];
628/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
629};
630#define IOCTL_KGSL_PERFCOUNTER_READ _IOWR(KGSL_IOC_TYPE, 0x3B, struct kgsl_perfcounter_read)
631struct kgsl_gpumem_sync_cache_bulk {
632  unsigned int __user * id_list;
633/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
634  unsigned int count;
635  unsigned int op;
636  unsigned int __pad[2];
637};
638/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
639#define IOCTL_KGSL_GPUMEM_SYNC_CACHE_BULK _IOWR(KGSL_IOC_TYPE, 0x3C, struct kgsl_gpumem_sync_cache_bulk)
640struct kgsl_cmd_syncpoint_timestamp {
641  unsigned int context_id;
642  unsigned int timestamp;
643/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
644};
645struct kgsl_cmd_syncpoint_fence {
646  int fd;
647};
648/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
649struct kgsl_cmd_syncpoint {
650  int type;
651  void __user * priv;
652  size_t size;
653/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
654};
655#define KGSL_IBDESC_MEMLIST 0x1
656#define KGSL_IBDESC_PROFILING_BUFFER 0x2
657struct kgsl_submit_commands {
658/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
659  unsigned int context_id;
660  unsigned int flags;
661  struct kgsl_ibdesc __user * cmdlist;
662  unsigned int numcmds;
663/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
664  struct kgsl_cmd_syncpoint __user * synclist;
665  unsigned int numsyncs;
666  unsigned int timestamp;
667  unsigned int __pad[4];
668/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
669};
670#define IOCTL_KGSL_SUBMIT_COMMANDS _IOWR(KGSL_IOC_TYPE, 0x3D, struct kgsl_submit_commands)
671struct kgsl_device_constraint {
672  unsigned int type;
673/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
674  unsigned int context_id;
675  void __user * data;
676  size_t size;
677};
678/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
679#define KGSL_CONSTRAINT_NONE 0
680#define KGSL_CONSTRAINT_PWRLEVEL 1
681#define KGSL_CONSTRAINT_PWR_MIN 0
682#define KGSL_CONSTRAINT_PWR_MAX 1
683/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
684struct kgsl_device_constraint_pwrlevel {
685  unsigned int level;
686};
687struct kgsl_syncsource_create {
688/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
689  unsigned int id;
690  unsigned int __pad[3];
691};
692#define IOCTL_KGSL_SYNCSOURCE_CREATE _IOWR(KGSL_IOC_TYPE, 0x40, struct kgsl_syncsource_create)
693/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
694struct kgsl_syncsource_destroy {
695  unsigned int id;
696  unsigned int __pad[3];
697};
698/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
699#define IOCTL_KGSL_SYNCSOURCE_DESTROY _IOWR(KGSL_IOC_TYPE, 0x41, struct kgsl_syncsource_destroy)
700struct kgsl_syncsource_create_fence {
701  unsigned int id;
702  int fence_fd;
703/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
704  unsigned int __pad[4];
705};
706#define IOCTL_KGSL_SYNCSOURCE_CREATE_FENCE _IOWR(KGSL_IOC_TYPE, 0x42, struct kgsl_syncsource_create_fence)
707struct kgsl_syncsource_signal_fence {
708/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
709  unsigned int id;
710  int fence_fd;
711  unsigned int __pad[4];
712};
713/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
714#define IOCTL_KGSL_SYNCSOURCE_SIGNAL_FENCE _IOWR(KGSL_IOC_TYPE, 0x43, struct kgsl_syncsource_signal_fence)
715struct kgsl_cff_sync_gpuobj {
716  uint64_t offset;
717  uint64_t length;
718/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
719  unsigned int id;
720};
721#define IOCTL_KGSL_CFF_SYNC_GPUOBJ _IOW(KGSL_IOC_TYPE, 0x44, struct kgsl_cff_sync_gpuobj)
722struct kgsl_gpuobj_alloc {
723/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
724  uint64_t size;
725  uint64_t flags;
726  uint64_t va_len;
727  uint64_t mmapsize;
728/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
729  unsigned int id;
730  unsigned int metadata_len;
731  uint64_t metadata;
732};
733/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
734#define KGSL_GPUOBJ_ALLOC_METADATA_MAX 64
735#define IOCTL_KGSL_GPUOBJ_ALLOC _IOWR(KGSL_IOC_TYPE, 0x45, struct kgsl_gpuobj_alloc)
736struct kgsl_gpuobj_free {
737  uint64_t flags;
738/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
739  uint64_t __user priv;
740  unsigned int id;
741  unsigned int type;
742  unsigned int len;
743/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
744};
745#define KGSL_GPUOBJ_FREE_ON_EVENT 1
746#define KGSL_GPU_EVENT_TIMESTAMP 1
747#define KGSL_GPU_EVENT_FENCE 2
748/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
749struct kgsl_gpu_event_timestamp {
750  unsigned int context_id;
751  unsigned int timestamp;
752};
753/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
754struct kgsl_gpu_event_fence {
755  int fd;
756};
757#define IOCTL_KGSL_GPUOBJ_FREE _IOW(KGSL_IOC_TYPE, 0x46, struct kgsl_gpuobj_free)
758/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
759struct kgsl_gpuobj_info {
760  uint64_t gpuaddr;
761  uint64_t flags;
762  uint64_t size;
763/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
764  uint64_t va_len;
765  uint64_t va_addr;
766  unsigned int id;
767};
768/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
769#define IOCTL_KGSL_GPUOBJ_INFO _IOWR(KGSL_IOC_TYPE, 0x47, struct kgsl_gpuobj_info)
770struct kgsl_gpuobj_import {
771  uint64_t __user priv;
772  uint64_t priv_len;
773/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
774  uint64_t flags;
775  unsigned int type;
776  unsigned int id;
777};
778/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
779struct kgsl_gpuobj_import_dma_buf {
780  int fd;
781};
782struct kgsl_gpuobj_import_useraddr {
783/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
784  uint64_t virtaddr;
785};
786#define IOCTL_KGSL_GPUOBJ_IMPORT _IOWR(KGSL_IOC_TYPE, 0x48, struct kgsl_gpuobj_import)
787struct kgsl_gpuobj_sync_obj {
788/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
789  uint64_t offset;
790  uint64_t length;
791  unsigned int id;
792  unsigned int op;
793/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
794};
795struct kgsl_gpuobj_sync {
796  uint64_t __user objs;
797  unsigned int obj_len;
798/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
799  unsigned int count;
800};
801#define IOCTL_KGSL_GPUOBJ_SYNC _IOW(KGSL_IOC_TYPE, 0x49, struct kgsl_gpuobj_sync)
802struct kgsl_command_object {
803/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
804  uint64_t offset;
805  uint64_t gpuaddr;
806  uint64_t size;
807  unsigned int flags;
808/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
809  unsigned int id;
810};
811struct kgsl_command_syncpoint {
812  uint64_t __user priv;
813/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
814  uint64_t size;
815  unsigned int type;
816};
817struct kgsl_gpu_command {
818/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
819  uint64_t flags;
820  uint64_t __user cmdlist;
821  unsigned int cmdsize;
822  unsigned int numcmds;
823/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
824  uint64_t __user objlist;
825  unsigned int objsize;
826  unsigned int numobjs;
827  uint64_t __user synclist;
828/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
829  unsigned int syncsize;
830  unsigned int numsyncs;
831  unsigned int context_id;
832  unsigned int timestamp;
833/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
834};
835#define IOCTL_KGSL_GPU_COMMAND _IOWR(KGSL_IOC_TYPE, 0x4A, struct kgsl_gpu_command)
836struct kgsl_preemption_counters_query {
837  uint64_t __user counters;
838/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
839  unsigned int size_user;
840  unsigned int size_priority_level;
841  unsigned int max_priority_level;
842};
843/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
844#define IOCTL_KGSL_PREEMPTIONCOUNTER_QUERY _IOWR(KGSL_IOC_TYPE, 0x4B, struct kgsl_preemption_counters_query)
845#define KGSL_GPUOBJ_SET_INFO_METADATA (1 << 0)
846#define KGSL_GPUOBJ_SET_INFO_TYPE (1 << 1)
847struct kgsl_gpuobj_set_info {
848/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
849  uint64_t flags;
850  uint64_t metadata;
851  unsigned int id;
852  unsigned int metadata_len;
853/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
854  unsigned int type;
855};
856#define IOCTL_KGSL_GPUOBJ_SET_INFO _IOW(KGSL_IOC_TYPE, 0x4C, struct kgsl_gpuobj_set_info)
857#endif
858/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
859
860