tinygrad 0.9.1__py3-none-any.whl → 0.10.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (74) hide show
  1. tinygrad/__init__.py +11 -6
  2. tinygrad/codegen/kernel.py +308 -175
  3. tinygrad/codegen/linearize.py +95 -0
  4. tinygrad/codegen/lowerer.py +143 -0
  5. tinygrad/codegen/transcendental.py +257 -0
  6. tinygrad/codegen/uopgraph.py +506 -0
  7. tinygrad/device.py +72 -171
  8. tinygrad/dtype.py +122 -47
  9. tinygrad/engine/jit.py +184 -87
  10. tinygrad/{lazy.py → engine/lazy.py} +74 -66
  11. tinygrad/engine/memory.py +51 -0
  12. tinygrad/engine/realize.py +86 -61
  13. tinygrad/engine/schedule.py +366 -317
  14. tinygrad/engine/search.py +58 -47
  15. tinygrad/function.py +59 -58
  16. tinygrad/helpers.py +120 -102
  17. tinygrad/multi.py +82 -78
  18. tinygrad/nn/__init__.py +116 -67
  19. tinygrad/nn/datasets.py +12 -5
  20. tinygrad/nn/optim.py +1 -1
  21. tinygrad/nn/state.py +91 -6
  22. tinygrad/ops.py +1126 -143
  23. tinygrad/renderer/__init__.py +47 -23
  24. tinygrad/renderer/cstyle.py +338 -265
  25. tinygrad/renderer/llvmir.py +125 -143
  26. tinygrad/renderer/ptx.py +225 -0
  27. tinygrad/runtime/autogen/adreno.py +17904 -0
  28. tinygrad/runtime/autogen/amd_gpu.py +46974 -11993
  29. tinygrad/runtime/autogen/cuda.py +6 -162
  30. tinygrad/runtime/autogen/io_uring.py +97 -63
  31. tinygrad/runtime/autogen/kfd.py +60 -47
  32. tinygrad/runtime/autogen/kgsl.py +1386 -0
  33. tinygrad/runtime/autogen/libc.py +5462 -0
  34. tinygrad/runtime/autogen/nv_gpu.py +1976 -1957
  35. tinygrad/runtime/autogen/nvrtc.py +579 -0
  36. tinygrad/runtime/autogen/opencl.py +11 -11
  37. tinygrad/runtime/autogen/qcom_dsp.py +1739 -0
  38. tinygrad/runtime/graph/clang.py +3 -3
  39. tinygrad/runtime/graph/cuda.py +11 -15
  40. tinygrad/runtime/graph/hcq.py +120 -107
  41. tinygrad/runtime/graph/metal.py +71 -43
  42. tinygrad/runtime/ops_amd.py +244 -323
  43. tinygrad/runtime/ops_clang.py +12 -5
  44. tinygrad/runtime/ops_cloud.py +220 -0
  45. tinygrad/runtime/ops_cuda.py +42 -99
  46. tinygrad/runtime/ops_disk.py +25 -26
  47. tinygrad/runtime/ops_dsp.py +181 -0
  48. tinygrad/runtime/ops_gpu.py +29 -16
  49. tinygrad/runtime/ops_hip.py +68 -0
  50. tinygrad/runtime/ops_llvm.py +15 -10
  51. tinygrad/runtime/ops_metal.py +147 -64
  52. tinygrad/runtime/ops_nv.py +356 -397
  53. tinygrad/runtime/ops_python.py +78 -79
  54. tinygrad/runtime/ops_qcom.py +405 -0
  55. tinygrad/runtime/support/__init__.py +0 -0
  56. tinygrad/runtime/support/compiler_cuda.py +77 -0
  57. tinygrad/runtime/{driver/hip_comgr.py → support/compiler_hip.py} +13 -1
  58. tinygrad/runtime/support/elf.py +38 -0
  59. tinygrad/runtime/support/hcq.py +539 -0
  60. tinygrad/shape/shapetracker.py +40 -50
  61. tinygrad/shape/view.py +102 -63
  62. tinygrad/tensor.py +1109 -365
  63. {tinygrad-0.9.1.dist-info → tinygrad-0.10.0.dist-info}/METADATA +54 -50
  64. tinygrad-0.10.0.dist-info/RECORD +77 -0
  65. {tinygrad-0.9.1.dist-info → tinygrad-0.10.0.dist-info}/WHEEL +1 -1
  66. tinygrad/codegen/linearizer.py +0 -528
  67. tinygrad/codegen/uops.py +0 -451
  68. tinygrad/engine/graph.py +0 -100
  69. tinygrad/renderer/assembly.py +0 -269
  70. tinygrad/shape/symbolic.py +0 -327
  71. tinygrad-0.9.1.dist-info/RECORD +0 -63
  72. /tinygrad/{runtime/driver/__init__.py → py.typed} +0 -0
  73. {tinygrad-0.9.1.dist-info → tinygrad-0.10.0.dist-info}/LICENSE +0 -0
  74. {tinygrad-0.9.1.dist-info → tinygrad-0.10.0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,1386 @@
1
+ # mypy: ignore-errors
2
+ # -*- coding: utf-8 -*-
3
+ #
4
+ # TARGET arch is: []
5
+ # WORD_SIZE is: 8
6
+ # POINTER_SIZE is: 8
7
+ # LONGDOUBLE_SIZE is: 16
8
+ #
9
+ import ctypes, os
10
+
11
+
12
+ class AsDictMixin:
13
+ @classmethod
14
+ def as_dict(cls, self):
15
+ result = {}
16
+ if not isinstance(self, AsDictMixin):
17
+ # not a structure, assume it's already a python object
18
+ return self
19
+ if not hasattr(cls, "_fields_"):
20
+ return result
21
+ # sys.version_info >= (3, 5)
22
+ # for (field, *_) in cls._fields_: # noqa
23
+ for field_tuple in cls._fields_: # noqa
24
+ field = field_tuple[0]
25
+ if field.startswith('PADDING_'):
26
+ continue
27
+ value = getattr(self, field)
28
+ type_ = type(value)
29
+ if hasattr(value, "_length_") and hasattr(value, "_type_"):
30
+ # array
31
+ if not hasattr(type_, "as_dict"):
32
+ value = [v for v in value]
33
+ else:
34
+ type_ = type_._type_
35
+ value = [type_.as_dict(v) for v in value]
36
+ elif hasattr(value, "contents") and hasattr(value, "_type_"):
37
+ # pointer
38
+ try:
39
+ if not hasattr(type_, "as_dict"):
40
+ value = value.contents
41
+ else:
42
+ type_ = type_._type_
43
+ value = type_.as_dict(value.contents)
44
+ except ValueError:
45
+ # nullptr
46
+ value = None
47
+ elif isinstance(value, AsDictMixin):
48
+ # other structure
49
+ value = type_.as_dict(value)
50
+ result[field] = value
51
+ return result
52
+
53
+
54
+ class Structure(ctypes.Structure, AsDictMixin):
55
+
56
+ def __init__(self, *args, **kwds):
57
+ # We don't want to use positional arguments fill PADDING_* fields
58
+
59
+ args = dict(zip(self.__class__._field_names_(), args))
60
+ args.update(kwds)
61
+ super(Structure, self).__init__(**args)
62
+
63
+ @classmethod
64
+ def _field_names_(cls):
65
+ if hasattr(cls, '_fields_'):
66
+ return (f[0] for f in cls._fields_ if not f[0].startswith('PADDING'))
67
+ else:
68
+ return ()
69
+
70
+ @classmethod
71
+ def get_type(cls, field):
72
+ for f in cls._fields_:
73
+ if f[0] == field:
74
+ return f[1]
75
+ return None
76
+
77
+ @classmethod
78
+ def bind(cls, bound_fields):
79
+ fields = {}
80
+ for name, type_ in cls._fields_:
81
+ if hasattr(type_, "restype"):
82
+ if name in bound_fields:
83
+ if bound_fields[name] is None:
84
+ fields[name] = type_()
85
+ else:
86
+ # use a closure to capture the callback from the loop scope
87
+ fields[name] = (
88
+ type_((lambda callback: lambda *args: callback(*args))(
89
+ bound_fields[name]))
90
+ )
91
+ del bound_fields[name]
92
+ else:
93
+ # default callback implementation (does nothing)
94
+ try:
95
+ default_ = type_(0).restype().value
96
+ except TypeError:
97
+ default_ = None
98
+ fields[name] = type_((
99
+ lambda default_: lambda *args: default_)(default_))
100
+ else:
101
+ # not a callback function, use default initialization
102
+ if name in bound_fields:
103
+ fields[name] = bound_fields[name]
104
+ del bound_fields[name]
105
+ else:
106
+ fields[name] = type_()
107
+ if len(bound_fields) != 0:
108
+ raise ValueError(
109
+ "Cannot bind the following unknown callback(s) {}.{}".format(
110
+ cls.__name__, bound_fields.keys()
111
+ ))
112
+ return cls(**fields)
113
+
114
+
115
+ class Union(ctypes.Union, AsDictMixin):
116
+ pass
117
+
118
+
119
+
120
+ c_int128 = ctypes.c_ubyte*16
121
+ c_uint128 = c_int128
122
+ void = None
123
+ if ctypes.sizeof(ctypes.c_longdouble) == 16:
124
+ c_long_double_t = ctypes.c_longdouble
125
+ else:
126
+ c_long_double_t = ctypes.c_ubyte*16
127
+
128
+
129
+ import fcntl, functools
130
+
131
+ def _do_ioctl(__idir, __base, __nr, __user_struct, __fd, __payload=None, **kwargs):
132
+ ret = fcntl.ioctl(__fd, (__idir<<30) | (ctypes.sizeof(made := (__payload or __user_struct(**kwargs)))<<16) | (__base<<8) | __nr, made)
133
+ if ret != 0: raise RuntimeError(f"ioctl returned {ret}")
134
+ return made
135
+
136
+ def _IO(base, nr): return functools.partial(_do_ioctl, 0, ord(base) if isinstance(base, str) else base, nr, None)
137
+ def _IOW(base, nr, type): return functools.partial(_do_ioctl, 1, ord(base) if isinstance(base, str) else base, nr, type)
138
+ def _IOR(base, nr, type): return functools.partial(_do_ioctl, 2, ord(base) if isinstance(base, str) else base, nr, type)
139
+ def _IOWR(base, nr, type): return functools.partial(_do_ioctl, 3, ord(base) if isinstance(base, str) else base, nr, type)
140
+
141
+
142
+
143
+ _UAPI_MSM_KGSL_H = True # macro
144
+ size_t = True # macro
145
+ uint64_t = True # macro
146
+ KGSL_VERSION_MAJOR = 3 # macro
147
+ KGSL_VERSION_MINOR = 14 # macro
148
+ KGSL_CONTEXT_SAVE_GMEM = 0x00000001 # macro
149
+ KGSL_CONTEXT_NO_GMEM_ALLOC = 0x00000002 # macro
150
+ KGSL_CONTEXT_SUBMIT_IB_LIST = 0x00000004 # macro
151
+ KGSL_CONTEXT_CTX_SWITCH = 0x00000008 # macro
152
+ KGSL_CONTEXT_PREAMBLE = 0x00000010 # macro
153
+ KGSL_CONTEXT_TRASH_STATE = 0x00000020 # macro
154
+ KGSL_CONTEXT_PER_CONTEXT_TS = 0x00000040 # macro
155
+ KGSL_CONTEXT_USER_GENERATED_TS = 0x00000080 # macro
156
+ KGSL_CONTEXT_END_OF_FRAME = 0x00000100 # macro
157
+ KGSL_CONTEXT_NO_FAULT_TOLERANCE = 0x00000200 # macro
158
+ KGSL_CONTEXT_SYNC = 0x00000400 # macro
159
+ KGSL_CONTEXT_PWR_CONSTRAINT = 0x00000800 # macro
160
+ KGSL_CONTEXT_PRIORITY_MASK = 0x0000F000 # macro
161
+ KGSL_CONTEXT_PRIORITY_SHIFT = 12 # macro
162
+ KGSL_CONTEXT_PRIORITY_UNDEF = 0 # macro
163
+ KGSL_CONTEXT_IFH_NOP = 0x00010000 # macro
164
+ KGSL_CONTEXT_SECURE = 0x00020000 # macro
165
+ KGSL_CONTEXT_PREEMPT_STYLE_MASK = 0x0E000000 # macro
166
+ KGSL_CONTEXT_PREEMPT_STYLE_SHIFT = 25 # macro
167
+ KGSL_CONTEXT_PREEMPT_STYLE_DEFAULT = 0x0 # macro
168
+ KGSL_CONTEXT_PREEMPT_STYLE_RINGBUFFER = 0x1 # macro
169
+ KGSL_CONTEXT_PREEMPT_STYLE_FINEGRAIN = 0x2 # macro
170
+ KGSL_CONTEXT_TYPE_MASK = 0x01F00000 # macro
171
+ KGSL_CONTEXT_TYPE_SHIFT = 20 # macro
172
+ KGSL_CONTEXT_TYPE_ANY = 0 # macro
173
+ KGSL_CONTEXT_TYPE_GL = 1 # macro
174
+ KGSL_CONTEXT_TYPE_CL = 2 # macro
175
+ KGSL_CONTEXT_TYPE_C2D = 3 # macro
176
+ KGSL_CONTEXT_TYPE_RS = 4 # macro
177
+ KGSL_CONTEXT_TYPE_UNKNOWN = 0x1E # macro
178
+ KGSL_CONTEXT_INVALID = 0xffffffff # macro
179
+ KGSL_CMDBATCH_MEMLIST = 0x00000001 # macro
180
+ KGSL_CMDBATCH_MARKER = 0x00000002 # macro
181
+ KGSL_CMDBATCH_SUBMIT_IB_LIST = 0x00000004 # macro
182
+ KGSL_CMDBATCH_CTX_SWITCH = 0x00000008 # macro
183
+ KGSL_CMDBATCH_PROFILING = 0x00000010 # macro
184
+ KGSL_CMDBATCH_PROFILING_KTIME = 0x00000020 # macro
185
+ KGSL_CMDBATCH_END_OF_FRAME = 0x00000100 # macro
186
+ KGSL_CMDBATCH_SYNC = 0x00000400 # macro
187
+ KGSL_CMDBATCH_PWR_CONSTRAINT = 0x00000800 # macro
188
+ KGSL_CMDLIST_IB = 0x00000001 # macro
189
+ KGSL_CMDLIST_CTXTSWITCH_PREAMBLE = 0x00000002 # macro
190
+ KGSL_CMDLIST_IB_PREAMBLE = 0x00000004 # macro
191
+ KGSL_OBJLIST_MEMOBJ = 0x00000008 # macro
192
+ KGSL_OBJLIST_PROFILE = 0x00000010 # macro
193
+ KGSL_CMD_SYNCPOINT_TYPE_TIMESTAMP = 0 # macro
194
+ KGSL_CMD_SYNCPOINT_TYPE_FENCE = 1 # macro
195
+ KGSL_MEMFLAGS_SECURE = 0x00000008 # macro
196
+ KGSL_MEMFLAGS_GPUREADONLY = 0x01000000 # macro
197
+ KGSL_MEMFLAGS_GPUWRITEONLY = 0x02000000 # macro
198
+ KGSL_MEMFLAGS_FORCE_32BIT = 0x100000000 # macro
199
+ KGSL_CACHEMODE_MASK = 0x0C000000 # macro
200
+ KGSL_CACHEMODE_SHIFT = 26 # macro
201
+ KGSL_CACHEMODE_WRITECOMBINE = 0 # macro
202
+ KGSL_CACHEMODE_UNCACHED = 1 # macro
203
+ KGSL_CACHEMODE_WRITETHROUGH = 2 # macro
204
+ KGSL_CACHEMODE_WRITEBACK = 3 # macro
205
+ KGSL_MEMFLAGS_USE_CPU_MAP = 0x10000000 # macro
206
+ KGSL_MEMTYPE_MASK = 0x0000FF00 # macro
207
+ KGSL_MEMTYPE_SHIFT = 8 # macro
208
+ KGSL_MEMTYPE_OBJECTANY = 0 # macro
209
+ KGSL_MEMTYPE_FRAMEBUFFER = 1 # macro
210
+ KGSL_MEMTYPE_RENDERBUFFER = 2 # macro
211
+ KGSL_MEMTYPE_ARRAYBUFFER = 3 # macro
212
+ KGSL_MEMTYPE_ELEMENTARRAYBUFFER = 4 # macro
213
+ KGSL_MEMTYPE_VERTEXARRAYBUFFER = 5 # macro
214
+ KGSL_MEMTYPE_TEXTURE = 6 # macro
215
+ KGSL_MEMTYPE_SURFACE = 7 # macro
216
+ KGSL_MEMTYPE_EGL_SURFACE = 8 # macro
217
+ KGSL_MEMTYPE_GL = 9 # macro
218
+ KGSL_MEMTYPE_CL = 10 # macro
219
+ KGSL_MEMTYPE_CL_BUFFER_MAP = 11 # macro
220
+ KGSL_MEMTYPE_CL_BUFFER_NOMAP = 12 # macro
221
+ KGSL_MEMTYPE_CL_IMAGE_MAP = 13 # macro
222
+ KGSL_MEMTYPE_CL_IMAGE_NOMAP = 14 # macro
223
+ KGSL_MEMTYPE_CL_KERNEL_STACK = 15 # macro
224
+ KGSL_MEMTYPE_COMMAND = 16 # macro
225
+ KGSL_MEMTYPE_2D = 17 # macro
226
+ KGSL_MEMTYPE_EGL_IMAGE = 18 # macro
227
+ KGSL_MEMTYPE_EGL_SHADOW = 19 # macro
228
+ KGSL_MEMTYPE_MULTISAMPLE = 20 # macro
229
+ KGSL_MEMTYPE_KERNEL = 255 # macro
230
+ KGSL_MEMALIGN_MASK = 0x00FF0000 # macro
231
+ KGSL_MEMALIGN_SHIFT = 16 # macro
232
+ KGSL_MEMFLAGS_USERMEM_MASK = 0x000000e0 # macro
233
+ KGSL_MEMFLAGS_USERMEM_SHIFT = 5 # macro
234
+ def KGSL_USERMEM_FLAG(x): # macro
235
+ return (((x)+1)<<5)
236
+ KGSL_MEMFLAGS_NOT_USERMEM = 0 # macro
237
+ KGSL_FLAGS_NORMALMODE = 0x00000000 # macro
238
+ KGSL_FLAGS_SAFEMODE = 0x00000001 # macro
239
+ KGSL_FLAGS_INITIALIZED0 = 0x00000002 # macro
240
+ KGSL_FLAGS_INITIALIZED = 0x00000004 # macro
241
+ KGSL_FLAGS_STARTED = 0x00000008 # macro
242
+ KGSL_FLAGS_ACTIVE = 0x00000010 # macro
243
+ KGSL_FLAGS_RESERVED0 = 0x00000020 # macro
244
+ KGSL_FLAGS_RESERVED1 = 0x00000040 # macro
245
+ KGSL_FLAGS_RESERVED2 = 0x00000080 # macro
246
+ KGSL_FLAGS_SOFT_RESET = 0x00000100 # macro
247
+ KGSL_FLAGS_PER_CONTEXT_TIMESTAMPS = 0x00000200 # macro
248
+ KGSL_SYNCOBJ_SERVER_TIMEOUT = 2000 # macro
249
+ def KGSL_CONVERT_TO_MBPS(val): # macro
250
+ return (val*1000*1000)
251
+ KGSL_PROP_DEVICE_INFO = 0x1 # macro
252
+ KGSL_PROP_DEVICE_SHADOW = 0x2 # macro
253
+ KGSL_PROP_DEVICE_POWER = 0x3 # macro
254
+ KGSL_PROP_SHMEM = 0x4 # macro
255
+ KGSL_PROP_SHMEM_APERTURES = 0x5 # macro
256
+ KGSL_PROP_MMU_ENABLE = 0x6 # macro
257
+ KGSL_PROP_INTERRUPT_WAITS = 0x7 # macro
258
+ KGSL_PROP_VERSION = 0x8 # macro
259
+ KGSL_PROP_GPU_RESET_STAT = 0x9 # macro
260
+ KGSL_PROP_PWRCTRL = 0xE # macro
261
+ KGSL_PROP_PWR_CONSTRAINT = 0x12 # macro
262
+ KGSL_PROP_UCHE_GMEM_VADDR = 0x13 # macro
263
+ KGSL_PROP_SP_GENERIC_MEM = 0x14 # macro
264
+ KGSL_PROP_UCODE_VERSION = 0x15 # macro
265
+ KGSL_PROP_GPMU_VERSION = 0x16 # macro
266
+ KGSL_PROP_DEVICE_BITNESS = 0x18 # macro
267
+ KGSL_PERFCOUNTER_GROUP_CP = 0x0 # macro
268
+ KGSL_PERFCOUNTER_GROUP_RBBM = 0x1 # macro
269
+ KGSL_PERFCOUNTER_GROUP_PC = 0x2 # macro
270
+ KGSL_PERFCOUNTER_GROUP_VFD = 0x3 # macro
271
+ KGSL_PERFCOUNTER_GROUP_HLSQ = 0x4 # macro
272
+ KGSL_PERFCOUNTER_GROUP_VPC = 0x5 # macro
273
+ KGSL_PERFCOUNTER_GROUP_TSE = 0x6 # macro
274
+ KGSL_PERFCOUNTER_GROUP_RAS = 0x7 # macro
275
+ KGSL_PERFCOUNTER_GROUP_UCHE = 0x8 # macro
276
+ KGSL_PERFCOUNTER_GROUP_TP = 0x9 # macro
277
+ KGSL_PERFCOUNTER_GROUP_SP = 0xA # macro
278
+ KGSL_PERFCOUNTER_GROUP_RB = 0xB # macro
279
+ KGSL_PERFCOUNTER_GROUP_PWR = 0xC # macro
280
+ KGSL_PERFCOUNTER_GROUP_VBIF = 0xD # macro
281
+ KGSL_PERFCOUNTER_GROUP_VBIF_PWR = 0xE # macro
282
+ KGSL_PERFCOUNTER_GROUP_MH = 0xF # macro
283
+ KGSL_PERFCOUNTER_GROUP_PA_SU = 0x10 # macro
284
+ KGSL_PERFCOUNTER_GROUP_SQ = 0x11 # macro
285
+ KGSL_PERFCOUNTER_GROUP_SX = 0x12 # macro
286
+ KGSL_PERFCOUNTER_GROUP_TCF = 0x13 # macro
287
+ KGSL_PERFCOUNTER_GROUP_TCM = 0x14 # macro
288
+ KGSL_PERFCOUNTER_GROUP_TCR = 0x15 # macro
289
+ KGSL_PERFCOUNTER_GROUP_L2 = 0x16 # macro
290
+ KGSL_PERFCOUNTER_GROUP_VSC = 0x17 # macro
291
+ KGSL_PERFCOUNTER_GROUP_CCU = 0x18 # macro
292
+ KGSL_PERFCOUNTER_GROUP_LRZ = 0x19 # macro
293
+ KGSL_PERFCOUNTER_GROUP_CMP = 0x1A # macro
294
+ KGSL_PERFCOUNTER_GROUP_ALWAYSON = 0x1B # macro
295
+ KGSL_PERFCOUNTER_GROUP_SP_PWR = 0x1C # macro
296
+ KGSL_PERFCOUNTER_GROUP_TP_PWR = 0x1D # macro
297
+ KGSL_PERFCOUNTER_GROUP_RB_PWR = 0x1E # macro
298
+ KGSL_PERFCOUNTER_GROUP_CCU_PWR = 0x1F # macro
299
+ KGSL_PERFCOUNTER_GROUP_UCHE_PWR = 0x20 # macro
300
+ KGSL_PERFCOUNTER_GROUP_CP_PWR = 0x21 # macro
301
+ KGSL_PERFCOUNTER_GROUP_GPMU_PWR = 0x22 # macro
302
+ KGSL_PERFCOUNTER_GROUP_ALWAYSON_PWR = 0x23 # macro
303
+ KGSL_PERFCOUNTER_GROUP_MAX = 0x24 # macro
304
+ KGSL_PERFCOUNTER_NOT_USED = 0xFFFFFFFF # macro
305
+ KGSL_PERFCOUNTER_BROKEN = 0xFFFFFFFE # macro
306
+ KGSL_IOC_TYPE = 0x09 # macro
307
+ KGSL_TIMESTAMP_EVENT_GENLOCK = 1 # macro
308
+ KGSL_TIMESTAMP_EVENT_FENCE = 2 # macro
309
+ KGSL_GPUMEM_CACHE_CLEAN = (1<<0) # macro
310
+ KGSL_GPUMEM_CACHE_TO_GPU = (1<<0) # macro
311
+ KGSL_GPUMEM_CACHE_INV = (1<<1) # macro
312
+ KGSL_GPUMEM_CACHE_FROM_GPU = (1<<1) # macro
313
+ KGSL_GPUMEM_CACHE_FLUSH = ((1<<0)|(1<<1)) # macro
314
+ KGSL_GPUMEM_CACHE_RANGE = (1<<31) # macro
315
+ KGSL_IBDESC_MEMLIST = 0x1 # macro
316
+ KGSL_IBDESC_PROFILING_BUFFER = 0x2 # macro
317
+ KGSL_CONSTRAINT_NONE = 0 # macro
318
+ KGSL_CONSTRAINT_PWRLEVEL = 1 # macro
319
+ KGSL_CONSTRAINT_PWR_MIN = 0 # macro
320
+ KGSL_CONSTRAINT_PWR_MAX = 1 # macro
321
+ KGSL_GPUOBJ_ALLOC_METADATA_MAX = 64 # macro
322
+ KGSL_GPUOBJ_FREE_ON_EVENT = 1 # macro
323
+ KGSL_GPU_EVENT_TIMESTAMP = 1 # macro
324
+ KGSL_GPU_EVENT_FENCE = 2 # macro
325
+ KGSL_GPUOBJ_SET_INFO_METADATA = (1<<0) # macro
326
+ KGSL_GPUOBJ_SET_INFO_TYPE = (1<<1) # macro
327
+
328
+ # values for enumeration 'kgsl_user_mem_type'
329
+ kgsl_user_mem_type__enumvalues = {
330
+ 0: 'KGSL_USER_MEM_TYPE_PMEM',
331
+ 1: 'KGSL_USER_MEM_TYPE_ASHMEM',
332
+ 2: 'KGSL_USER_MEM_TYPE_ADDR',
333
+ 3: 'KGSL_USER_MEM_TYPE_ION',
334
+ 3: 'KGSL_USER_MEM_TYPE_DMABUF',
335
+ 7: 'KGSL_USER_MEM_TYPE_MAX',
336
+ }
337
+ KGSL_USER_MEM_TYPE_PMEM = 0
338
+ KGSL_USER_MEM_TYPE_ASHMEM = 1
339
+ KGSL_USER_MEM_TYPE_ADDR = 2
340
+ KGSL_USER_MEM_TYPE_ION = 3
341
+ KGSL_USER_MEM_TYPE_DMABUF = 3
342
+ KGSL_USER_MEM_TYPE_MAX = 7
343
+ kgsl_user_mem_type = ctypes.c_uint32 # enum
344
+ KGSL_MEMFLAGS_USERMEM_PMEM = KGSL_USERMEM_FLAG ( KGSL_USER_MEM_TYPE_PMEM ) # macro (from list)
345
+ KGSL_MEMFLAGS_USERMEM_ASHMEM = KGSL_USERMEM_FLAG ( KGSL_USER_MEM_TYPE_ASHMEM ) # macro (from list)
346
+ KGSL_MEMFLAGS_USERMEM_ADDR = KGSL_USERMEM_FLAG ( KGSL_USER_MEM_TYPE_ADDR ) # macro (from list)
347
+ KGSL_MEMFLAGS_USERMEM_ION = KGSL_USERMEM_FLAG ( KGSL_USER_MEM_TYPE_ION ) # macro (from list)
348
+
349
+ # values for enumeration 'kgsl_ctx_reset_stat'
350
+ kgsl_ctx_reset_stat__enumvalues = {
351
+ 0: 'KGSL_CTX_STAT_NO_ERROR',
352
+ 1: 'KGSL_CTX_STAT_GUILTY_CONTEXT_RESET_EXT',
353
+ 2: 'KGSL_CTX_STAT_INNOCENT_CONTEXT_RESET_EXT',
354
+ 3: 'KGSL_CTX_STAT_UNKNOWN_CONTEXT_RESET_EXT',
355
+ }
356
+ KGSL_CTX_STAT_NO_ERROR = 0
357
+ KGSL_CTX_STAT_GUILTY_CONTEXT_RESET_EXT = 1
358
+ KGSL_CTX_STAT_INNOCENT_CONTEXT_RESET_EXT = 2
359
+ KGSL_CTX_STAT_UNKNOWN_CONTEXT_RESET_EXT = 3
360
+ kgsl_ctx_reset_stat = ctypes.c_uint32 # enum
361
+
362
+ # values for enumeration 'kgsl_deviceid'
363
+ kgsl_deviceid__enumvalues = {
364
+ 0: 'KGSL_DEVICE_3D0',
365
+ 1: 'KGSL_DEVICE_MAX',
366
+ }
367
+ KGSL_DEVICE_3D0 = 0
368
+ KGSL_DEVICE_MAX = 1
369
+ kgsl_deviceid = ctypes.c_uint32 # enum
370
+ class struct_kgsl_devinfo(Structure):
371
+ pass
372
+
373
+ struct_kgsl_devinfo._pack_ = 1 # source:False
374
+ struct_kgsl_devinfo._fields_ = [
375
+ ('device_id', ctypes.c_uint32),
376
+ ('chip_id', ctypes.c_uint32),
377
+ ('mmu_enabled', ctypes.c_uint32),
378
+ ('PADDING_0', ctypes.c_ubyte * 4),
379
+ ('gmem_gpubaseaddr', ctypes.c_uint64),
380
+ ('gpu_id', ctypes.c_uint32),
381
+ ('PADDING_1', ctypes.c_ubyte * 4),
382
+ ('gmem_sizebytes', ctypes.c_uint64),
383
+ ]
384
+
385
+ class struct_kgsl_devmemstore(Structure):
386
+ pass
387
+
388
+ struct_kgsl_devmemstore._pack_ = 1 # source:False
389
+ struct_kgsl_devmemstore._fields_ = [
390
+ ('soptimestamp', ctypes.c_uint32),
391
+ ('sbz', ctypes.c_uint32),
392
+ ('eoptimestamp', ctypes.c_uint32),
393
+ ('sbz2', ctypes.c_uint32),
394
+ ('preempted', ctypes.c_uint32),
395
+ ('sbz3', ctypes.c_uint32),
396
+ ('ref_wait_ts', ctypes.c_uint32),
397
+ ('sbz4', ctypes.c_uint32),
398
+ ('current_context', ctypes.c_uint32),
399
+ ('sbz5', ctypes.c_uint32),
400
+ ]
401
+
402
+ # def KGSL_MEMSTORE_OFFSET(ctxt_id, field): # macro
403
+ # return ((ctxt_id)*ctypes.sizeof(struct_kgsl_devmemstore)+offsetof(struct_kgsl_devmemstore,field))
404
+
405
+ # values for enumeration 'kgsl_timestamp_type'
406
+ kgsl_timestamp_type__enumvalues = {
407
+ 1: 'KGSL_TIMESTAMP_CONSUMED',
408
+ 2: 'KGSL_TIMESTAMP_RETIRED',
409
+ 3: 'KGSL_TIMESTAMP_QUEUED',
410
+ }
411
+ KGSL_TIMESTAMP_CONSUMED = 1
412
+ KGSL_TIMESTAMP_RETIRED = 2
413
+ KGSL_TIMESTAMP_QUEUED = 3
414
+ kgsl_timestamp_type = ctypes.c_uint32 # enum
415
+ class struct_kgsl_shadowprop(Structure):
416
+ pass
417
+
418
+ struct_kgsl_shadowprop._pack_ = 1 # source:False
419
+ struct_kgsl_shadowprop._fields_ = [
420
+ ('gpuaddr', ctypes.c_uint64),
421
+ ('size', ctypes.c_uint64),
422
+ ('flags', ctypes.c_uint32),
423
+ ('PADDING_0', ctypes.c_ubyte * 4),
424
+ ]
425
+
426
+ class struct_kgsl_version(Structure):
427
+ pass
428
+
429
+ struct_kgsl_version._pack_ = 1 # source:False
430
+ struct_kgsl_version._fields_ = [
431
+ ('drv_major', ctypes.c_uint32),
432
+ ('drv_minor', ctypes.c_uint32),
433
+ ('dev_major', ctypes.c_uint32),
434
+ ('dev_minor', ctypes.c_uint32),
435
+ ]
436
+
437
+ class struct_kgsl_sp_generic_mem(Structure):
438
+ pass
439
+
440
+ struct_kgsl_sp_generic_mem._pack_ = 1 # source:False
441
+ struct_kgsl_sp_generic_mem._fields_ = [
442
+ ('local', ctypes.c_uint64),
443
+ ('pvt', ctypes.c_uint64),
444
+ ]
445
+
446
+ class struct_kgsl_ucode_version(Structure):
447
+ pass
448
+
449
+ struct_kgsl_ucode_version._pack_ = 1 # source:False
450
+ struct_kgsl_ucode_version._fields_ = [
451
+ ('pfp', ctypes.c_uint32),
452
+ ('pm4', ctypes.c_uint32),
453
+ ]
454
+
455
+ class struct_kgsl_gpmu_version(Structure):
456
+ pass
457
+
458
+ struct_kgsl_gpmu_version._pack_ = 1 # source:False
459
+ struct_kgsl_gpmu_version._fields_ = [
460
+ ('major', ctypes.c_uint32),
461
+ ('minor', ctypes.c_uint32),
462
+ ('features', ctypes.c_uint32),
463
+ ]
464
+
465
+ class struct_kgsl_ibdesc(Structure):
466
+ pass
467
+
468
+ struct_kgsl_ibdesc._pack_ = 1 # source:False
469
+ struct_kgsl_ibdesc._fields_ = [
470
+ ('gpuaddr', ctypes.c_uint64),
471
+ ('__pad', ctypes.c_uint64),
472
+ ('sizedwords', ctypes.c_uint64),
473
+ ('ctrl', ctypes.c_uint32),
474
+ ('PADDING_0', ctypes.c_ubyte * 4),
475
+ ]
476
+
477
+ class struct_kgsl_cmdbatch_profiling_buffer(Structure):
478
+ pass
479
+
480
+ struct_kgsl_cmdbatch_profiling_buffer._pack_ = 1 # source:False
481
+ struct_kgsl_cmdbatch_profiling_buffer._fields_ = [
482
+ ('wall_clock_s', ctypes.c_uint64),
483
+ ('wall_clock_ns', ctypes.c_uint64),
484
+ ('gpu_ticks_queued', ctypes.c_uint64),
485
+ ('gpu_ticks_submitted', ctypes.c_uint64),
486
+ ('gpu_ticks_retired', ctypes.c_uint64),
487
+ ]
488
+
489
+ class struct_kgsl_device_getproperty(Structure):
490
+ pass
491
+
492
+ struct_kgsl_device_getproperty._pack_ = 1 # source:False
493
+ struct_kgsl_device_getproperty._fields_ = [
494
+ ('type', ctypes.c_uint32),
495
+ ('PADDING_0', ctypes.c_ubyte * 4),
496
+ ('value', ctypes.POINTER(None)),
497
+ ('sizebytes', ctypes.c_uint64),
498
+ ]
499
+
500
+ IOCTL_KGSL_DEVICE_GETPROPERTY = _IOWR ( 0x09 , 0x2 , struct_kgsl_device_getproperty ) # macro (from list)
501
+ IOCTL_KGSL_SETPROPERTY = _IOW ( 0x09 , 0x32 , struct_kgsl_device_getproperty ) # macro (from list)
502
+ class struct_kgsl_device_waittimestamp(Structure):
503
+ pass
504
+
505
+ struct_kgsl_device_waittimestamp._pack_ = 1 # source:False
506
+ struct_kgsl_device_waittimestamp._fields_ = [
507
+ ('timestamp', ctypes.c_uint32),
508
+ ('timeout', ctypes.c_uint32),
509
+ ]
510
+
511
+ IOCTL_KGSL_DEVICE_WAITTIMESTAMP = _IOW ( 0x09 , 0x6 , struct_kgsl_device_waittimestamp ) # macro (from list)
512
+ class struct_kgsl_device_waittimestamp_ctxtid(Structure):
513
+ pass
514
+
515
+ struct_kgsl_device_waittimestamp_ctxtid._pack_ = 1 # source:False
516
+ struct_kgsl_device_waittimestamp_ctxtid._fields_ = [
517
+ ('context_id', ctypes.c_uint32),
518
+ ('timestamp', ctypes.c_uint32),
519
+ ('timeout', ctypes.c_uint32),
520
+ ]
521
+
522
+ IOCTL_KGSL_DEVICE_WAITTIMESTAMP_CTXTID = _IOW ( 0x09 , 0x7 , struct_kgsl_device_waittimestamp_ctxtid ) # macro (from list)
523
+ class struct_kgsl_ringbuffer_issueibcmds(Structure):
524
+ pass
525
+
526
+ struct_kgsl_ringbuffer_issueibcmds._pack_ = 1 # source:False
527
+ struct_kgsl_ringbuffer_issueibcmds._fields_ = [
528
+ ('drawctxt_id', ctypes.c_uint32),
529
+ ('PADDING_0', ctypes.c_ubyte * 4),
530
+ ('ibdesc_addr', ctypes.c_uint64),
531
+ ('numibs', ctypes.c_uint32),
532
+ ('timestamp', ctypes.c_uint32),
533
+ ('flags', ctypes.c_uint32),
534
+ ('PADDING_1', ctypes.c_ubyte * 4),
535
+ ]
536
+
537
+ IOCTL_KGSL_RINGBUFFER_ISSUEIBCMDS = _IOWR ( 0x09 , 0x10 , struct_kgsl_ringbuffer_issueibcmds ) # macro (from list)
538
+ class struct_kgsl_cmdstream_readtimestamp(Structure):
539
+ pass
540
+
541
+ struct_kgsl_cmdstream_readtimestamp._pack_ = 1 # source:False
542
+ struct_kgsl_cmdstream_readtimestamp._fields_ = [
543
+ ('type', ctypes.c_uint32),
544
+ ('timestamp', ctypes.c_uint32),
545
+ ]
546
+
547
+ IOCTL_KGSL_CMDSTREAM_READTIMESTAMP_OLD = _IOR ( 0x09 , 0x11 , struct_kgsl_cmdstream_readtimestamp ) # macro (from list)
548
+ IOCTL_KGSL_CMDSTREAM_READTIMESTAMP = _IOWR ( 0x09 , 0x11 , struct_kgsl_cmdstream_readtimestamp ) # macro (from list)
549
+ class struct_kgsl_cmdstream_freememontimestamp(Structure):
550
+ pass
551
+
552
+ struct_kgsl_cmdstream_freememontimestamp._pack_ = 1 # source:False
553
+ struct_kgsl_cmdstream_freememontimestamp._fields_ = [
554
+ ('gpuaddr', ctypes.c_uint64),
555
+ ('type', ctypes.c_uint32),
556
+ ('timestamp', ctypes.c_uint32),
557
+ ]
558
+
559
+ IOCTL_KGSL_CMDSTREAM_FREEMEMONTIMESTAMP = _IOW ( 0x09 , 0x12 , struct_kgsl_cmdstream_freememontimestamp ) # macro (from list)
560
+ IOCTL_KGSL_CMDSTREAM_FREEMEMONTIMESTAMP_OLD = _IOR ( 0x09 , 0x12 , struct_kgsl_cmdstream_freememontimestamp ) # macro (from list)
561
+ class struct_kgsl_drawctxt_create(Structure):
562
+ pass
563
+
564
+ struct_kgsl_drawctxt_create._pack_ = 1 # source:False
565
+ struct_kgsl_drawctxt_create._fields_ = [
566
+ ('flags', ctypes.c_uint32),
567
+ ('drawctxt_id', ctypes.c_uint32),
568
+ ]
569
+
570
+ IOCTL_KGSL_DRAWCTXT_CREATE = _IOWR ( 0x09 , 0x13 , struct_kgsl_drawctxt_create ) # macro (from list)
571
+ class struct_kgsl_drawctxt_destroy(Structure):
572
+ pass
573
+
574
+ struct_kgsl_drawctxt_destroy._pack_ = 1 # source:False
575
+ struct_kgsl_drawctxt_destroy._fields_ = [
576
+ ('drawctxt_id', ctypes.c_uint32),
577
+ ]
578
+
579
+ IOCTL_KGSL_DRAWCTXT_DESTROY = _IOW ( 0x09 , 0x14 , struct_kgsl_drawctxt_destroy ) # macro (from list)
580
+ class struct_kgsl_map_user_mem(Structure):
581
+ pass
582
+
583
+ struct_kgsl_map_user_mem._pack_ = 1 # source:False
584
+ struct_kgsl_map_user_mem._fields_ = [
585
+ ('fd', ctypes.c_int32),
586
+ ('PADDING_0', ctypes.c_ubyte * 4),
587
+ ('gpuaddr', ctypes.c_uint64),
588
+ ('len', ctypes.c_uint64),
589
+ ('offset', ctypes.c_uint64),
590
+ ('hostptr', ctypes.c_uint64),
591
+ ('memtype', kgsl_user_mem_type),
592
+ ('flags', ctypes.c_uint32),
593
+ ]
594
+
595
+ IOCTL_KGSL_MAP_USER_MEM = _IOWR ( 0x09 , 0x15 , struct_kgsl_map_user_mem ) # macro (from list)
596
+ class struct_kgsl_cmdstream_readtimestamp_ctxtid(Structure):
597
+ pass
598
+
599
+ struct_kgsl_cmdstream_readtimestamp_ctxtid._pack_ = 1 # source:False
600
+ struct_kgsl_cmdstream_readtimestamp_ctxtid._fields_ = [
601
+ ('context_id', ctypes.c_uint32),
602
+ ('type', ctypes.c_uint32),
603
+ ('timestamp', ctypes.c_uint32),
604
+ ]
605
+
606
+ IOCTL_KGSL_CMDSTREAM_READTIMESTAMP_CTXTID = _IOWR ( 0x09 , 0x16 , struct_kgsl_cmdstream_readtimestamp_ctxtid ) # macro (from list)
607
+ class struct_kgsl_cmdstream_freememontimestamp_ctxtid(Structure):
608
+ pass
609
+
610
+ struct_kgsl_cmdstream_freememontimestamp_ctxtid._pack_ = 1 # source:False
611
+ struct_kgsl_cmdstream_freememontimestamp_ctxtid._fields_ = [
612
+ ('context_id', ctypes.c_uint32),
613
+ ('PADDING_0', ctypes.c_ubyte * 4),
614
+ ('gpuaddr', ctypes.c_uint64),
615
+ ('type', ctypes.c_uint32),
616
+ ('timestamp', ctypes.c_uint32),
617
+ ]
618
+
619
+ IOCTL_KGSL_CMDSTREAM_FREEMEMONTIMESTAMP_CTXTID = _IOW ( 0x09 , 0x17 , struct_kgsl_cmdstream_freememontimestamp_ctxtid ) # macro (from list)
620
+ class struct_kgsl_sharedmem_from_pmem(Structure):
621
+ pass
622
+
623
+ struct_kgsl_sharedmem_from_pmem._pack_ = 1 # source:False
624
+ struct_kgsl_sharedmem_from_pmem._fields_ = [
625
+ ('pmem_fd', ctypes.c_int32),
626
+ ('PADDING_0', ctypes.c_ubyte * 4),
627
+ ('gpuaddr', ctypes.c_uint64),
628
+ ('len', ctypes.c_uint32),
629
+ ('offset', ctypes.c_uint32),
630
+ ]
631
+
632
+ IOCTL_KGSL_SHAREDMEM_FROM_PMEM = _IOWR ( 0x09 , 0x20 , struct_kgsl_sharedmem_from_pmem ) # macro (from list)
633
+ class struct_kgsl_sharedmem_free(Structure):
634
+ pass
635
+
636
+ struct_kgsl_sharedmem_free._pack_ = 1 # source:False
637
+ struct_kgsl_sharedmem_free._fields_ = [
638
+ ('gpuaddr', ctypes.c_uint64),
639
+ ]
640
+
641
+ IOCTL_KGSL_SHAREDMEM_FREE = _IOW ( 0x09 , 0x21 , struct_kgsl_sharedmem_free ) # macro (from list)
642
+ IOCTL_KGSL_SHAREDMEM_FLUSH_CACHE = _IOW ( 0x09 , 0x24 , struct_kgsl_sharedmem_free ) # macro (from list)
643
+ class struct_kgsl_cff_user_event(Structure):
644
+ pass
645
+
646
+ struct_kgsl_cff_user_event._pack_ = 1 # source:False
647
+ struct_kgsl_cff_user_event._fields_ = [
648
+ ('cff_opcode', ctypes.c_ubyte),
649
+ ('PADDING_0', ctypes.c_ubyte * 3),
650
+ ('op1', ctypes.c_uint32),
651
+ ('op2', ctypes.c_uint32),
652
+ ('op3', ctypes.c_uint32),
653
+ ('op4', ctypes.c_uint32),
654
+ ('op5', ctypes.c_uint32),
655
+ ('__pad', ctypes.c_uint32 * 2),
656
+ ]
657
+
658
+ IOCTL_KGSL_CFF_USER_EVENT = _IOW ( 0x09 , 0x31 , struct_kgsl_cff_user_event ) # macro (from list)
659
+ class struct_kgsl_gmem_desc(Structure):
660
+ pass
661
+
662
+ struct_kgsl_gmem_desc._pack_ = 1 # source:False
663
+ struct_kgsl_gmem_desc._fields_ = [
664
+ ('x', ctypes.c_uint32),
665
+ ('y', ctypes.c_uint32),
666
+ ('width', ctypes.c_uint32),
667
+ ('height', ctypes.c_uint32),
668
+ ('pitch', ctypes.c_uint32),
669
+ ]
670
+
671
+ class struct_kgsl_buffer_desc(Structure):
672
+ pass
673
+
674
+ struct_kgsl_buffer_desc._pack_ = 1 # source:False
675
+ struct_kgsl_buffer_desc._fields_ = [
676
+ ('hostptr', ctypes.POINTER(None)),
677
+ ('gpuaddr', ctypes.c_uint64),
678
+ ('size', ctypes.c_int32),
679
+ ('format', ctypes.c_uint32),
680
+ ('pitch', ctypes.c_uint32),
681
+ ('enabled', ctypes.c_uint32),
682
+ ]
683
+
684
+ class struct_kgsl_bind_gmem_shadow(Structure):
685
+ pass
686
+
687
+ struct_kgsl_bind_gmem_shadow._pack_ = 1 # source:False
688
+ struct_kgsl_bind_gmem_shadow._fields_ = [
689
+ ('drawctxt_id', ctypes.c_uint32),
690
+ ('gmem_desc', struct_kgsl_gmem_desc),
691
+ ('shadow_x', ctypes.c_uint32),
692
+ ('shadow_y', ctypes.c_uint32),
693
+ ('shadow_buffer', struct_kgsl_buffer_desc),
694
+ ('buffer_id', ctypes.c_uint32),
695
+ ('PADDING_0', ctypes.c_ubyte * 4),
696
+ ]
697
+
698
+ IOCTL_KGSL_DRAWCTXT_BIND_GMEM_SHADOW = _IOW ( 0x09 , 0x22 , struct_kgsl_bind_gmem_shadow ) # macro (from list)
699
+ class struct_kgsl_sharedmem_from_vmalloc(Structure):
700
+ pass
701
+
702
+ struct_kgsl_sharedmem_from_vmalloc._pack_ = 1 # source:False
703
+ struct_kgsl_sharedmem_from_vmalloc._fields_ = [
704
+ ('gpuaddr', ctypes.c_uint64),
705
+ ('hostptr', ctypes.c_uint32),
706
+ ('flags', ctypes.c_uint32),
707
+ ]
708
+
709
+ IOCTL_KGSL_SHAREDMEM_FROM_VMALLOC = _IOWR ( 0x09 , 0x23 , struct_kgsl_sharedmem_from_vmalloc ) # macro (from list)
710
+ class struct_kgsl_drawctxt_set_bin_base_offset(Structure):
711
+ pass
712
+
713
+ struct_kgsl_drawctxt_set_bin_base_offset._pack_ = 1 # source:False
714
+ struct_kgsl_drawctxt_set_bin_base_offset._fields_ = [
715
+ ('drawctxt_id', ctypes.c_uint32),
716
+ ('offset', ctypes.c_uint32),
717
+ ]
718
+
719
+ IOCTL_KGSL_DRAWCTXT_SET_BIN_BASE_OFFSET = _IOW ( 0x09 , 0x25 , struct_kgsl_drawctxt_set_bin_base_offset ) # macro (from list)
720
+
721
+ # values for enumeration 'kgsl_cmdwindow_type'
722
+ kgsl_cmdwindow_type__enumvalues = {
723
+ 0: 'KGSL_CMDWINDOW_MIN',
724
+ 0: 'KGSL_CMDWINDOW_2D',
725
+ 1: 'KGSL_CMDWINDOW_3D',
726
+ 2: 'KGSL_CMDWINDOW_MMU',
727
+ 255: 'KGSL_CMDWINDOW_ARBITER',
728
+ 255: 'KGSL_CMDWINDOW_MAX',
729
+ }
730
+ KGSL_CMDWINDOW_MIN = 0
731
+ KGSL_CMDWINDOW_2D = 0
732
+ KGSL_CMDWINDOW_3D = 1
733
+ KGSL_CMDWINDOW_MMU = 2
734
+ KGSL_CMDWINDOW_ARBITER = 255
735
+ KGSL_CMDWINDOW_MAX = 255
736
+ kgsl_cmdwindow_type = ctypes.c_uint32 # enum
737
+ class struct_kgsl_cmdwindow_write(Structure):
738
+ pass
739
+
740
+ struct_kgsl_cmdwindow_write._pack_ = 1 # source:False
741
+ struct_kgsl_cmdwindow_write._fields_ = [
742
+ ('target', kgsl_cmdwindow_type),
743
+ ('addr', ctypes.c_uint32),
744
+ ('data', ctypes.c_uint32),
745
+ ]
746
+
747
+ IOCTL_KGSL_CMDWINDOW_WRITE = _IOW ( 0x09 , 0x2e , struct_kgsl_cmdwindow_write ) # macro (from list)
748
+ class struct_kgsl_gpumem_alloc(Structure):
749
+ pass
750
+
751
+ struct_kgsl_gpumem_alloc._pack_ = 1 # source:False
752
+ struct_kgsl_gpumem_alloc._fields_ = [
753
+ ('gpuaddr', ctypes.c_uint64),
754
+ ('size', ctypes.c_uint64),
755
+ ('flags', ctypes.c_uint32),
756
+ ('PADDING_0', ctypes.c_ubyte * 4),
757
+ ]
758
+
759
+ IOCTL_KGSL_GPUMEM_ALLOC = _IOWR ( 0x09 , 0x2f , struct_kgsl_gpumem_alloc ) # macro (from list)
760
+ class struct_kgsl_cff_syncmem(Structure):
761
+ pass
762
+
763
+ struct_kgsl_cff_syncmem._pack_ = 1 # source:False
764
+ struct_kgsl_cff_syncmem._fields_ = [
765
+ ('gpuaddr', ctypes.c_uint64),
766
+ ('len', ctypes.c_uint64),
767
+ ('__pad', ctypes.c_uint32 * 2),
768
+ ]
769
+
770
+ IOCTL_KGSL_CFF_SYNCMEM = _IOW ( 0x09 , 0x30 , struct_kgsl_cff_syncmem ) # macro (from list)
771
+ class struct_kgsl_timestamp_event(Structure):
772
+ pass
773
+
774
+ struct_kgsl_timestamp_event._pack_ = 1 # source:False
775
+ struct_kgsl_timestamp_event._fields_ = [
776
+ ('type', ctypes.c_int32),
777
+ ('timestamp', ctypes.c_uint32),
778
+ ('context_id', ctypes.c_uint32),
779
+ ('PADDING_0', ctypes.c_ubyte * 4),
780
+ ('priv', ctypes.POINTER(None)),
781
+ ('len', ctypes.c_uint64),
782
+ ]
783
+
784
+ IOCTL_KGSL_TIMESTAMP_EVENT_OLD = _IOW ( 0x09 , 0x31 , struct_kgsl_timestamp_event ) # macro (from list)
785
+ IOCTL_KGSL_TIMESTAMP_EVENT = _IOWR ( 0x09 , 0x33 , struct_kgsl_timestamp_event ) # macro (from list)
786
+ class struct_kgsl_timestamp_event_genlock(Structure):
787
+ pass
788
+
789
+ struct_kgsl_timestamp_event_genlock._pack_ = 1 # source:False
790
+ struct_kgsl_timestamp_event_genlock._fields_ = [
791
+ ('handle', ctypes.c_int32),
792
+ ]
793
+
794
+ class struct_kgsl_timestamp_event_fence(Structure):
795
+ pass
796
+
797
+ struct_kgsl_timestamp_event_fence._pack_ = 1 # source:False
798
+ struct_kgsl_timestamp_event_fence._fields_ = [
799
+ ('fence_fd', ctypes.c_int32),
800
+ ]
801
+
802
+ class struct_kgsl_gpumem_alloc_id(Structure):
803
+ pass
804
+
805
+ struct_kgsl_gpumem_alloc_id._pack_ = 1 # source:False
806
+ struct_kgsl_gpumem_alloc_id._fields_ = [
807
+ ('id', ctypes.c_uint32),
808
+ ('flags', ctypes.c_uint32),
809
+ ('size', ctypes.c_uint64),
810
+ ('mmapsize', ctypes.c_uint64),
811
+ ('gpuaddr', ctypes.c_uint64),
812
+ ('__pad', ctypes.c_uint64 * 2),
813
+ ]
814
+
815
+ IOCTL_KGSL_GPUMEM_ALLOC_ID = _IOWR ( 0x09 , 0x34 , struct_kgsl_gpumem_alloc_id ) # macro (from list)
816
+ class struct_kgsl_gpumem_free_id(Structure):
817
+ pass
818
+
819
+ struct_kgsl_gpumem_free_id._pack_ = 1 # source:False
820
+ struct_kgsl_gpumem_free_id._fields_ = [
821
+ ('id', ctypes.c_uint32),
822
+ ('__pad', ctypes.c_uint32),
823
+ ]
824
+
825
+ IOCTL_KGSL_GPUMEM_FREE_ID = _IOWR ( 0x09 , 0x35 , struct_kgsl_gpumem_free_id ) # macro (from list)
826
+ class struct_kgsl_gpumem_get_info(Structure):
827
+ pass
828
+
829
+ struct_kgsl_gpumem_get_info._pack_ = 1 # source:False
830
+ struct_kgsl_gpumem_get_info._fields_ = [
831
+ ('gpuaddr', ctypes.c_uint64),
832
+ ('id', ctypes.c_uint32),
833
+ ('flags', ctypes.c_uint32),
834
+ ('size', ctypes.c_uint64),
835
+ ('mmapsize', ctypes.c_uint64),
836
+ ('useraddr', ctypes.c_uint64),
837
+ ('__pad', ctypes.c_uint64 * 4),
838
+ ]
839
+
840
+ IOCTL_KGSL_GPUMEM_GET_INFO = _IOWR ( 0x09 , 0x36 , struct_kgsl_gpumem_get_info ) # macro (from list)
841
+ class struct_kgsl_gpumem_sync_cache(Structure):
842
+ pass
843
+
844
+ struct_kgsl_gpumem_sync_cache._pack_ = 1 # source:False
845
+ struct_kgsl_gpumem_sync_cache._fields_ = [
846
+ ('gpuaddr', ctypes.c_uint64),
847
+ ('id', ctypes.c_uint32),
848
+ ('op', ctypes.c_uint32),
849
+ ('offset', ctypes.c_uint64),
850
+ ('length', ctypes.c_uint64),
851
+ ]
852
+
853
+ IOCTL_KGSL_GPUMEM_SYNC_CACHE = _IOW ( 0x09 , 0x37 , struct_kgsl_gpumem_sync_cache ) # macro (from list)
854
+ class struct_kgsl_perfcounter_get(Structure):
855
+ pass
856
+
857
+ struct_kgsl_perfcounter_get._pack_ = 1 # source:False
858
+ struct_kgsl_perfcounter_get._fields_ = [
859
+ ('groupid', ctypes.c_uint32),
860
+ ('countable', ctypes.c_uint32),
861
+ ('offset', ctypes.c_uint32),
862
+ ('offset_hi', ctypes.c_uint32),
863
+ ('__pad', ctypes.c_uint32),
864
+ ]
865
+
866
+ IOCTL_KGSL_PERFCOUNTER_GET = _IOWR ( 0x09 , 0x38 , struct_kgsl_perfcounter_get ) # macro (from list)
867
+ class struct_kgsl_perfcounter_put(Structure):
868
+ pass
869
+
870
+ struct_kgsl_perfcounter_put._pack_ = 1 # source:False
871
+ struct_kgsl_perfcounter_put._fields_ = [
872
+ ('groupid', ctypes.c_uint32),
873
+ ('countable', ctypes.c_uint32),
874
+ ('__pad', ctypes.c_uint32 * 2),
875
+ ]
876
+
877
+ IOCTL_KGSL_PERFCOUNTER_PUT = _IOW ( 0x09 , 0x39 , struct_kgsl_perfcounter_put ) # macro (from list)
878
+ class struct_kgsl_perfcounter_query(Structure):
879
+ pass
880
+
881
+ struct_kgsl_perfcounter_query._pack_ = 1 # source:False
882
+ struct_kgsl_perfcounter_query._fields_ = [
883
+ ('groupid', ctypes.c_uint32),
884
+ ('PADDING_0', ctypes.c_ubyte * 4),
885
+ ('countables', ctypes.POINTER(ctypes.c_uint32)),
886
+ ('count', ctypes.c_uint32),
887
+ ('max_counters', ctypes.c_uint32),
888
+ ('__pad', ctypes.c_uint32 * 2),
889
+ ]
890
+
891
+ IOCTL_KGSL_PERFCOUNTER_QUERY = _IOWR ( 0x09 , 0x3A , struct_kgsl_perfcounter_query ) # macro (from list)
892
+ class struct_kgsl_perfcounter_read_group(Structure):
893
+ pass
894
+
895
+ struct_kgsl_perfcounter_read_group._pack_ = 1 # source:False
896
+ struct_kgsl_perfcounter_read_group._fields_ = [
897
+ ('groupid', ctypes.c_uint32),
898
+ ('countable', ctypes.c_uint32),
899
+ ('value', ctypes.c_uint64),
900
+ ]
901
+
902
+ class struct_kgsl_perfcounter_read(Structure):
903
+ pass
904
+
905
+ struct_kgsl_perfcounter_read._pack_ = 1 # source:False
906
+ struct_kgsl_perfcounter_read._fields_ = [
907
+ ('reads', ctypes.POINTER(struct_kgsl_perfcounter_read_group)),
908
+ ('count', ctypes.c_uint32),
909
+ ('__pad', ctypes.c_uint32 * 2),
910
+ ('PADDING_0', ctypes.c_ubyte * 4),
911
+ ]
912
+
913
+ IOCTL_KGSL_PERFCOUNTER_READ = _IOWR ( 0x09 , 0x3B , struct_kgsl_perfcounter_read ) # macro (from list)
914
+ class struct_kgsl_gpumem_sync_cache_bulk(Structure):
915
+ pass
916
+
917
+ struct_kgsl_gpumem_sync_cache_bulk._pack_ = 1 # source:False
918
+ struct_kgsl_gpumem_sync_cache_bulk._fields_ = [
919
+ ('id_list', ctypes.POINTER(ctypes.c_uint32)),
920
+ ('count', ctypes.c_uint32),
921
+ ('op', ctypes.c_uint32),
922
+ ('__pad', ctypes.c_uint32 * 2),
923
+ ]
924
+
925
+ IOCTL_KGSL_GPUMEM_SYNC_CACHE_BULK = _IOWR ( 0x09 , 0x3C , struct_kgsl_gpumem_sync_cache_bulk ) # macro (from list)
926
+ class struct_kgsl_cmd_syncpoint_timestamp(Structure):
927
+ pass
928
+
929
+ struct_kgsl_cmd_syncpoint_timestamp._pack_ = 1 # source:False
930
+ struct_kgsl_cmd_syncpoint_timestamp._fields_ = [
931
+ ('context_id', ctypes.c_uint32),
932
+ ('timestamp', ctypes.c_uint32),
933
+ ]
934
+
935
+ class struct_kgsl_cmd_syncpoint_fence(Structure):
936
+ pass
937
+
938
+ struct_kgsl_cmd_syncpoint_fence._pack_ = 1 # source:False
939
+ struct_kgsl_cmd_syncpoint_fence._fields_ = [
940
+ ('fd', ctypes.c_int32),
941
+ ]
942
+
943
+ class struct_kgsl_cmd_syncpoint(Structure):
944
+ pass
945
+
946
+ struct_kgsl_cmd_syncpoint._pack_ = 1 # source:False
947
+ struct_kgsl_cmd_syncpoint._fields_ = [
948
+ ('type', ctypes.c_int32),
949
+ ('PADDING_0', ctypes.c_ubyte * 4),
950
+ ('priv', ctypes.POINTER(None)),
951
+ ('size', ctypes.c_uint64),
952
+ ]
953
+
954
+ class struct_kgsl_submit_commands(Structure):
955
+ pass
956
+
957
+ struct_kgsl_submit_commands._pack_ = 1 # source:False
958
+ struct_kgsl_submit_commands._fields_ = [
959
+ ('context_id', ctypes.c_uint32),
960
+ ('flags', ctypes.c_uint32),
961
+ ('cmdlist', ctypes.POINTER(struct_kgsl_ibdesc)),
962
+ ('numcmds', ctypes.c_uint32),
963
+ ('PADDING_0', ctypes.c_ubyte * 4),
964
+ ('synclist', ctypes.POINTER(struct_kgsl_cmd_syncpoint)),
965
+ ('numsyncs', ctypes.c_uint32),
966
+ ('timestamp', ctypes.c_uint32),
967
+ ('__pad', ctypes.c_uint32 * 4),
968
+ ]
969
+
970
+ IOCTL_KGSL_SUBMIT_COMMANDS = _IOWR ( 0x09 , 0x3D , struct_kgsl_submit_commands ) # macro (from list)
971
+ class struct_kgsl_device_constraint(Structure):
972
+ pass
973
+
974
+ struct_kgsl_device_constraint._pack_ = 1 # source:False
975
+ struct_kgsl_device_constraint._fields_ = [
976
+ ('type', ctypes.c_uint32),
977
+ ('context_id', ctypes.c_uint32),
978
+ ('data', ctypes.POINTER(None)),
979
+ ('size', ctypes.c_uint64),
980
+ ]
981
+
982
+ class struct_kgsl_device_constraint_pwrlevel(Structure):
983
+ pass
984
+
985
+ struct_kgsl_device_constraint_pwrlevel._pack_ = 1 # source:False
986
+ struct_kgsl_device_constraint_pwrlevel._fields_ = [
987
+ ('level', ctypes.c_uint32),
988
+ ]
989
+
990
+ class struct_kgsl_syncsource_create(Structure):
991
+ pass
992
+
993
+ struct_kgsl_syncsource_create._pack_ = 1 # source:False
994
+ struct_kgsl_syncsource_create._fields_ = [
995
+ ('id', ctypes.c_uint32),
996
+ ('__pad', ctypes.c_uint32 * 3),
997
+ ]
998
+
999
+ IOCTL_KGSL_SYNCSOURCE_CREATE = _IOWR ( 0x09 , 0x40 , struct_kgsl_syncsource_create ) # macro (from list)
1000
+ class struct_kgsl_syncsource_destroy(Structure):
1001
+ pass
1002
+
1003
+ struct_kgsl_syncsource_destroy._pack_ = 1 # source:False
1004
+ struct_kgsl_syncsource_destroy._fields_ = [
1005
+ ('id', ctypes.c_uint32),
1006
+ ('__pad', ctypes.c_uint32 * 3),
1007
+ ]
1008
+
1009
+ IOCTL_KGSL_SYNCSOURCE_DESTROY = _IOWR ( 0x09 , 0x41 , struct_kgsl_syncsource_destroy ) # macro (from list)
1010
+ class struct_kgsl_syncsource_create_fence(Structure):
1011
+ pass
1012
+
1013
+ struct_kgsl_syncsource_create_fence._pack_ = 1 # source:False
1014
+ struct_kgsl_syncsource_create_fence._fields_ = [
1015
+ ('id', ctypes.c_uint32),
1016
+ ('fence_fd', ctypes.c_int32),
1017
+ ('__pad', ctypes.c_uint32 * 4),
1018
+ ]
1019
+
1020
+ IOCTL_KGSL_SYNCSOURCE_CREATE_FENCE = _IOWR ( 0x09 , 0x42 , struct_kgsl_syncsource_create_fence ) # macro (from list)
1021
+ class struct_kgsl_syncsource_signal_fence(Structure):
1022
+ pass
1023
+
1024
+ struct_kgsl_syncsource_signal_fence._pack_ = 1 # source:False
1025
+ struct_kgsl_syncsource_signal_fence._fields_ = [
1026
+ ('id', ctypes.c_uint32),
1027
+ ('fence_fd', ctypes.c_int32),
1028
+ ('__pad', ctypes.c_uint32 * 4),
1029
+ ]
1030
+
1031
+ IOCTL_KGSL_SYNCSOURCE_SIGNAL_FENCE = _IOWR ( 0x09 , 0x43 , struct_kgsl_syncsource_signal_fence ) # macro (from list)
1032
+ class struct_kgsl_cff_sync_gpuobj(Structure):
1033
+ pass
1034
+
1035
+ struct_kgsl_cff_sync_gpuobj._pack_ = 1 # source:False
1036
+ struct_kgsl_cff_sync_gpuobj._fields_ = [
1037
+ ('offset', ctypes.c_uint64),
1038
+ ('length', ctypes.c_uint64),
1039
+ ('id', ctypes.c_uint32),
1040
+ ('PADDING_0', ctypes.c_ubyte * 4),
1041
+ ]
1042
+
1043
+ IOCTL_KGSL_CFF_SYNC_GPUOBJ = _IOW ( 0x09 , 0x44 , struct_kgsl_cff_sync_gpuobj ) # macro (from list)
1044
+ class struct_kgsl_gpuobj_alloc(Structure):
1045
+ pass
1046
+
1047
+ struct_kgsl_gpuobj_alloc._pack_ = 1 # source:False
1048
+ struct_kgsl_gpuobj_alloc._fields_ = [
1049
+ ('size', ctypes.c_uint64),
1050
+ ('flags', ctypes.c_uint64),
1051
+ ('va_len', ctypes.c_uint64),
1052
+ ('mmapsize', ctypes.c_uint64),
1053
+ ('id', ctypes.c_uint32),
1054
+ ('metadata_len', ctypes.c_uint32),
1055
+ ('metadata', ctypes.c_uint64),
1056
+ ]
1057
+
1058
+ IOCTL_KGSL_GPUOBJ_ALLOC = _IOWR ( 0x09 , 0x45 , struct_kgsl_gpuobj_alloc ) # macro (from list)
1059
+ class struct_kgsl_gpuobj_free(Structure):
1060
+ pass
1061
+
1062
+ struct_kgsl_gpuobj_free._pack_ = 1 # source:False
1063
+ struct_kgsl_gpuobj_free._fields_ = [
1064
+ ('flags', ctypes.c_uint64),
1065
+ ('priv', ctypes.c_uint64),
1066
+ ('id', ctypes.c_uint32),
1067
+ ('type', ctypes.c_uint32),
1068
+ ('len', ctypes.c_uint32),
1069
+ ('PADDING_0', ctypes.c_ubyte * 4),
1070
+ ]
1071
+
1072
+ IOCTL_KGSL_GPUOBJ_FREE = _IOW ( 0x09 , 0x46 , struct_kgsl_gpuobj_free ) # macro (from list)
1073
+ class struct_kgsl_gpu_event_timestamp(Structure):
1074
+ pass
1075
+
1076
+ struct_kgsl_gpu_event_timestamp._pack_ = 1 # source:False
1077
+ struct_kgsl_gpu_event_timestamp._fields_ = [
1078
+ ('context_id', ctypes.c_uint32),
1079
+ ('timestamp', ctypes.c_uint32),
1080
+ ]
1081
+
1082
+ class struct_kgsl_gpu_event_fence(Structure):
1083
+ pass
1084
+
1085
+ struct_kgsl_gpu_event_fence._pack_ = 1 # source:False
1086
+ struct_kgsl_gpu_event_fence._fields_ = [
1087
+ ('fd', ctypes.c_int32),
1088
+ ]
1089
+
1090
+ class struct_kgsl_gpuobj_info(Structure):
1091
+ pass
1092
+
1093
+ struct_kgsl_gpuobj_info._pack_ = 1 # source:False
1094
+ struct_kgsl_gpuobj_info._fields_ = [
1095
+ ('gpuaddr', ctypes.c_uint64),
1096
+ ('flags', ctypes.c_uint64),
1097
+ ('size', ctypes.c_uint64),
1098
+ ('va_len', ctypes.c_uint64),
1099
+ ('va_addr', ctypes.c_uint64),
1100
+ ('id', ctypes.c_uint32),
1101
+ ('PADDING_0', ctypes.c_ubyte * 4),
1102
+ ]
1103
+
1104
+ IOCTL_KGSL_GPUOBJ_INFO = _IOWR ( 0x09 , 0x47 , struct_kgsl_gpuobj_info ) # macro (from list)
1105
+ class struct_kgsl_gpuobj_import(Structure):
1106
+ pass
1107
+
1108
+ struct_kgsl_gpuobj_import._pack_ = 1 # source:False
1109
+ struct_kgsl_gpuobj_import._fields_ = [
1110
+ ('priv', ctypes.c_uint64),
1111
+ ('priv_len', ctypes.c_uint64),
1112
+ ('flags', ctypes.c_uint64),
1113
+ ('type', ctypes.c_uint32),
1114
+ ('id', ctypes.c_uint32),
1115
+ ]
1116
+
1117
+ IOCTL_KGSL_GPUOBJ_IMPORT = _IOWR ( 0x09 , 0x48 , struct_kgsl_gpuobj_import ) # macro (from list)
1118
+ class struct_kgsl_gpuobj_import_dma_buf(Structure):
1119
+ pass
1120
+
1121
+ struct_kgsl_gpuobj_import_dma_buf._pack_ = 1 # source:False
1122
+ struct_kgsl_gpuobj_import_dma_buf._fields_ = [
1123
+ ('fd', ctypes.c_int32),
1124
+ ]
1125
+
1126
+ class struct_kgsl_gpuobj_import_useraddr(Structure):
1127
+ pass
1128
+
1129
+ struct_kgsl_gpuobj_import_useraddr._pack_ = 1 # source:False
1130
+ struct_kgsl_gpuobj_import_useraddr._fields_ = [
1131
+ ('virtaddr', ctypes.c_uint64),
1132
+ ]
1133
+
1134
+ class struct_kgsl_gpuobj_sync_obj(Structure):
1135
+ pass
1136
+
1137
+ struct_kgsl_gpuobj_sync_obj._pack_ = 1 # source:False
1138
+ struct_kgsl_gpuobj_sync_obj._fields_ = [
1139
+ ('offset', ctypes.c_uint64),
1140
+ ('length', ctypes.c_uint64),
1141
+ ('id', ctypes.c_uint32),
1142
+ ('op', ctypes.c_uint32),
1143
+ ]
1144
+
1145
+ class struct_kgsl_gpuobj_sync(Structure):
1146
+ pass
1147
+
1148
+ struct_kgsl_gpuobj_sync._pack_ = 1 # source:False
1149
+ struct_kgsl_gpuobj_sync._fields_ = [
1150
+ ('objs', ctypes.c_uint64),
1151
+ ('obj_len', ctypes.c_uint32),
1152
+ ('count', ctypes.c_uint32),
1153
+ ]
1154
+
1155
+ IOCTL_KGSL_GPUOBJ_SYNC = _IOW ( 0x09 , 0x49 , struct_kgsl_gpuobj_sync ) # macro (from list)
1156
+ class struct_kgsl_command_object(Structure):
1157
+ pass
1158
+
1159
+ struct_kgsl_command_object._pack_ = 1 # source:False
1160
+ struct_kgsl_command_object._fields_ = [
1161
+ ('offset', ctypes.c_uint64),
1162
+ ('gpuaddr', ctypes.c_uint64),
1163
+ ('size', ctypes.c_uint64),
1164
+ ('flags', ctypes.c_uint32),
1165
+ ('id', ctypes.c_uint32),
1166
+ ]
1167
+
1168
+ class struct_kgsl_command_syncpoint(Structure):
1169
+ pass
1170
+
1171
+ struct_kgsl_command_syncpoint._pack_ = 1 # source:False
1172
+ struct_kgsl_command_syncpoint._fields_ = [
1173
+ ('priv', ctypes.c_uint64),
1174
+ ('size', ctypes.c_uint64),
1175
+ ('type', ctypes.c_uint32),
1176
+ ('PADDING_0', ctypes.c_ubyte * 4),
1177
+ ]
1178
+
1179
+ class struct_kgsl_gpu_command(Structure):
1180
+ pass
1181
+
1182
+ struct_kgsl_gpu_command._pack_ = 1 # source:False
1183
+ struct_kgsl_gpu_command._fields_ = [
1184
+ ('flags', ctypes.c_uint64),
1185
+ ('cmdlist', ctypes.c_uint64),
1186
+ ('cmdsize', ctypes.c_uint32),
1187
+ ('numcmds', ctypes.c_uint32),
1188
+ ('objlist', ctypes.c_uint64),
1189
+ ('objsize', ctypes.c_uint32),
1190
+ ('numobjs', ctypes.c_uint32),
1191
+ ('synclist', ctypes.c_uint64),
1192
+ ('syncsize', ctypes.c_uint32),
1193
+ ('numsyncs', ctypes.c_uint32),
1194
+ ('context_id', ctypes.c_uint32),
1195
+ ('timestamp', ctypes.c_uint32),
1196
+ ]
1197
+
1198
+ IOCTL_KGSL_GPU_COMMAND = _IOWR ( 0x09 , 0x4A , struct_kgsl_gpu_command ) # macro (from list)
1199
+ class struct_kgsl_preemption_counters_query(Structure):
1200
+ pass
1201
+
1202
+ struct_kgsl_preemption_counters_query._pack_ = 1 # source:False
1203
+ struct_kgsl_preemption_counters_query._fields_ = [
1204
+ ('counters', ctypes.c_uint64),
1205
+ ('size_user', ctypes.c_uint32),
1206
+ ('size_priority_level', ctypes.c_uint32),
1207
+ ('max_priority_level', ctypes.c_uint32),
1208
+ ('PADDING_0', ctypes.c_ubyte * 4),
1209
+ ]
1210
+
1211
+ IOCTL_KGSL_PREEMPTIONCOUNTER_QUERY = _IOWR ( 0x09 , 0x4B , struct_kgsl_preemption_counters_query ) # macro (from list)
1212
+ class struct_kgsl_gpuobj_set_info(Structure):
1213
+ pass
1214
+
1215
+ struct_kgsl_gpuobj_set_info._pack_ = 1 # source:False
1216
+ struct_kgsl_gpuobj_set_info._fields_ = [
1217
+ ('flags', ctypes.c_uint64),
1218
+ ('metadata', ctypes.c_uint64),
1219
+ ('id', ctypes.c_uint32),
1220
+ ('metadata_len', ctypes.c_uint32),
1221
+ ('type', ctypes.c_uint32),
1222
+ ('PADDING_0', ctypes.c_ubyte * 4),
1223
+ ]
1224
+
1225
+ IOCTL_KGSL_GPUOBJ_SET_INFO = _IOW ( 0x09 , 0x4C , struct_kgsl_gpuobj_set_info ) # macro (from list)
1226
+ __all__ = \
1227
+ ['KGSL_CACHEMODE_MASK', 'KGSL_CACHEMODE_SHIFT',
1228
+ 'KGSL_CACHEMODE_UNCACHED', 'KGSL_CACHEMODE_WRITEBACK',
1229
+ 'KGSL_CACHEMODE_WRITECOMBINE', 'KGSL_CACHEMODE_WRITETHROUGH',
1230
+ 'KGSL_CMDBATCH_CTX_SWITCH', 'KGSL_CMDBATCH_END_OF_FRAME',
1231
+ 'KGSL_CMDBATCH_MARKER', 'KGSL_CMDBATCH_MEMLIST',
1232
+ 'KGSL_CMDBATCH_PROFILING', 'KGSL_CMDBATCH_PROFILING_KTIME',
1233
+ 'KGSL_CMDBATCH_PWR_CONSTRAINT', 'KGSL_CMDBATCH_SUBMIT_IB_LIST',
1234
+ 'KGSL_CMDBATCH_SYNC', 'KGSL_CMDLIST_CTXTSWITCH_PREAMBLE',
1235
+ 'KGSL_CMDLIST_IB', 'KGSL_CMDLIST_IB_PREAMBLE',
1236
+ 'KGSL_CMDWINDOW_2D', 'KGSL_CMDWINDOW_3D',
1237
+ 'KGSL_CMDWINDOW_ARBITER', 'KGSL_CMDWINDOW_MAX',
1238
+ 'KGSL_CMDWINDOW_MIN', 'KGSL_CMDWINDOW_MMU',
1239
+ 'KGSL_CMD_SYNCPOINT_TYPE_FENCE',
1240
+ 'KGSL_CMD_SYNCPOINT_TYPE_TIMESTAMP', 'KGSL_CONSTRAINT_NONE',
1241
+ 'KGSL_CONSTRAINT_PWRLEVEL', 'KGSL_CONSTRAINT_PWR_MAX',
1242
+ 'KGSL_CONSTRAINT_PWR_MIN', 'KGSL_CONTEXT_CTX_SWITCH',
1243
+ 'KGSL_CONTEXT_END_OF_FRAME', 'KGSL_CONTEXT_IFH_NOP',
1244
+ 'KGSL_CONTEXT_INVALID', 'KGSL_CONTEXT_NO_FAULT_TOLERANCE',
1245
+ 'KGSL_CONTEXT_NO_GMEM_ALLOC', 'KGSL_CONTEXT_PER_CONTEXT_TS',
1246
+ 'KGSL_CONTEXT_PREAMBLE', 'KGSL_CONTEXT_PREEMPT_STYLE_DEFAULT',
1247
+ 'KGSL_CONTEXT_PREEMPT_STYLE_FINEGRAIN',
1248
+ 'KGSL_CONTEXT_PREEMPT_STYLE_MASK',
1249
+ 'KGSL_CONTEXT_PREEMPT_STYLE_RINGBUFFER',
1250
+ 'KGSL_CONTEXT_PREEMPT_STYLE_SHIFT', 'KGSL_CONTEXT_PRIORITY_MASK',
1251
+ 'KGSL_CONTEXT_PRIORITY_SHIFT', 'KGSL_CONTEXT_PRIORITY_UNDEF',
1252
+ 'KGSL_CONTEXT_PWR_CONSTRAINT', 'KGSL_CONTEXT_SAVE_GMEM',
1253
+ 'KGSL_CONTEXT_SECURE', 'KGSL_CONTEXT_SUBMIT_IB_LIST',
1254
+ 'KGSL_CONTEXT_SYNC', 'KGSL_CONTEXT_TRASH_STATE',
1255
+ 'KGSL_CONTEXT_TYPE_ANY', 'KGSL_CONTEXT_TYPE_C2D',
1256
+ 'KGSL_CONTEXT_TYPE_CL', 'KGSL_CONTEXT_TYPE_GL',
1257
+ 'KGSL_CONTEXT_TYPE_MASK', 'KGSL_CONTEXT_TYPE_RS',
1258
+ 'KGSL_CONTEXT_TYPE_SHIFT', 'KGSL_CONTEXT_TYPE_UNKNOWN',
1259
+ 'KGSL_CONTEXT_USER_GENERATED_TS',
1260
+ 'KGSL_CTX_STAT_GUILTY_CONTEXT_RESET_EXT',
1261
+ 'KGSL_CTX_STAT_INNOCENT_CONTEXT_RESET_EXT',
1262
+ 'KGSL_CTX_STAT_NO_ERROR',
1263
+ 'KGSL_CTX_STAT_UNKNOWN_CONTEXT_RESET_EXT', 'KGSL_DEVICE_3D0',
1264
+ 'KGSL_DEVICE_MAX', 'KGSL_FLAGS_ACTIVE', 'KGSL_FLAGS_INITIALIZED',
1265
+ 'KGSL_FLAGS_INITIALIZED0', 'KGSL_FLAGS_NORMALMODE',
1266
+ 'KGSL_FLAGS_PER_CONTEXT_TIMESTAMPS', 'KGSL_FLAGS_RESERVED0',
1267
+ 'KGSL_FLAGS_RESERVED1', 'KGSL_FLAGS_RESERVED2',
1268
+ 'KGSL_FLAGS_SAFEMODE', 'KGSL_FLAGS_SOFT_RESET',
1269
+ 'KGSL_FLAGS_STARTED', 'KGSL_GPUMEM_CACHE_CLEAN',
1270
+ 'KGSL_GPUMEM_CACHE_FLUSH', 'KGSL_GPUMEM_CACHE_FROM_GPU',
1271
+ 'KGSL_GPUMEM_CACHE_INV', 'KGSL_GPUMEM_CACHE_RANGE',
1272
+ 'KGSL_GPUMEM_CACHE_TO_GPU', 'KGSL_GPUOBJ_ALLOC_METADATA_MAX',
1273
+ 'KGSL_GPUOBJ_FREE_ON_EVENT', 'KGSL_GPUOBJ_SET_INFO_METADATA',
1274
+ 'KGSL_GPUOBJ_SET_INFO_TYPE', 'KGSL_GPU_EVENT_FENCE',
1275
+ 'KGSL_GPU_EVENT_TIMESTAMP', 'KGSL_IBDESC_MEMLIST',
1276
+ 'KGSL_IBDESC_PROFILING_BUFFER', 'KGSL_IOC_TYPE',
1277
+ 'KGSL_MEMALIGN_MASK', 'KGSL_MEMALIGN_SHIFT',
1278
+ 'KGSL_MEMFLAGS_FORCE_32BIT', 'KGSL_MEMFLAGS_GPUREADONLY',
1279
+ 'KGSL_MEMFLAGS_GPUWRITEONLY', 'KGSL_MEMFLAGS_NOT_USERMEM',
1280
+ 'KGSL_MEMFLAGS_SECURE', 'KGSL_MEMFLAGS_USERMEM_MASK',
1281
+ 'KGSL_MEMFLAGS_USERMEM_SHIFT', 'KGSL_MEMFLAGS_USE_CPU_MAP',
1282
+ 'KGSL_MEMTYPE_2D', 'KGSL_MEMTYPE_ARRAYBUFFER', 'KGSL_MEMTYPE_CL',
1283
+ 'KGSL_MEMTYPE_CL_BUFFER_MAP', 'KGSL_MEMTYPE_CL_BUFFER_NOMAP',
1284
+ 'KGSL_MEMTYPE_CL_IMAGE_MAP', 'KGSL_MEMTYPE_CL_IMAGE_NOMAP',
1285
+ 'KGSL_MEMTYPE_CL_KERNEL_STACK', 'KGSL_MEMTYPE_COMMAND',
1286
+ 'KGSL_MEMTYPE_EGL_IMAGE', 'KGSL_MEMTYPE_EGL_SHADOW',
1287
+ 'KGSL_MEMTYPE_EGL_SURFACE', 'KGSL_MEMTYPE_ELEMENTARRAYBUFFER',
1288
+ 'KGSL_MEMTYPE_FRAMEBUFFER', 'KGSL_MEMTYPE_GL',
1289
+ 'KGSL_MEMTYPE_KERNEL', 'KGSL_MEMTYPE_MASK',
1290
+ 'KGSL_MEMTYPE_MULTISAMPLE', 'KGSL_MEMTYPE_OBJECTANY',
1291
+ 'KGSL_MEMTYPE_RENDERBUFFER', 'KGSL_MEMTYPE_SHIFT',
1292
+ 'KGSL_MEMTYPE_SURFACE', 'KGSL_MEMTYPE_TEXTURE',
1293
+ 'KGSL_MEMTYPE_VERTEXARRAYBUFFER', 'KGSL_OBJLIST_MEMOBJ',
1294
+ 'KGSL_OBJLIST_PROFILE', 'KGSL_PERFCOUNTER_BROKEN',
1295
+ 'KGSL_PERFCOUNTER_GROUP_ALWAYSON',
1296
+ 'KGSL_PERFCOUNTER_GROUP_ALWAYSON_PWR',
1297
+ 'KGSL_PERFCOUNTER_GROUP_CCU', 'KGSL_PERFCOUNTER_GROUP_CCU_PWR',
1298
+ 'KGSL_PERFCOUNTER_GROUP_CMP', 'KGSL_PERFCOUNTER_GROUP_CP',
1299
+ 'KGSL_PERFCOUNTER_GROUP_CP_PWR',
1300
+ 'KGSL_PERFCOUNTER_GROUP_GPMU_PWR', 'KGSL_PERFCOUNTER_GROUP_HLSQ',
1301
+ 'KGSL_PERFCOUNTER_GROUP_L2', 'KGSL_PERFCOUNTER_GROUP_LRZ',
1302
+ 'KGSL_PERFCOUNTER_GROUP_MAX', 'KGSL_PERFCOUNTER_GROUP_MH',
1303
+ 'KGSL_PERFCOUNTER_GROUP_PA_SU', 'KGSL_PERFCOUNTER_GROUP_PC',
1304
+ 'KGSL_PERFCOUNTER_GROUP_PWR', 'KGSL_PERFCOUNTER_GROUP_RAS',
1305
+ 'KGSL_PERFCOUNTER_GROUP_RB', 'KGSL_PERFCOUNTER_GROUP_RBBM',
1306
+ 'KGSL_PERFCOUNTER_GROUP_RB_PWR', 'KGSL_PERFCOUNTER_GROUP_SP',
1307
+ 'KGSL_PERFCOUNTER_GROUP_SP_PWR', 'KGSL_PERFCOUNTER_GROUP_SQ',
1308
+ 'KGSL_PERFCOUNTER_GROUP_SX', 'KGSL_PERFCOUNTER_GROUP_TCF',
1309
+ 'KGSL_PERFCOUNTER_GROUP_TCM', 'KGSL_PERFCOUNTER_GROUP_TCR',
1310
+ 'KGSL_PERFCOUNTER_GROUP_TP', 'KGSL_PERFCOUNTER_GROUP_TP_PWR',
1311
+ 'KGSL_PERFCOUNTER_GROUP_TSE', 'KGSL_PERFCOUNTER_GROUP_UCHE',
1312
+ 'KGSL_PERFCOUNTER_GROUP_UCHE_PWR', 'KGSL_PERFCOUNTER_GROUP_VBIF',
1313
+ 'KGSL_PERFCOUNTER_GROUP_VBIF_PWR', 'KGSL_PERFCOUNTER_GROUP_VFD',
1314
+ 'KGSL_PERFCOUNTER_GROUP_VPC', 'KGSL_PERFCOUNTER_GROUP_VSC',
1315
+ 'KGSL_PERFCOUNTER_NOT_USED', 'KGSL_PROP_DEVICE_BITNESS',
1316
+ 'KGSL_PROP_DEVICE_INFO', 'KGSL_PROP_DEVICE_POWER',
1317
+ 'KGSL_PROP_DEVICE_SHADOW', 'KGSL_PROP_GPMU_VERSION',
1318
+ 'KGSL_PROP_GPU_RESET_STAT', 'KGSL_PROP_INTERRUPT_WAITS',
1319
+ 'KGSL_PROP_MMU_ENABLE', 'KGSL_PROP_PWRCTRL',
1320
+ 'KGSL_PROP_PWR_CONSTRAINT', 'KGSL_PROP_SHMEM',
1321
+ 'KGSL_PROP_SHMEM_APERTURES', 'KGSL_PROP_SP_GENERIC_MEM',
1322
+ 'KGSL_PROP_UCHE_GMEM_VADDR', 'KGSL_PROP_UCODE_VERSION',
1323
+ 'KGSL_PROP_VERSION', 'KGSL_SYNCOBJ_SERVER_TIMEOUT',
1324
+ 'KGSL_TIMESTAMP_CONSUMED', 'KGSL_TIMESTAMP_EVENT_FENCE',
1325
+ 'KGSL_TIMESTAMP_EVENT_GENLOCK', 'KGSL_TIMESTAMP_QUEUED',
1326
+ 'KGSL_TIMESTAMP_RETIRED', 'KGSL_USER_MEM_TYPE_ADDR',
1327
+ 'KGSL_USER_MEM_TYPE_ASHMEM', 'KGSL_USER_MEM_TYPE_DMABUF',
1328
+ 'KGSL_USER_MEM_TYPE_ION', 'KGSL_USER_MEM_TYPE_MAX',
1329
+ 'KGSL_USER_MEM_TYPE_PMEM', 'KGSL_VERSION_MAJOR',
1330
+ 'KGSL_VERSION_MINOR', '_IO', '_IOR', '_IOW', '_IOWR',
1331
+ '_UAPI_MSM_KGSL_H', 'kgsl_cmdwindow_type', 'kgsl_ctx_reset_stat',
1332
+ 'kgsl_deviceid', 'kgsl_timestamp_type', 'kgsl_user_mem_type',
1333
+ 'size_t', 'struct_kgsl_bind_gmem_shadow',
1334
+ 'struct_kgsl_buffer_desc', 'struct_kgsl_cff_sync_gpuobj',
1335
+ 'struct_kgsl_cff_syncmem', 'struct_kgsl_cff_user_event',
1336
+ 'struct_kgsl_cmd_syncpoint', 'struct_kgsl_cmd_syncpoint_fence',
1337
+ 'struct_kgsl_cmd_syncpoint_timestamp',
1338
+ 'struct_kgsl_cmdbatch_profiling_buffer',
1339
+ 'struct_kgsl_cmdstream_freememontimestamp',
1340
+ 'struct_kgsl_cmdstream_freememontimestamp_ctxtid',
1341
+ 'struct_kgsl_cmdstream_readtimestamp',
1342
+ 'struct_kgsl_cmdstream_readtimestamp_ctxtid',
1343
+ 'struct_kgsl_cmdwindow_write', 'struct_kgsl_command_object',
1344
+ 'struct_kgsl_command_syncpoint', 'struct_kgsl_device_constraint',
1345
+ 'struct_kgsl_device_constraint_pwrlevel',
1346
+ 'struct_kgsl_device_getproperty',
1347
+ 'struct_kgsl_device_waittimestamp',
1348
+ 'struct_kgsl_device_waittimestamp_ctxtid', 'struct_kgsl_devinfo',
1349
+ 'struct_kgsl_devmemstore', 'struct_kgsl_drawctxt_create',
1350
+ 'struct_kgsl_drawctxt_destroy',
1351
+ 'struct_kgsl_drawctxt_set_bin_base_offset',
1352
+ 'struct_kgsl_gmem_desc', 'struct_kgsl_gpmu_version',
1353
+ 'struct_kgsl_gpu_command', 'struct_kgsl_gpu_event_fence',
1354
+ 'struct_kgsl_gpu_event_timestamp', 'struct_kgsl_gpumem_alloc',
1355
+ 'struct_kgsl_gpumem_alloc_id', 'struct_kgsl_gpumem_free_id',
1356
+ 'struct_kgsl_gpumem_get_info', 'struct_kgsl_gpumem_sync_cache',
1357
+ 'struct_kgsl_gpumem_sync_cache_bulk', 'struct_kgsl_gpuobj_alloc',
1358
+ 'struct_kgsl_gpuobj_free', 'struct_kgsl_gpuobj_import',
1359
+ 'struct_kgsl_gpuobj_import_dma_buf',
1360
+ 'struct_kgsl_gpuobj_import_useraddr', 'struct_kgsl_gpuobj_info',
1361
+ 'struct_kgsl_gpuobj_set_info', 'struct_kgsl_gpuobj_sync',
1362
+ 'struct_kgsl_gpuobj_sync_obj', 'struct_kgsl_ibdesc',
1363
+ 'struct_kgsl_map_user_mem', 'struct_kgsl_perfcounter_get',
1364
+ 'struct_kgsl_perfcounter_put', 'struct_kgsl_perfcounter_query',
1365
+ 'struct_kgsl_perfcounter_read',
1366
+ 'struct_kgsl_perfcounter_read_group',
1367
+ 'struct_kgsl_preemption_counters_query',
1368
+ 'struct_kgsl_ringbuffer_issueibcmds', 'struct_kgsl_shadowprop',
1369
+ 'struct_kgsl_sharedmem_free', 'struct_kgsl_sharedmem_from_pmem',
1370
+ 'struct_kgsl_sharedmem_from_vmalloc',
1371
+ 'struct_kgsl_sp_generic_mem', 'struct_kgsl_submit_commands',
1372
+ 'struct_kgsl_syncsource_create',
1373
+ 'struct_kgsl_syncsource_create_fence',
1374
+ 'struct_kgsl_syncsource_destroy',
1375
+ 'struct_kgsl_syncsource_signal_fence',
1376
+ 'struct_kgsl_timestamp_event',
1377
+ 'struct_kgsl_timestamp_event_fence',
1378
+ 'struct_kgsl_timestamp_event_genlock',
1379
+ 'struct_kgsl_ucode_version', 'struct_kgsl_version', 'uint64_t']
1380
+ def KGSL_CONTEXT_PRIORITY(val): return (val << KGSL_CONTEXT_PRIORITY_SHIFT) & KGSL_CONTEXT_PRIORITY_MASK
1381
+ def KGSL_CONTEXT_PREEMPT_STYLE(val): return (val << KGSL_CONTEXT_PREEMPT_STYLE_SHIFT) & KGSL_CONTEXT_PREEMPT_STYLE_MASK
1382
+ def KGSL_CONTEXT_TYPE(val): return (val << KGSL_CONTEXT_TYPE_SHIFT) & KGSL_CONTEXT_TYPE_MASK
1383
+ def KGSL_CACHEMODE(val): return (val << KGSL_CACHEMODE_SHIFT) & KGSL_CACHEMODE_MASK
1384
+ def KGSL_MEMTYPE(val): return (val << KGSL_MEMTYPE_SHIFT) & KGSL_MEMTYPE_MASK
1385
+ def KGSL_MEMALIGN(val): return (val << KGSL_MEMALIGN_SHIFT) & KGSL_MEMALIGN_MASK
1386
+ def KGSL_MEMFLAGS_USERMEM(val): return (val << KGSL_MEMFLAGS_USERMEM_SHIFT) & KGSL_MEMFLAGS_USERMEM_MASK