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