msm_kgsl.h revision a8dacd55667c4b495110f04338067794a6d50ee2
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 _MSM_KGSL_H
20#define _MSM_KGSL_H
21#define KGSL_VERSION_MAJOR 3
22#define KGSL_VERSION_MINOR 14
23/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
24#define KGSL_CONTEXT_SAVE_GMEM 0x00000001
25#define KGSL_CONTEXT_NO_GMEM_ALLOC 0x00000002
26#define KGSL_CONTEXT_SUBMIT_IB_LIST 0x00000004
27#define KGSL_CONTEXT_CTX_SWITCH 0x00000008
28/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
29#define KGSL_CONTEXT_PREAMBLE 0x00000010
30#define KGSL_CONTEXT_TRASH_STATE 0x00000020
31#define KGSL_CONTEXT_PER_CONTEXT_TS 0x00000040
32#define KGSL_CONTEXT_USER_GENERATED_TS 0x00000080
33/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
34#define KGSL_CONTEXT_NO_FAULT_TOLERANCE 0x00000200
35#define KGSL_CONTEXT_TYPE_MASK 0x01F00000
36#define KGSL_CONTEXT_TYPE_SHIFT 20
37#define KGSL_CONTEXT_TYPE_ANY 0
38/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
39#define KGSL_CONTEXT_TYPE_GL 1
40#define KGSL_CONTEXT_TYPE_CL 2
41#define KGSL_CONTEXT_TYPE_C2D 3
42#define KGSL_CONTEXT_TYPE_RS 4
43/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
44#define KGSL_CONTEXT_INVALID 0xffffffff
45#define KGSL_MEMFLAGS_GPUREADONLY 0x01000000
46#define KGSL_MEMFLAGS_USE_CPU_MAP 0x10000000
47#define KGSL_CACHEMODE_MASK 0x0C000000
48/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
49#define KGSL_CACHEMODE_SHIFT 26
50#define KGSL_CACHEMODE_WRITECOMBINE 0
51#define KGSL_CACHEMODE_UNCACHED 1
52#define KGSL_CACHEMODE_WRITETHROUGH 2
53/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
54#define KGSL_CACHEMODE_WRITEBACK 3
55#define KGSL_MEMTYPE_MASK 0x0000FF00
56#define KGSL_MEMTYPE_SHIFT 8
57#define KGSL_MEMTYPE_OBJECTANY 0
58/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
59#define KGSL_MEMTYPE_FRAMEBUFFER 1
60#define KGSL_MEMTYPE_RENDERBUFFER 2
61#define KGSL_MEMTYPE_ARRAYBUFFER 3
62#define KGSL_MEMTYPE_ELEMENTARRAYBUFFER 4
63/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
64#define KGSL_MEMTYPE_VERTEXARRAYBUFFER 5
65#define KGSL_MEMTYPE_TEXTURE 6
66#define KGSL_MEMTYPE_SURFACE 7
67#define KGSL_MEMTYPE_EGL_SURFACE 8
68/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
69#define KGSL_MEMTYPE_GL 9
70#define KGSL_MEMTYPE_CL 10
71#define KGSL_MEMTYPE_CL_BUFFER_MAP 11
72#define KGSL_MEMTYPE_CL_BUFFER_NOMAP 12
73/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
74#define KGSL_MEMTYPE_CL_IMAGE_MAP 13
75#define KGSL_MEMTYPE_CL_IMAGE_NOMAP 14
76#define KGSL_MEMTYPE_CL_KERNEL_STACK 15
77#define KGSL_MEMTYPE_COMMAND 16
78/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
79#define KGSL_MEMTYPE_2D 17
80#define KGSL_MEMTYPE_EGL_IMAGE 18
81#define KGSL_MEMTYPE_EGL_SHADOW 19
82#define KGSL_MEMTYPE_MULTISAMPLE 20
83/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
84#define KGSL_MEMTYPE_KERNEL 255
85#define KGSL_MEMALIGN_MASK 0x00FF0000
86#define KGSL_MEMALIGN_SHIFT 16
87#define KGSL_FLAGS_NORMALMODE 0x00000000
88/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
89#define KGSL_FLAGS_SAFEMODE 0x00000001
90#define KGSL_FLAGS_INITIALIZED0 0x00000002
91#define KGSL_FLAGS_INITIALIZED 0x00000004
92#define KGSL_FLAGS_STARTED 0x00000008
93/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
94#define KGSL_FLAGS_ACTIVE 0x00000010
95#define KGSL_FLAGS_RESERVED0 0x00000020
96#define KGSL_FLAGS_RESERVED1 0x00000040
97#define KGSL_FLAGS_RESERVED2 0x00000080
98/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
99#define KGSL_FLAGS_SOFT_RESET 0x00000100
100#define KGSL_FLAGS_PER_CONTEXT_TIMESTAMPS 0x00000200
101#define KGSL_CLK_SRC 0x00000001
102#define KGSL_CLK_CORE 0x00000002
103/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
104#define KGSL_CLK_IFACE 0x00000004
105#define KGSL_CLK_MEM 0x00000008
106#define KGSL_CLK_MEM_IFACE 0x00000010
107#define KGSL_CLK_AXI 0x00000020
108/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
109#define KGSL_SYNCOBJ_SERVER_TIMEOUT 2000
110enum kgsl_ctx_reset_stat {
111 KGSL_CTX_STAT_NO_ERROR = 0x00000000,
112 KGSL_CTX_STAT_GUILTY_CONTEXT_RESET_EXT = 0x00000001,
113/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
114 KGSL_CTX_STAT_INNOCENT_CONTEXT_RESET_EXT = 0x00000002,
115 KGSL_CTX_STAT_UNKNOWN_CONTEXT_RESET_EXT = 0x00000003
116};
117#define KGSL_CONVERT_TO_MBPS(val)   (val*1000*1000U)
118/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
119enum kgsl_deviceid {
120 KGSL_DEVICE_3D0 = 0x00000000,
121 KGSL_DEVICE_2D0 = 0x00000001,
122 KGSL_DEVICE_2D1 = 0x00000002,
123/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
124 KGSL_DEVICE_MAX = 0x00000003
125};
126enum kgsl_user_mem_type {
127 KGSL_USER_MEM_TYPE_PMEM = 0x00000000,
128/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
129 KGSL_USER_MEM_TYPE_ASHMEM = 0x00000001,
130 KGSL_USER_MEM_TYPE_ADDR = 0x00000002,
131 KGSL_USER_MEM_TYPE_ION = 0x00000003,
132 KGSL_USER_MEM_TYPE_MAX = 0x00000004,
133/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
134};
135struct kgsl_devinfo {
136 unsigned int device_id;
137 unsigned int chip_id;
138/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
139 unsigned int mmu_enabled;
140 unsigned int gmem_gpubaseaddr;
141 unsigned int gpu_id;
142 unsigned int gmem_sizebytes;
143/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
144};
145struct kgsl_devmemstore {
146 volatile unsigned int soptimestamp;
147 unsigned int sbz;
148/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
149 volatile unsigned int eoptimestamp;
150 unsigned int sbz2;
151 volatile unsigned int ts_cmp_enable;
152 unsigned int sbz3;
153/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
154 volatile unsigned int ref_wait_ts;
155 unsigned int sbz4;
156 unsigned int current_context;
157 unsigned int sbz5;
158/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
159};
160#define KGSL_MEMSTORE_OFFSET(ctxt_id, field)   ((ctxt_id)*sizeof(struct kgsl_devmemstore) +   offsetof(struct kgsl_devmemstore, field))
161enum kgsl_timestamp_type {
162 KGSL_TIMESTAMP_CONSUMED = 0x00000001,
163/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
164 KGSL_TIMESTAMP_RETIRED = 0x00000002,
165 KGSL_TIMESTAMP_QUEUED = 0x00000003,
166};
167enum kgsl_property_type {
168/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
169 KGSL_PROP_DEVICE_INFO = 0x00000001,
170 KGSL_PROP_DEVICE_SHADOW = 0x00000002,
171 KGSL_PROP_DEVICE_POWER = 0x00000003,
172 KGSL_PROP_SHMEM = 0x00000004,
173/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
174 KGSL_PROP_SHMEM_APERTURES = 0x00000005,
175 KGSL_PROP_MMU_ENABLE = 0x00000006,
176 KGSL_PROP_INTERRUPT_WAITS = 0x00000007,
177 KGSL_PROP_VERSION = 0x00000008,
178/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
179 KGSL_PROP_GPU_RESET_STAT = 0x00000009,
180 KGSL_PROP_PWRCTRL = 0x0000000E,
181};
182struct kgsl_shadowprop {
183/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
184 unsigned int gpuaddr;
185 unsigned int size;
186 unsigned int flags;
187};
188/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
189struct kgsl_version {
190 unsigned int drv_major;
191 unsigned int drv_minor;
192 unsigned int dev_major;
193/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
194 unsigned int dev_minor;
195};
196#define KGSL_PERFCOUNTER_GROUP_CP 0x0
197#define KGSL_PERFCOUNTER_GROUP_RBBM 0x1
198/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
199#define KGSL_PERFCOUNTER_GROUP_PC 0x2
200#define KGSL_PERFCOUNTER_GROUP_VFD 0x3
201#define KGSL_PERFCOUNTER_GROUP_HLSQ 0x4
202#define KGSL_PERFCOUNTER_GROUP_VPC 0x5
203/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
204#define KGSL_PERFCOUNTER_GROUP_TSE 0x6
205#define KGSL_PERFCOUNTER_GROUP_RAS 0x7
206#define KGSL_PERFCOUNTER_GROUP_UCHE 0x8
207#define KGSL_PERFCOUNTER_GROUP_TP 0x9
208/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
209#define KGSL_PERFCOUNTER_GROUP_SP 0xA
210#define KGSL_PERFCOUNTER_GROUP_RB 0xB
211#define KGSL_PERFCOUNTER_GROUP_PWR 0xC
212#define KGSL_PERFCOUNTER_GROUP_VBIF 0xD
213/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
214#define KGSL_PERFCOUNTER_GROUP_VBIF_PWR 0xE
215#define KGSL_PERFCOUNTER_NOT_USED 0xFFFFFFFF
216struct kgsl_ibdesc {
217 unsigned int gpuaddr;
218/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
219 void *hostptr;
220 unsigned int sizedwords;
221 unsigned int ctrl;
222};
223/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
224#define KGSL_IOC_TYPE 0x09
225struct kgsl_device_getproperty {
226 unsigned int type;
227 void *value;
228/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
229 unsigned int sizebytes;
230};
231#define IOCTL_KGSL_DEVICE_GETPROPERTY   _IOWR(KGSL_IOC_TYPE, 0x2, struct kgsl_device_getproperty)
232struct kgsl_device_waittimestamp {
233/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
234 unsigned int timestamp;
235 unsigned int timeout;
236};
237#define IOCTL_KGSL_DEVICE_WAITTIMESTAMP   _IOW(KGSL_IOC_TYPE, 0x6, struct kgsl_device_waittimestamp)
238/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
239struct kgsl_device_waittimestamp_ctxtid {
240 unsigned int context_id;
241 unsigned int timestamp;
242 unsigned int timeout;
243/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
244};
245#define IOCTL_KGSL_DEVICE_WAITTIMESTAMP_CTXTID   _IOW(KGSL_IOC_TYPE, 0x7, struct kgsl_device_waittimestamp_ctxtid)
246struct kgsl_ringbuffer_issueibcmds {
247 unsigned int drawctxt_id;
248/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
249 unsigned int ibdesc_addr;
250 unsigned int numibs;
251 unsigned int timestamp;
252 unsigned int flags;
253/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
254};
255#define IOCTL_KGSL_RINGBUFFER_ISSUEIBCMDS   _IOWR(KGSL_IOC_TYPE, 0x10, struct kgsl_ringbuffer_issueibcmds)
256struct kgsl_cmdstream_readtimestamp {
257 unsigned int type;
258/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
259 unsigned int timestamp;
260};
261#define IOCTL_KGSL_CMDSTREAM_READTIMESTAMP_OLD   _IOR(KGSL_IOC_TYPE, 0x11, struct kgsl_cmdstream_readtimestamp)
262#define IOCTL_KGSL_CMDSTREAM_READTIMESTAMP   _IOWR(KGSL_IOC_TYPE, 0x11, struct kgsl_cmdstream_readtimestamp)
263/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
264struct kgsl_cmdstream_freememontimestamp {
265 unsigned int gpuaddr;
266 unsigned int type;
267 unsigned int timestamp;
268/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
269};
270#define IOCTL_KGSL_CMDSTREAM_FREEMEMONTIMESTAMP   _IOW(KGSL_IOC_TYPE, 0x12, struct kgsl_cmdstream_freememontimestamp)
271#define IOCTL_KGSL_CMDSTREAM_FREEMEMONTIMESTAMP_OLD   _IOR(KGSL_IOC_TYPE, 0x12, struct kgsl_cmdstream_freememontimestamp)
272struct kgsl_drawctxt_create {
273/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
274 unsigned int flags;
275 unsigned int drawctxt_id;
276};
277#define IOCTL_KGSL_DRAWCTXT_CREATE   _IOWR(KGSL_IOC_TYPE, 0x13, struct kgsl_drawctxt_create)
278/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
279struct kgsl_drawctxt_destroy {
280 unsigned int drawctxt_id;
281};
282#define IOCTL_KGSL_DRAWCTXT_DESTROY   _IOW(KGSL_IOC_TYPE, 0x14, struct kgsl_drawctxt_destroy)
283/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
284struct kgsl_map_user_mem {
285 int fd;
286 unsigned int gpuaddr;
287 unsigned int len;
288/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
289 unsigned int offset;
290 unsigned int hostptr;
291 enum kgsl_user_mem_type memtype;
292 unsigned int flags;
293/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
294};
295#define IOCTL_KGSL_MAP_USER_MEM   _IOWR(KGSL_IOC_TYPE, 0x15, struct kgsl_map_user_mem)
296struct kgsl_cmdstream_readtimestamp_ctxtid {
297 unsigned int context_id;
298/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
299 unsigned int type;
300 unsigned int timestamp;
301};
302#define IOCTL_KGSL_CMDSTREAM_READTIMESTAMP_CTXTID   _IOWR(KGSL_IOC_TYPE, 0x16, struct kgsl_cmdstream_readtimestamp_ctxtid)
303/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
304struct kgsl_cmdstream_freememontimestamp_ctxtid {
305 unsigned int context_id;
306 unsigned int gpuaddr;
307 unsigned int type;
308/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
309 unsigned int timestamp;
310};
311#define IOCTL_KGSL_CMDSTREAM_FREEMEMONTIMESTAMP_CTXTID   _IOW(KGSL_IOC_TYPE, 0x17,   struct kgsl_cmdstream_freememontimestamp_ctxtid)
312struct kgsl_sharedmem_from_pmem {
313/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
314 int pmem_fd;
315 unsigned int gpuaddr;
316 unsigned int len;
317 unsigned int offset;
318/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
319};
320#define IOCTL_KGSL_SHAREDMEM_FROM_PMEM   _IOWR(KGSL_IOC_TYPE, 0x20, struct kgsl_sharedmem_from_pmem)
321struct kgsl_sharedmem_free {
322 unsigned int gpuaddr;
323/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
324};
325#define IOCTL_KGSL_SHAREDMEM_FREE   _IOW(KGSL_IOC_TYPE, 0x21, struct kgsl_sharedmem_free)
326struct kgsl_cff_user_event {
327 unsigned char cff_opcode;
328/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
329 unsigned int op1;
330 unsigned int op2;
331 unsigned int op3;
332 unsigned int op4;
333/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
334 unsigned int op5;
335 unsigned int __pad[2];
336};
337#define IOCTL_KGSL_CFF_USER_EVENT   _IOW(KGSL_IOC_TYPE, 0x31, struct kgsl_cff_user_event)
338/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
339struct kgsl_gmem_desc {
340 unsigned int x;
341 unsigned int y;
342 unsigned int width;
343/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
344 unsigned int height;
345 unsigned int pitch;
346};
347struct kgsl_buffer_desc {
348/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
349 void *hostptr;
350 unsigned int gpuaddr;
351 int size;
352 unsigned int format;
353/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
354 unsigned int pitch;
355 unsigned int enabled;
356};
357struct kgsl_bind_gmem_shadow {
358/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
359 unsigned int drawctxt_id;
360 struct kgsl_gmem_desc gmem_desc;
361 unsigned int shadow_x;
362 unsigned int shadow_y;
363/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
364 struct kgsl_buffer_desc shadow_buffer;
365 unsigned int buffer_id;
366};
367#define IOCTL_KGSL_DRAWCTXT_BIND_GMEM_SHADOW   _IOW(KGSL_IOC_TYPE, 0x22, struct kgsl_bind_gmem_shadow)
368/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
369struct kgsl_sharedmem_from_vmalloc {
370 unsigned int gpuaddr;
371 unsigned int hostptr;
372 unsigned int flags;
373/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
374};
375#define IOCTL_KGSL_SHAREDMEM_FROM_VMALLOC   _IOWR(KGSL_IOC_TYPE, 0x23, struct kgsl_sharedmem_from_vmalloc)
376#define IOCTL_KGSL_SHAREDMEM_FLUSH_CACHE   _IOW(KGSL_IOC_TYPE, 0x24, struct kgsl_sharedmem_free)
377struct kgsl_drawctxt_set_bin_base_offset {
378/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
379 unsigned int drawctxt_id;
380 unsigned int offset;
381};
382#define IOCTL_KGSL_DRAWCTXT_SET_BIN_BASE_OFFSET   _IOW(KGSL_IOC_TYPE, 0x25, struct kgsl_drawctxt_set_bin_base_offset)
383/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
384enum kgsl_cmdwindow_type {
385 KGSL_CMDWINDOW_MIN = 0x00000000,
386 KGSL_CMDWINDOW_2D = 0x00000000,
387 KGSL_CMDWINDOW_3D = 0x00000001,
388/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
389 KGSL_CMDWINDOW_MMU = 0x00000002,
390 KGSL_CMDWINDOW_ARBITER = 0x000000FF,
391 KGSL_CMDWINDOW_MAX = 0x000000FF,
392};
393/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
394struct kgsl_cmdwindow_write {
395 enum kgsl_cmdwindow_type target;
396 unsigned int addr;
397 unsigned int data;
398/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
399};
400#define IOCTL_KGSL_CMDWINDOW_WRITE   _IOW(KGSL_IOC_TYPE, 0x2e, struct kgsl_cmdwindow_write)
401struct kgsl_gpumem_alloc {
402 unsigned long gpuaddr;
403/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
404 size_t size;
405 unsigned int flags;
406};
407#define IOCTL_KGSL_GPUMEM_ALLOC   _IOWR(KGSL_IOC_TYPE, 0x2f, struct kgsl_gpumem_alloc)
408/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
409struct kgsl_cff_syncmem {
410 unsigned int gpuaddr;
411 unsigned int len;
412 unsigned int __pad[2];
413/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
414};
415#define IOCTL_KGSL_CFF_SYNCMEM   _IOW(KGSL_IOC_TYPE, 0x30, struct kgsl_cff_syncmem)
416struct kgsl_timestamp_event {
417 int type;
418/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
419 unsigned int timestamp;
420 unsigned int context_id;
421 void *priv;
422 size_t len;
423/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
424};
425#define IOCTL_KGSL_TIMESTAMP_EVENT_OLD   _IOW(KGSL_IOC_TYPE, 0x31, struct kgsl_timestamp_event)
426#define KGSL_TIMESTAMP_EVENT_GENLOCK 1
427struct kgsl_timestamp_event_genlock {
428/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
429 int handle;
430};
431#define KGSL_TIMESTAMP_EVENT_FENCE 2
432struct kgsl_timestamp_event_fence {
433/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
434 int fence_fd;
435};
436#define IOCTL_KGSL_SETPROPERTY   _IOW(KGSL_IOC_TYPE, 0x32, struct kgsl_device_getproperty)
437#define IOCTL_KGSL_TIMESTAMP_EVENT   _IOWR(KGSL_IOC_TYPE, 0x33, struct kgsl_timestamp_event)
438/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
439struct kgsl_gpumem_alloc_id {
440 unsigned int id;
441 unsigned int flags;
442 unsigned int size;
443/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
444 unsigned int mmapsize;
445 unsigned long gpuaddr;
446 unsigned int __pad[2];
447};
448/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
449#define IOCTL_KGSL_GPUMEM_ALLOC_ID   _IOWR(KGSL_IOC_TYPE, 0x34, struct kgsl_gpumem_alloc_id)
450struct kgsl_gpumem_free_id {
451 unsigned int id;
452 unsigned int __pad;
453/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
454};
455#define IOCTL_KGSL_GPUMEM_FREE_ID   _IOWR(KGSL_IOC_TYPE, 0x35, struct kgsl_gpumem_free_id)
456struct kgsl_gpumem_get_info {
457 unsigned long gpuaddr;
458/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
459 unsigned int id;
460 unsigned int flags;
461 unsigned int size;
462 unsigned int mmapsize;
463/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
464 unsigned long useraddr;
465 unsigned int __pad[4];
466};
467#define IOCTL_KGSL_GPUMEM_GET_INFO  _IOWR(KGSL_IOC_TYPE, 0x36, struct kgsl_gpumem_get_info)
468/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
469struct kgsl_gpumem_sync_cache {
470 unsigned int gpuaddr;
471 unsigned int id;
472 unsigned int op;
473/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
474 unsigned int __pad[2];
475};
476#define KGSL_GPUMEM_CACHE_CLEAN (1 << 0)
477#define KGSL_GPUMEM_CACHE_TO_GPU KGSL_GPUMEM_CACHE_CLEAN
478/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
479#define KGSL_GPUMEM_CACHE_INV (1 << 1)
480#define KGSL_GPUMEM_CACHE_FROM_GPU KGSL_GPUMEM_CACHE_INV
481#define KGSL_GPUMEM_CACHE_FLUSH   (KGSL_GPUMEM_CACHE_CLEAN | KGSL_GPUMEM_CACHE_INV)
482#define IOCTL_KGSL_GPUMEM_SYNC_CACHE   _IOW(KGSL_IOC_TYPE, 0x37, struct kgsl_gpumem_sync_cache)
483/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
484struct kgsl_perfcounter_get {
485 unsigned int groupid;
486 unsigned int countable;
487 unsigned int offset;
488/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
489 unsigned int __pad[2];
490};
491#define IOCTL_KGSL_PERFCOUNTER_GET   _IOWR(KGSL_IOC_TYPE, 0x38, struct kgsl_perfcounter_get)
492struct kgsl_perfcounter_put {
493/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
494 unsigned int groupid;
495 unsigned int countable;
496 unsigned int __pad[2];
497};
498/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
499#define IOCTL_KGSL_PERFCOUNTER_PUT   _IOW(KGSL_IOC_TYPE, 0x39, struct kgsl_perfcounter_put)
500struct kgsl_perfcounter_query {
501 unsigned int groupid;
502 unsigned int *countables;
503/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
504 unsigned int count;
505 unsigned int max_counters;
506 unsigned int __pad[2];
507};
508/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
509#define IOCTL_KGSL_PERFCOUNTER_QUERY   _IOWR(KGSL_IOC_TYPE, 0x3A, struct kgsl_perfcounter_query)
510struct kgsl_perfcounter_read_group {
511 unsigned int groupid;
512 unsigned int countable;
513/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
514 unsigned long long value;
515};
516struct kgsl_perfcounter_read {
517 struct kgsl_perfcounter_read_group *reads;
518/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
519 unsigned int count;
520 unsigned int __pad[2];
521};
522#define IOCTL_KGSL_PERFCOUNTER_READ   _IOWR(KGSL_IOC_TYPE, 0x3B, struct kgsl_perfcounter_read)
523/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
524struct kgsl_gpumem_sync_cache_bulk {
525 unsigned int *id_list;
526 unsigned int count;
527 unsigned int op;
528/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
529 unsigned int __pad[2];
530};
531#define IOCTL_KGSL_GPUMEM_SYNC_CACHE_BULK   _IOWR(KGSL_IOC_TYPE, 0x3C, struct kgsl_gpumem_sync_cache_bulk)
532#endif
533/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
534