mirror of
https://github.com/firestar5683/StarPilot.git
synced 2026-11-12 07:23:45 +08:00
22a8575199
Keep official openpilot ancestry and dependency licenses. Store resources directly in Git, remove LFS setup requirements, and leave the downloadable big model outside the source tree.
1038 lines
30 KiB
Python
1038 lines
30 KiB
Python
# type: ignore
|
|
# -*- coding: utf-8 -*-
|
|
#
|
|
# TARGET arch is: []
|
|
# WORD_SIZE is: 8
|
|
# POINTER_SIZE is: 8
|
|
# LONGDOUBLE_SIZE is: 16
|
|
#
|
|
import ctypes
|
|
|
|
|
|
class AsDictMixin:
|
|
import sys
|
|
if sys.version_info >= (3, 14): _layout_ = 'ms'
|
|
@classmethod
|
|
def as_dict(cls, self):
|
|
result = {}
|
|
if not isinstance(self, AsDictMixin):
|
|
# not a structure, assume it's already a python object
|
|
return self
|
|
if not hasattr(cls, "_fields_"):
|
|
return result
|
|
# sys.version_info >= (3, 5)
|
|
# for (field, *_) in cls._fields_: # noqa
|
|
for field_tuple in cls._fields_: # noqa
|
|
field = field_tuple[0]
|
|
if field.startswith('PADDING_'):
|
|
continue
|
|
value = getattr(self, field)
|
|
type_ = type(value)
|
|
if hasattr(value, "_length_") and hasattr(value, "_type_"):
|
|
# array
|
|
if not hasattr(type_, "as_dict"):
|
|
value = [v for v in value]
|
|
else:
|
|
type_ = type_._type_
|
|
value = [type_.as_dict(v) for v in value]
|
|
elif hasattr(value, "contents") and hasattr(value, "_type_"):
|
|
# pointer
|
|
try:
|
|
if not hasattr(type_, "as_dict"):
|
|
value = value.contents
|
|
else:
|
|
type_ = type_._type_
|
|
value = type_.as_dict(value.contents)
|
|
except ValueError:
|
|
# nullptr
|
|
value = None
|
|
elif isinstance(value, AsDictMixin):
|
|
# other structure
|
|
value = type_.as_dict(value)
|
|
result[field] = value
|
|
return result
|
|
|
|
|
|
class Structure(ctypes.Structure, AsDictMixin):
|
|
|
|
def __init__(self, *args, **kwds):
|
|
# We don't want to use positional arguments fill PADDING_* fields
|
|
|
|
args = dict(zip(self.__class__._field_names_(), args))
|
|
args.update(kwds)
|
|
super(Structure, self).__init__(**args)
|
|
|
|
@classmethod
|
|
def _field_names_(cls):
|
|
if hasattr(cls, '_fields_'):
|
|
return (f[0] for f in cls._fields_ if not f[0].startswith('PADDING'))
|
|
else:
|
|
return ()
|
|
|
|
@classmethod
|
|
def get_type(cls, field):
|
|
for f in cls._fields_:
|
|
if f[0] == field:
|
|
return f[1]
|
|
return None
|
|
|
|
@classmethod
|
|
def bind(cls, bound_fields):
|
|
fields = {}
|
|
for name, type_ in cls._fields_:
|
|
if hasattr(type_, "restype"):
|
|
if name in bound_fields:
|
|
if bound_fields[name] is None:
|
|
fields[name] = type_()
|
|
else:
|
|
# use a closure to capture the callback from the loop scope
|
|
fields[name] = (
|
|
type_((lambda callback: lambda *args: callback(*args))(
|
|
bound_fields[name]))
|
|
)
|
|
del bound_fields[name]
|
|
else:
|
|
# default callback implementation (does nothing)
|
|
try:
|
|
default_ = type_(0).restype().value
|
|
except TypeError:
|
|
default_ = None
|
|
fields[name] = type_((
|
|
lambda default_: lambda *args: default_)(default_))
|
|
else:
|
|
# not a callback function, use default initialization
|
|
if name in bound_fields:
|
|
fields[name] = bound_fields[name]
|
|
del bound_fields[name]
|
|
else:
|
|
fields[name] = type_()
|
|
if len(bound_fields) != 0:
|
|
raise ValueError(
|
|
"Cannot bind the following unknown callback(s) {}.{}".format(
|
|
cls.__name__, bound_fields.keys()
|
|
))
|
|
return cls(**fields)
|
|
|
|
|
|
class Union(ctypes.Union, AsDictMixin):
|
|
pass
|
|
|
|
|
|
|
|
c_int128 = ctypes.c_ubyte*16
|
|
c_uint128 = c_int128
|
|
void = None
|
|
if ctypes.sizeof(ctypes.c_longdouble) == 16:
|
|
c_long_double_t = ctypes.c_longdouble
|
|
else:
|
|
c_long_double_t = ctypes.c_ubyte*16
|
|
|
|
|
|
|
|
|
|
# values for enumeration 'kgsl_user_mem_type'
|
|
kgsl_user_mem_type__enumvalues = {
|
|
0: 'KGSL_USER_MEM_TYPE_PMEM',
|
|
1: 'KGSL_USER_MEM_TYPE_ASHMEM',
|
|
2: 'KGSL_USER_MEM_TYPE_ADDR',
|
|
3: 'KGSL_USER_MEM_TYPE_ION',
|
|
3: 'KGSL_USER_MEM_TYPE_DMABUF',
|
|
7: 'KGSL_USER_MEM_TYPE_MAX',
|
|
}
|
|
KGSL_USER_MEM_TYPE_PMEM = 0
|
|
KGSL_USER_MEM_TYPE_ASHMEM = 1
|
|
KGSL_USER_MEM_TYPE_ADDR = 2
|
|
KGSL_USER_MEM_TYPE_ION = 3
|
|
KGSL_USER_MEM_TYPE_DMABUF = 3
|
|
KGSL_USER_MEM_TYPE_MAX = 7
|
|
kgsl_user_mem_type = ctypes.c_uint32 # enum
|
|
|
|
# values for enumeration 'kgsl_ctx_reset_stat'
|
|
kgsl_ctx_reset_stat__enumvalues = {
|
|
0: 'KGSL_CTX_STAT_NO_ERROR',
|
|
1: 'KGSL_CTX_STAT_GUILTY_CONTEXT_RESET_EXT',
|
|
2: 'KGSL_CTX_STAT_INNOCENT_CONTEXT_RESET_EXT',
|
|
3: 'KGSL_CTX_STAT_UNKNOWN_CONTEXT_RESET_EXT',
|
|
}
|
|
KGSL_CTX_STAT_NO_ERROR = 0
|
|
KGSL_CTX_STAT_GUILTY_CONTEXT_RESET_EXT = 1
|
|
KGSL_CTX_STAT_INNOCENT_CONTEXT_RESET_EXT = 2
|
|
KGSL_CTX_STAT_UNKNOWN_CONTEXT_RESET_EXT = 3
|
|
kgsl_ctx_reset_stat = ctypes.c_uint32 # enum
|
|
|
|
# values for enumeration 'kgsl_deviceid'
|
|
kgsl_deviceid__enumvalues = {
|
|
0: 'KGSL_DEVICE_3D0',
|
|
1: 'KGSL_DEVICE_MAX',
|
|
}
|
|
KGSL_DEVICE_3D0 = 0
|
|
KGSL_DEVICE_MAX = 1
|
|
kgsl_deviceid = ctypes.c_uint32 # enum
|
|
class struct_kgsl_devinfo(Structure):
|
|
pass
|
|
|
|
struct_kgsl_devinfo._pack_ = 1 # source:False
|
|
struct_kgsl_devinfo._fields_ = [
|
|
('device_id', ctypes.c_uint32),
|
|
('chip_id', ctypes.c_uint32),
|
|
('mmu_enabled', ctypes.c_uint32),
|
|
('PADDING_0', ctypes.c_ubyte * 4),
|
|
('gmem_gpubaseaddr', ctypes.c_uint64),
|
|
('gpu_id', ctypes.c_uint32),
|
|
('PADDING_1', ctypes.c_ubyte * 4),
|
|
('gmem_sizebytes', ctypes.c_uint64),
|
|
]
|
|
|
|
class struct_kgsl_devmemstore(Structure):
|
|
pass
|
|
|
|
struct_kgsl_devmemstore._pack_ = 1 # source:False
|
|
struct_kgsl_devmemstore._fields_ = [
|
|
('soptimestamp', ctypes.c_uint32),
|
|
('sbz', ctypes.c_uint32),
|
|
('eoptimestamp', ctypes.c_uint32),
|
|
('sbz2', ctypes.c_uint32),
|
|
('preempted', ctypes.c_uint32),
|
|
('sbz3', ctypes.c_uint32),
|
|
('ref_wait_ts', ctypes.c_uint32),
|
|
('sbz4', ctypes.c_uint32),
|
|
('current_context', ctypes.c_uint32),
|
|
('sbz5', ctypes.c_uint32),
|
|
]
|
|
|
|
|
|
# values for enumeration 'kgsl_timestamp_type'
|
|
kgsl_timestamp_type__enumvalues = {
|
|
1: 'KGSL_TIMESTAMP_CONSUMED',
|
|
2: 'KGSL_TIMESTAMP_RETIRED',
|
|
3: 'KGSL_TIMESTAMP_QUEUED',
|
|
}
|
|
KGSL_TIMESTAMP_CONSUMED = 1
|
|
KGSL_TIMESTAMP_RETIRED = 2
|
|
KGSL_TIMESTAMP_QUEUED = 3
|
|
kgsl_timestamp_type = ctypes.c_uint32 # enum
|
|
class struct_kgsl_shadowprop(Structure):
|
|
pass
|
|
|
|
struct_kgsl_shadowprop._pack_ = 1 # source:False
|
|
struct_kgsl_shadowprop._fields_ = [
|
|
('gpuaddr', ctypes.c_uint64),
|
|
('size', ctypes.c_uint64),
|
|
('flags', ctypes.c_uint32),
|
|
('PADDING_0', ctypes.c_ubyte * 4),
|
|
]
|
|
|
|
class struct_kgsl_version(Structure):
|
|
pass
|
|
|
|
struct_kgsl_version._pack_ = 1 # source:False
|
|
struct_kgsl_version._fields_ = [
|
|
('drv_major', ctypes.c_uint32),
|
|
('drv_minor', ctypes.c_uint32),
|
|
('dev_major', ctypes.c_uint32),
|
|
('dev_minor', ctypes.c_uint32),
|
|
]
|
|
|
|
class struct_kgsl_sp_generic_mem(Structure):
|
|
pass
|
|
|
|
struct_kgsl_sp_generic_mem._pack_ = 1 # source:False
|
|
struct_kgsl_sp_generic_mem._fields_ = [
|
|
('local', ctypes.c_uint64),
|
|
('pvt', ctypes.c_uint64),
|
|
]
|
|
|
|
class struct_kgsl_ucode_version(Structure):
|
|
pass
|
|
|
|
struct_kgsl_ucode_version._pack_ = 1 # source:False
|
|
struct_kgsl_ucode_version._fields_ = [
|
|
('pfp', ctypes.c_uint32),
|
|
('pm4', ctypes.c_uint32),
|
|
]
|
|
|
|
class struct_kgsl_gpmu_version(Structure):
|
|
pass
|
|
|
|
struct_kgsl_gpmu_version._pack_ = 1 # source:False
|
|
struct_kgsl_gpmu_version._fields_ = [
|
|
('major', ctypes.c_uint32),
|
|
('minor', ctypes.c_uint32),
|
|
('features', ctypes.c_uint32),
|
|
]
|
|
|
|
class struct_kgsl_ibdesc(Structure):
|
|
pass
|
|
|
|
struct_kgsl_ibdesc._pack_ = 1 # source:False
|
|
struct_kgsl_ibdesc._fields_ = [
|
|
('gpuaddr', ctypes.c_uint64),
|
|
('__pad', ctypes.c_uint64),
|
|
('sizedwords', ctypes.c_uint64),
|
|
('ctrl', ctypes.c_uint32),
|
|
('PADDING_0', ctypes.c_ubyte * 4),
|
|
]
|
|
|
|
class struct_kgsl_cmdbatch_profiling_buffer(Structure):
|
|
pass
|
|
|
|
struct_kgsl_cmdbatch_profiling_buffer._pack_ = 1 # source:False
|
|
struct_kgsl_cmdbatch_profiling_buffer._fields_ = [
|
|
('wall_clock_s', ctypes.c_uint64),
|
|
('wall_clock_ns', ctypes.c_uint64),
|
|
('gpu_ticks_queued', ctypes.c_uint64),
|
|
('gpu_ticks_submitted', ctypes.c_uint64),
|
|
('gpu_ticks_retired', ctypes.c_uint64),
|
|
]
|
|
|
|
class struct_kgsl_device_getproperty(Structure):
|
|
pass
|
|
|
|
struct_kgsl_device_getproperty._pack_ = 1 # source:False
|
|
struct_kgsl_device_getproperty._fields_ = [
|
|
('type', ctypes.c_uint32),
|
|
('PADDING_0', ctypes.c_ubyte * 4),
|
|
('value', ctypes.POINTER(None)),
|
|
('sizebytes', ctypes.c_uint64),
|
|
]
|
|
|
|
class struct_kgsl_device_waittimestamp(Structure):
|
|
pass
|
|
|
|
struct_kgsl_device_waittimestamp._pack_ = 1 # source:False
|
|
struct_kgsl_device_waittimestamp._fields_ = [
|
|
('timestamp', ctypes.c_uint32),
|
|
('timeout', ctypes.c_uint32),
|
|
]
|
|
|
|
class struct_kgsl_device_waittimestamp_ctxtid(Structure):
|
|
pass
|
|
|
|
struct_kgsl_device_waittimestamp_ctxtid._pack_ = 1 # source:False
|
|
struct_kgsl_device_waittimestamp_ctxtid._fields_ = [
|
|
('context_id', ctypes.c_uint32),
|
|
('timestamp', ctypes.c_uint32),
|
|
('timeout', ctypes.c_uint32),
|
|
]
|
|
|
|
class struct_kgsl_ringbuffer_issueibcmds(Structure):
|
|
pass
|
|
|
|
struct_kgsl_ringbuffer_issueibcmds._pack_ = 1 # source:False
|
|
struct_kgsl_ringbuffer_issueibcmds._fields_ = [
|
|
('drawctxt_id', ctypes.c_uint32),
|
|
('PADDING_0', ctypes.c_ubyte * 4),
|
|
('ibdesc_addr', ctypes.c_uint64),
|
|
('numibs', ctypes.c_uint32),
|
|
('timestamp', ctypes.c_uint32),
|
|
('flags', ctypes.c_uint32),
|
|
('PADDING_1', ctypes.c_ubyte * 4),
|
|
]
|
|
|
|
class struct_kgsl_cmdstream_readtimestamp(Structure):
|
|
pass
|
|
|
|
struct_kgsl_cmdstream_readtimestamp._pack_ = 1 # source:False
|
|
struct_kgsl_cmdstream_readtimestamp._fields_ = [
|
|
('type', ctypes.c_uint32),
|
|
('timestamp', ctypes.c_uint32),
|
|
]
|
|
|
|
class struct_kgsl_cmdstream_freememontimestamp(Structure):
|
|
pass
|
|
|
|
struct_kgsl_cmdstream_freememontimestamp._pack_ = 1 # source:False
|
|
struct_kgsl_cmdstream_freememontimestamp._fields_ = [
|
|
('gpuaddr', ctypes.c_uint64),
|
|
('type', ctypes.c_uint32),
|
|
('timestamp', ctypes.c_uint32),
|
|
]
|
|
|
|
class struct_kgsl_drawctxt_create(Structure):
|
|
pass
|
|
|
|
struct_kgsl_drawctxt_create._pack_ = 1 # source:False
|
|
struct_kgsl_drawctxt_create._fields_ = [
|
|
('flags', ctypes.c_uint32),
|
|
('drawctxt_id', ctypes.c_uint32),
|
|
]
|
|
|
|
class struct_kgsl_drawctxt_destroy(Structure):
|
|
pass
|
|
|
|
struct_kgsl_drawctxt_destroy._pack_ = 1 # source:False
|
|
struct_kgsl_drawctxt_destroy._fields_ = [
|
|
('drawctxt_id', ctypes.c_uint32),
|
|
]
|
|
|
|
class struct_kgsl_map_user_mem(Structure):
|
|
pass
|
|
|
|
struct_kgsl_map_user_mem._pack_ = 1 # source:False
|
|
struct_kgsl_map_user_mem._fields_ = [
|
|
('fd', ctypes.c_int32),
|
|
('PADDING_0', ctypes.c_ubyte * 4),
|
|
('gpuaddr', ctypes.c_uint64),
|
|
('len', ctypes.c_uint64),
|
|
('offset', ctypes.c_uint64),
|
|
('hostptr', ctypes.c_uint64),
|
|
('memtype', kgsl_user_mem_type),
|
|
('flags', ctypes.c_uint32),
|
|
]
|
|
|
|
class struct_kgsl_cmdstream_readtimestamp_ctxtid(Structure):
|
|
pass
|
|
|
|
struct_kgsl_cmdstream_readtimestamp_ctxtid._pack_ = 1 # source:False
|
|
struct_kgsl_cmdstream_readtimestamp_ctxtid._fields_ = [
|
|
('context_id', ctypes.c_uint32),
|
|
('type', ctypes.c_uint32),
|
|
('timestamp', ctypes.c_uint32),
|
|
]
|
|
|
|
class struct_kgsl_cmdstream_freememontimestamp_ctxtid(Structure):
|
|
pass
|
|
|
|
struct_kgsl_cmdstream_freememontimestamp_ctxtid._pack_ = 1 # source:False
|
|
struct_kgsl_cmdstream_freememontimestamp_ctxtid._fields_ = [
|
|
('context_id', ctypes.c_uint32),
|
|
('PADDING_0', ctypes.c_ubyte * 4),
|
|
('gpuaddr', ctypes.c_uint64),
|
|
('type', ctypes.c_uint32),
|
|
('timestamp', ctypes.c_uint32),
|
|
]
|
|
|
|
class struct_kgsl_sharedmem_from_pmem(Structure):
|
|
pass
|
|
|
|
struct_kgsl_sharedmem_from_pmem._pack_ = 1 # source:False
|
|
struct_kgsl_sharedmem_from_pmem._fields_ = [
|
|
('pmem_fd', ctypes.c_int32),
|
|
('PADDING_0', ctypes.c_ubyte * 4),
|
|
('gpuaddr', ctypes.c_uint64),
|
|
('len', ctypes.c_uint32),
|
|
('offset', ctypes.c_uint32),
|
|
]
|
|
|
|
class struct_kgsl_sharedmem_free(Structure):
|
|
pass
|
|
|
|
struct_kgsl_sharedmem_free._pack_ = 1 # source:False
|
|
struct_kgsl_sharedmem_free._fields_ = [
|
|
('gpuaddr', ctypes.c_uint64),
|
|
]
|
|
|
|
class struct_kgsl_cff_user_event(Structure):
|
|
pass
|
|
|
|
struct_kgsl_cff_user_event._pack_ = 1 # source:False
|
|
struct_kgsl_cff_user_event._fields_ = [
|
|
('cff_opcode', ctypes.c_ubyte),
|
|
('PADDING_0', ctypes.c_ubyte * 3),
|
|
('op1', ctypes.c_uint32),
|
|
('op2', ctypes.c_uint32),
|
|
('op3', ctypes.c_uint32),
|
|
('op4', ctypes.c_uint32),
|
|
('op5', ctypes.c_uint32),
|
|
('__pad', ctypes.c_uint32 * 2),
|
|
]
|
|
|
|
class struct_kgsl_gmem_desc(Structure):
|
|
pass
|
|
|
|
struct_kgsl_gmem_desc._pack_ = 1 # source:False
|
|
struct_kgsl_gmem_desc._fields_ = [
|
|
('x', ctypes.c_uint32),
|
|
('y', ctypes.c_uint32),
|
|
('width', ctypes.c_uint32),
|
|
('height', ctypes.c_uint32),
|
|
('pitch', ctypes.c_uint32),
|
|
]
|
|
|
|
class struct_kgsl_buffer_desc(Structure):
|
|
pass
|
|
|
|
struct_kgsl_buffer_desc._pack_ = 1 # source:False
|
|
struct_kgsl_buffer_desc._fields_ = [
|
|
('hostptr', ctypes.POINTER(None)),
|
|
('gpuaddr', ctypes.c_uint64),
|
|
('size', ctypes.c_int32),
|
|
('format', ctypes.c_uint32),
|
|
('pitch', ctypes.c_uint32),
|
|
('enabled', ctypes.c_uint32),
|
|
]
|
|
|
|
class struct_kgsl_bind_gmem_shadow(Structure):
|
|
pass
|
|
|
|
struct_kgsl_bind_gmem_shadow._pack_ = 1 # source:False
|
|
struct_kgsl_bind_gmem_shadow._fields_ = [
|
|
('drawctxt_id', ctypes.c_uint32),
|
|
('gmem_desc', struct_kgsl_gmem_desc),
|
|
('shadow_x', ctypes.c_uint32),
|
|
('shadow_y', ctypes.c_uint32),
|
|
('shadow_buffer', struct_kgsl_buffer_desc),
|
|
('buffer_id', ctypes.c_uint32),
|
|
('PADDING_0', ctypes.c_ubyte * 4),
|
|
]
|
|
|
|
class struct_kgsl_sharedmem_from_vmalloc(Structure):
|
|
pass
|
|
|
|
struct_kgsl_sharedmem_from_vmalloc._pack_ = 1 # source:False
|
|
struct_kgsl_sharedmem_from_vmalloc._fields_ = [
|
|
('gpuaddr', ctypes.c_uint64),
|
|
('hostptr', ctypes.c_uint32),
|
|
('flags', ctypes.c_uint32),
|
|
]
|
|
|
|
class struct_kgsl_drawctxt_set_bin_base_offset(Structure):
|
|
pass
|
|
|
|
struct_kgsl_drawctxt_set_bin_base_offset._pack_ = 1 # source:False
|
|
struct_kgsl_drawctxt_set_bin_base_offset._fields_ = [
|
|
('drawctxt_id', ctypes.c_uint32),
|
|
('offset', ctypes.c_uint32),
|
|
]
|
|
|
|
|
|
# values for enumeration 'kgsl_cmdwindow_type'
|
|
kgsl_cmdwindow_type__enumvalues = {
|
|
0: 'KGSL_CMDWINDOW_MIN',
|
|
0: 'KGSL_CMDWINDOW_2D',
|
|
1: 'KGSL_CMDWINDOW_3D',
|
|
2: 'KGSL_CMDWINDOW_MMU',
|
|
255: 'KGSL_CMDWINDOW_ARBITER',
|
|
255: 'KGSL_CMDWINDOW_MAX',
|
|
}
|
|
KGSL_CMDWINDOW_MIN = 0
|
|
KGSL_CMDWINDOW_2D = 0
|
|
KGSL_CMDWINDOW_3D = 1
|
|
KGSL_CMDWINDOW_MMU = 2
|
|
KGSL_CMDWINDOW_ARBITER = 255
|
|
KGSL_CMDWINDOW_MAX = 255
|
|
kgsl_cmdwindow_type = ctypes.c_uint32 # enum
|
|
class struct_kgsl_cmdwindow_write(Structure):
|
|
pass
|
|
|
|
struct_kgsl_cmdwindow_write._pack_ = 1 # source:False
|
|
struct_kgsl_cmdwindow_write._fields_ = [
|
|
('target', kgsl_cmdwindow_type),
|
|
('addr', ctypes.c_uint32),
|
|
('data', ctypes.c_uint32),
|
|
]
|
|
|
|
class struct_kgsl_gpumem_alloc(Structure):
|
|
pass
|
|
|
|
struct_kgsl_gpumem_alloc._pack_ = 1 # source:False
|
|
struct_kgsl_gpumem_alloc._fields_ = [
|
|
('gpuaddr', ctypes.c_uint64),
|
|
('size', ctypes.c_uint64),
|
|
('flags', ctypes.c_uint32),
|
|
('PADDING_0', ctypes.c_ubyte * 4),
|
|
]
|
|
|
|
class struct_kgsl_cff_syncmem(Structure):
|
|
pass
|
|
|
|
struct_kgsl_cff_syncmem._pack_ = 1 # source:False
|
|
struct_kgsl_cff_syncmem._fields_ = [
|
|
('gpuaddr', ctypes.c_uint64),
|
|
('len', ctypes.c_uint64),
|
|
('__pad', ctypes.c_uint32 * 2),
|
|
]
|
|
|
|
class struct_kgsl_timestamp_event(Structure):
|
|
pass
|
|
|
|
struct_kgsl_timestamp_event._pack_ = 1 # source:False
|
|
struct_kgsl_timestamp_event._fields_ = [
|
|
('type', ctypes.c_int32),
|
|
('timestamp', ctypes.c_uint32),
|
|
('context_id', ctypes.c_uint32),
|
|
('PADDING_0', ctypes.c_ubyte * 4),
|
|
('priv', ctypes.POINTER(None)),
|
|
('len', ctypes.c_uint64),
|
|
]
|
|
|
|
class struct_kgsl_timestamp_event_genlock(Structure):
|
|
pass
|
|
|
|
struct_kgsl_timestamp_event_genlock._pack_ = 1 # source:False
|
|
struct_kgsl_timestamp_event_genlock._fields_ = [
|
|
('handle', ctypes.c_int32),
|
|
]
|
|
|
|
class struct_kgsl_timestamp_event_fence(Structure):
|
|
pass
|
|
|
|
struct_kgsl_timestamp_event_fence._pack_ = 1 # source:False
|
|
struct_kgsl_timestamp_event_fence._fields_ = [
|
|
('fence_fd', ctypes.c_int32),
|
|
]
|
|
|
|
class struct_kgsl_gpumem_alloc_id(Structure):
|
|
pass
|
|
|
|
struct_kgsl_gpumem_alloc_id._pack_ = 1 # source:False
|
|
struct_kgsl_gpumem_alloc_id._fields_ = [
|
|
('id', ctypes.c_uint32),
|
|
('flags', ctypes.c_uint32),
|
|
('size', ctypes.c_uint64),
|
|
('mmapsize', ctypes.c_uint64),
|
|
('gpuaddr', ctypes.c_uint64),
|
|
('__pad', ctypes.c_uint64 * 2),
|
|
]
|
|
|
|
class struct_kgsl_gpumem_free_id(Structure):
|
|
pass
|
|
|
|
struct_kgsl_gpumem_free_id._pack_ = 1 # source:False
|
|
struct_kgsl_gpumem_free_id._fields_ = [
|
|
('id', ctypes.c_uint32),
|
|
('__pad', ctypes.c_uint32),
|
|
]
|
|
|
|
class struct_kgsl_gpumem_get_info(Structure):
|
|
pass
|
|
|
|
struct_kgsl_gpumem_get_info._pack_ = 1 # source:False
|
|
struct_kgsl_gpumem_get_info._fields_ = [
|
|
('gpuaddr', ctypes.c_uint64),
|
|
('id', ctypes.c_uint32),
|
|
('flags', ctypes.c_uint32),
|
|
('size', ctypes.c_uint64),
|
|
('mmapsize', ctypes.c_uint64),
|
|
('useraddr', ctypes.c_uint64),
|
|
('__pad', ctypes.c_uint64 * 4),
|
|
]
|
|
|
|
class struct_kgsl_gpumem_sync_cache(Structure):
|
|
pass
|
|
|
|
struct_kgsl_gpumem_sync_cache._pack_ = 1 # source:False
|
|
struct_kgsl_gpumem_sync_cache._fields_ = [
|
|
('gpuaddr', ctypes.c_uint64),
|
|
('id', ctypes.c_uint32),
|
|
('op', ctypes.c_uint32),
|
|
('offset', ctypes.c_uint64),
|
|
('length', ctypes.c_uint64),
|
|
]
|
|
|
|
class struct_kgsl_perfcounter_get(Structure):
|
|
pass
|
|
|
|
struct_kgsl_perfcounter_get._pack_ = 1 # source:False
|
|
struct_kgsl_perfcounter_get._fields_ = [
|
|
('groupid', ctypes.c_uint32),
|
|
('countable', ctypes.c_uint32),
|
|
('offset', ctypes.c_uint32),
|
|
('offset_hi', ctypes.c_uint32),
|
|
('__pad', ctypes.c_uint32),
|
|
]
|
|
|
|
class struct_kgsl_perfcounter_put(Structure):
|
|
pass
|
|
|
|
struct_kgsl_perfcounter_put._pack_ = 1 # source:False
|
|
struct_kgsl_perfcounter_put._fields_ = [
|
|
('groupid', ctypes.c_uint32),
|
|
('countable', ctypes.c_uint32),
|
|
('__pad', ctypes.c_uint32 * 2),
|
|
]
|
|
|
|
class struct_kgsl_perfcounter_query(Structure):
|
|
pass
|
|
|
|
struct_kgsl_perfcounter_query._pack_ = 1 # source:False
|
|
struct_kgsl_perfcounter_query._fields_ = [
|
|
('groupid', ctypes.c_uint32),
|
|
('PADDING_0', ctypes.c_ubyte * 4),
|
|
('countables', ctypes.POINTER(ctypes.c_uint32)),
|
|
('count', ctypes.c_uint32),
|
|
('max_counters', ctypes.c_uint32),
|
|
('__pad', ctypes.c_uint32 * 2),
|
|
]
|
|
|
|
class struct_kgsl_perfcounter_read_group(Structure):
|
|
pass
|
|
|
|
struct_kgsl_perfcounter_read_group._pack_ = 1 # source:False
|
|
struct_kgsl_perfcounter_read_group._fields_ = [
|
|
('groupid', ctypes.c_uint32),
|
|
('countable', ctypes.c_uint32),
|
|
('value', ctypes.c_uint64),
|
|
]
|
|
|
|
class struct_kgsl_perfcounter_read(Structure):
|
|
pass
|
|
|
|
struct_kgsl_perfcounter_read._pack_ = 1 # source:False
|
|
struct_kgsl_perfcounter_read._fields_ = [
|
|
('reads', ctypes.POINTER(struct_kgsl_perfcounter_read_group)),
|
|
('count', ctypes.c_uint32),
|
|
('__pad', ctypes.c_uint32 * 2),
|
|
('PADDING_0', ctypes.c_ubyte * 4),
|
|
]
|
|
|
|
class struct_kgsl_gpumem_sync_cache_bulk(Structure):
|
|
pass
|
|
|
|
struct_kgsl_gpumem_sync_cache_bulk._pack_ = 1 # source:False
|
|
struct_kgsl_gpumem_sync_cache_bulk._fields_ = [
|
|
('id_list', ctypes.POINTER(ctypes.c_uint32)),
|
|
('count', ctypes.c_uint32),
|
|
('op', ctypes.c_uint32),
|
|
('__pad', ctypes.c_uint32 * 2),
|
|
]
|
|
|
|
class struct_kgsl_cmd_syncpoint_timestamp(Structure):
|
|
pass
|
|
|
|
struct_kgsl_cmd_syncpoint_timestamp._pack_ = 1 # source:False
|
|
struct_kgsl_cmd_syncpoint_timestamp._fields_ = [
|
|
('context_id', ctypes.c_uint32),
|
|
('timestamp', ctypes.c_uint32),
|
|
]
|
|
|
|
class struct_kgsl_cmd_syncpoint_fence(Structure):
|
|
pass
|
|
|
|
struct_kgsl_cmd_syncpoint_fence._pack_ = 1 # source:False
|
|
struct_kgsl_cmd_syncpoint_fence._fields_ = [
|
|
('fd', ctypes.c_int32),
|
|
]
|
|
|
|
class struct_kgsl_cmd_syncpoint(Structure):
|
|
pass
|
|
|
|
struct_kgsl_cmd_syncpoint._pack_ = 1 # source:False
|
|
struct_kgsl_cmd_syncpoint._fields_ = [
|
|
('type', ctypes.c_int32),
|
|
('PADDING_0', ctypes.c_ubyte * 4),
|
|
('priv', ctypes.POINTER(None)),
|
|
('size', ctypes.c_uint64),
|
|
]
|
|
|
|
class struct_kgsl_submit_commands(Structure):
|
|
pass
|
|
|
|
struct_kgsl_submit_commands._pack_ = 1 # source:False
|
|
struct_kgsl_submit_commands._fields_ = [
|
|
('context_id', ctypes.c_uint32),
|
|
('flags', ctypes.c_uint32),
|
|
('cmdlist', ctypes.POINTER(struct_kgsl_ibdesc)),
|
|
('numcmds', ctypes.c_uint32),
|
|
('PADDING_0', ctypes.c_ubyte * 4),
|
|
('synclist', ctypes.POINTER(struct_kgsl_cmd_syncpoint)),
|
|
('numsyncs', ctypes.c_uint32),
|
|
('timestamp', ctypes.c_uint32),
|
|
('__pad', ctypes.c_uint32 * 4),
|
|
]
|
|
|
|
class struct_kgsl_device_constraint(Structure):
|
|
pass
|
|
|
|
struct_kgsl_device_constraint._pack_ = 1 # source:False
|
|
struct_kgsl_device_constraint._fields_ = [
|
|
('type', ctypes.c_uint32),
|
|
('context_id', ctypes.c_uint32),
|
|
('data', ctypes.POINTER(None)),
|
|
('size', ctypes.c_uint64),
|
|
]
|
|
|
|
class struct_kgsl_device_constraint_pwrlevel(Structure):
|
|
pass
|
|
|
|
struct_kgsl_device_constraint_pwrlevel._pack_ = 1 # source:False
|
|
struct_kgsl_device_constraint_pwrlevel._fields_ = [
|
|
('level', ctypes.c_uint32),
|
|
]
|
|
|
|
class struct_kgsl_syncsource_create(Structure):
|
|
pass
|
|
|
|
struct_kgsl_syncsource_create._pack_ = 1 # source:False
|
|
struct_kgsl_syncsource_create._fields_ = [
|
|
('id', ctypes.c_uint32),
|
|
('__pad', ctypes.c_uint32 * 3),
|
|
]
|
|
|
|
class struct_kgsl_syncsource_destroy(Structure):
|
|
pass
|
|
|
|
struct_kgsl_syncsource_destroy._pack_ = 1 # source:False
|
|
struct_kgsl_syncsource_destroy._fields_ = [
|
|
('id', ctypes.c_uint32),
|
|
('__pad', ctypes.c_uint32 * 3),
|
|
]
|
|
|
|
class struct_kgsl_syncsource_create_fence(Structure):
|
|
pass
|
|
|
|
struct_kgsl_syncsource_create_fence._pack_ = 1 # source:False
|
|
struct_kgsl_syncsource_create_fence._fields_ = [
|
|
('id', ctypes.c_uint32),
|
|
('fence_fd', ctypes.c_int32),
|
|
('__pad', ctypes.c_uint32 * 4),
|
|
]
|
|
|
|
class struct_kgsl_syncsource_signal_fence(Structure):
|
|
pass
|
|
|
|
struct_kgsl_syncsource_signal_fence._pack_ = 1 # source:False
|
|
struct_kgsl_syncsource_signal_fence._fields_ = [
|
|
('id', ctypes.c_uint32),
|
|
('fence_fd', ctypes.c_int32),
|
|
('__pad', ctypes.c_uint32 * 4),
|
|
]
|
|
|
|
class struct_kgsl_cff_sync_gpuobj(Structure):
|
|
pass
|
|
|
|
struct_kgsl_cff_sync_gpuobj._pack_ = 1 # source:False
|
|
struct_kgsl_cff_sync_gpuobj._fields_ = [
|
|
('offset', ctypes.c_uint64),
|
|
('length', ctypes.c_uint64),
|
|
('id', ctypes.c_uint32),
|
|
('PADDING_0', ctypes.c_ubyte * 4),
|
|
]
|
|
|
|
class struct_kgsl_gpuobj_alloc(Structure):
|
|
pass
|
|
|
|
struct_kgsl_gpuobj_alloc._pack_ = 1 # source:False
|
|
struct_kgsl_gpuobj_alloc._fields_ = [
|
|
('size', ctypes.c_uint64),
|
|
('flags', ctypes.c_uint64),
|
|
('va_len', ctypes.c_uint64),
|
|
('mmapsize', ctypes.c_uint64),
|
|
('id', ctypes.c_uint32),
|
|
('metadata_len', ctypes.c_uint32),
|
|
('metadata', ctypes.c_uint64),
|
|
]
|
|
|
|
class struct_kgsl_gpuobj_free(Structure):
|
|
pass
|
|
|
|
struct_kgsl_gpuobj_free._pack_ = 1 # source:False
|
|
struct_kgsl_gpuobj_free._fields_ = [
|
|
('flags', ctypes.c_uint64),
|
|
('priv', ctypes.c_uint64),
|
|
('id', ctypes.c_uint32),
|
|
('type', ctypes.c_uint32),
|
|
('len', ctypes.c_uint32),
|
|
('PADDING_0', ctypes.c_ubyte * 4),
|
|
]
|
|
|
|
class struct_kgsl_gpu_event_timestamp(Structure):
|
|
pass
|
|
|
|
struct_kgsl_gpu_event_timestamp._pack_ = 1 # source:False
|
|
struct_kgsl_gpu_event_timestamp._fields_ = [
|
|
('context_id', ctypes.c_uint32),
|
|
('timestamp', ctypes.c_uint32),
|
|
]
|
|
|
|
class struct_kgsl_gpu_event_fence(Structure):
|
|
pass
|
|
|
|
struct_kgsl_gpu_event_fence._pack_ = 1 # source:False
|
|
struct_kgsl_gpu_event_fence._fields_ = [
|
|
('fd', ctypes.c_int32),
|
|
]
|
|
|
|
class struct_kgsl_gpuobj_info(Structure):
|
|
pass
|
|
|
|
struct_kgsl_gpuobj_info._pack_ = 1 # source:False
|
|
struct_kgsl_gpuobj_info._fields_ = [
|
|
('gpuaddr', ctypes.c_uint64),
|
|
('flags', ctypes.c_uint64),
|
|
('size', ctypes.c_uint64),
|
|
('va_len', ctypes.c_uint64),
|
|
('va_addr', ctypes.c_uint64),
|
|
('id', ctypes.c_uint32),
|
|
('PADDING_0', ctypes.c_ubyte * 4),
|
|
]
|
|
|
|
class struct_kgsl_gpuobj_import(Structure):
|
|
pass
|
|
|
|
struct_kgsl_gpuobj_import._pack_ = 1 # source:False
|
|
struct_kgsl_gpuobj_import._fields_ = [
|
|
('priv', ctypes.c_uint64),
|
|
('priv_len', ctypes.c_uint64),
|
|
('flags', ctypes.c_uint64),
|
|
('type', ctypes.c_uint32),
|
|
('id', ctypes.c_uint32),
|
|
]
|
|
|
|
class struct_kgsl_gpuobj_import_dma_buf(Structure):
|
|
pass
|
|
|
|
struct_kgsl_gpuobj_import_dma_buf._pack_ = 1 # source:False
|
|
struct_kgsl_gpuobj_import_dma_buf._fields_ = [
|
|
('fd', ctypes.c_int32),
|
|
]
|
|
|
|
class struct_kgsl_gpuobj_import_useraddr(Structure):
|
|
pass
|
|
|
|
struct_kgsl_gpuobj_import_useraddr._pack_ = 1 # source:False
|
|
struct_kgsl_gpuobj_import_useraddr._fields_ = [
|
|
('virtaddr', ctypes.c_uint64),
|
|
]
|
|
|
|
class struct_kgsl_gpuobj_sync_obj(Structure):
|
|
pass
|
|
|
|
struct_kgsl_gpuobj_sync_obj._pack_ = 1 # source:False
|
|
struct_kgsl_gpuobj_sync_obj._fields_ = [
|
|
('offset', ctypes.c_uint64),
|
|
('length', ctypes.c_uint64),
|
|
('id', ctypes.c_uint32),
|
|
('op', ctypes.c_uint32),
|
|
]
|
|
|
|
class struct_kgsl_gpuobj_sync(Structure):
|
|
pass
|
|
|
|
struct_kgsl_gpuobj_sync._pack_ = 1 # source:False
|
|
struct_kgsl_gpuobj_sync._fields_ = [
|
|
('objs', ctypes.c_uint64),
|
|
('obj_len', ctypes.c_uint32),
|
|
('count', ctypes.c_uint32),
|
|
]
|
|
|
|
class struct_kgsl_command_object(Structure):
|
|
pass
|
|
|
|
struct_kgsl_command_object._pack_ = 1 # source:False
|
|
struct_kgsl_command_object._fields_ = [
|
|
('offset', ctypes.c_uint64),
|
|
('gpuaddr', ctypes.c_uint64),
|
|
('size', ctypes.c_uint64),
|
|
('flags', ctypes.c_uint32),
|
|
('id', ctypes.c_uint32),
|
|
]
|
|
|
|
class struct_kgsl_command_syncpoint(Structure):
|
|
pass
|
|
|
|
struct_kgsl_command_syncpoint._pack_ = 1 # source:False
|
|
struct_kgsl_command_syncpoint._fields_ = [
|
|
('priv', ctypes.c_uint64),
|
|
('size', ctypes.c_uint64),
|
|
('type', ctypes.c_uint32),
|
|
('PADDING_0', ctypes.c_ubyte * 4),
|
|
]
|
|
|
|
class struct_kgsl_gpu_command(Structure):
|
|
pass
|
|
|
|
struct_kgsl_gpu_command._pack_ = 1 # source:False
|
|
struct_kgsl_gpu_command._fields_ = [
|
|
('flags', ctypes.c_uint64),
|
|
('cmdlist', ctypes.c_uint64),
|
|
('cmdsize', ctypes.c_uint32),
|
|
('numcmds', ctypes.c_uint32),
|
|
('objlist', ctypes.c_uint64),
|
|
('objsize', ctypes.c_uint32),
|
|
('numobjs', ctypes.c_uint32),
|
|
('synclist', ctypes.c_uint64),
|
|
('syncsize', ctypes.c_uint32),
|
|
('numsyncs', ctypes.c_uint32),
|
|
('context_id', ctypes.c_uint32),
|
|
('timestamp', ctypes.c_uint32),
|
|
]
|
|
|
|
class struct_kgsl_preemption_counters_query(Structure):
|
|
pass
|
|
|
|
struct_kgsl_preemption_counters_query._pack_ = 1 # source:False
|
|
struct_kgsl_preemption_counters_query._fields_ = [
|
|
('counters', ctypes.c_uint64),
|
|
('size_user', ctypes.c_uint32),
|
|
('size_priority_level', ctypes.c_uint32),
|
|
('max_priority_level', ctypes.c_uint32),
|
|
('PADDING_0', ctypes.c_ubyte * 4),
|
|
]
|
|
|
|
class struct_kgsl_gpuobj_set_info(Structure):
|
|
pass
|
|
|
|
struct_kgsl_gpuobj_set_info._pack_ = 1 # source:False
|
|
struct_kgsl_gpuobj_set_info._fields_ = [
|
|
('flags', ctypes.c_uint64),
|
|
('metadata', ctypes.c_uint64),
|
|
('id', ctypes.c_uint32),
|
|
('metadata_len', ctypes.c_uint32),
|
|
('type', ctypes.c_uint32),
|
|
('PADDING_0', ctypes.c_ubyte * 4),
|
|
]
|
|
|
|
__all__ = \
|
|
['KGSL_CMDWINDOW_2D', 'KGSL_CMDWINDOW_3D',
|
|
'KGSL_CMDWINDOW_ARBITER', 'KGSL_CMDWINDOW_MAX',
|
|
'KGSL_CMDWINDOW_MIN', 'KGSL_CMDWINDOW_MMU',
|
|
'KGSL_CTX_STAT_GUILTY_CONTEXT_RESET_EXT',
|
|
'KGSL_CTX_STAT_INNOCENT_CONTEXT_RESET_EXT',
|
|
'KGSL_CTX_STAT_NO_ERROR',
|
|
'KGSL_CTX_STAT_UNKNOWN_CONTEXT_RESET_EXT', 'KGSL_DEVICE_3D0',
|
|
'KGSL_DEVICE_MAX', 'KGSL_TIMESTAMP_CONSUMED',
|
|
'KGSL_TIMESTAMP_QUEUED', 'KGSL_TIMESTAMP_RETIRED',
|
|
'KGSL_USER_MEM_TYPE_ADDR', 'KGSL_USER_MEM_TYPE_ASHMEM',
|
|
'KGSL_USER_MEM_TYPE_DMABUF', 'KGSL_USER_MEM_TYPE_ION',
|
|
'KGSL_USER_MEM_TYPE_MAX', 'KGSL_USER_MEM_TYPE_PMEM',
|
|
'kgsl_cmdwindow_type', 'kgsl_ctx_reset_stat', 'kgsl_deviceid',
|
|
'kgsl_timestamp_type', 'kgsl_user_mem_type',
|
|
'struct_kgsl_bind_gmem_shadow', 'struct_kgsl_buffer_desc',
|
|
'struct_kgsl_cff_sync_gpuobj', 'struct_kgsl_cff_syncmem',
|
|
'struct_kgsl_cff_user_event', 'struct_kgsl_cmd_syncpoint',
|
|
'struct_kgsl_cmd_syncpoint_fence',
|
|
'struct_kgsl_cmd_syncpoint_timestamp',
|
|
'struct_kgsl_cmdbatch_profiling_buffer',
|
|
'struct_kgsl_cmdstream_freememontimestamp',
|
|
'struct_kgsl_cmdstream_freememontimestamp_ctxtid',
|
|
'struct_kgsl_cmdstream_readtimestamp',
|
|
'struct_kgsl_cmdstream_readtimestamp_ctxtid',
|
|
'struct_kgsl_cmdwindow_write', 'struct_kgsl_command_object',
|
|
'struct_kgsl_command_syncpoint', 'struct_kgsl_device_constraint',
|
|
'struct_kgsl_device_constraint_pwrlevel',
|
|
'struct_kgsl_device_getproperty',
|
|
'struct_kgsl_device_waittimestamp',
|
|
'struct_kgsl_device_waittimestamp_ctxtid', 'struct_kgsl_devinfo',
|
|
'struct_kgsl_devmemstore', 'struct_kgsl_drawctxt_create',
|
|
'struct_kgsl_drawctxt_destroy',
|
|
'struct_kgsl_drawctxt_set_bin_base_offset',
|
|
'struct_kgsl_gmem_desc', 'struct_kgsl_gpmu_version',
|
|
'struct_kgsl_gpu_command', 'struct_kgsl_gpu_event_fence',
|
|
'struct_kgsl_gpu_event_timestamp', 'struct_kgsl_gpumem_alloc',
|
|
'struct_kgsl_gpumem_alloc_id', 'struct_kgsl_gpumem_free_id',
|
|
'struct_kgsl_gpumem_get_info', 'struct_kgsl_gpumem_sync_cache',
|
|
'struct_kgsl_gpumem_sync_cache_bulk', 'struct_kgsl_gpuobj_alloc',
|
|
'struct_kgsl_gpuobj_free', 'struct_kgsl_gpuobj_import',
|
|
'struct_kgsl_gpuobj_import_dma_buf',
|
|
'struct_kgsl_gpuobj_import_useraddr', 'struct_kgsl_gpuobj_info',
|
|
'struct_kgsl_gpuobj_set_info', 'struct_kgsl_gpuobj_sync',
|
|
'struct_kgsl_gpuobj_sync_obj', 'struct_kgsl_ibdesc',
|
|
'struct_kgsl_map_user_mem', 'struct_kgsl_perfcounter_get',
|
|
'struct_kgsl_perfcounter_put', 'struct_kgsl_perfcounter_query',
|
|
'struct_kgsl_perfcounter_read',
|
|
'struct_kgsl_perfcounter_read_group',
|
|
'struct_kgsl_preemption_counters_query',
|
|
'struct_kgsl_ringbuffer_issueibcmds', 'struct_kgsl_shadowprop',
|
|
'struct_kgsl_sharedmem_free', 'struct_kgsl_sharedmem_from_pmem',
|
|
'struct_kgsl_sharedmem_from_vmalloc',
|
|
'struct_kgsl_sp_generic_mem', 'struct_kgsl_submit_commands',
|
|
'struct_kgsl_syncsource_create',
|
|
'struct_kgsl_syncsource_create_fence',
|
|
'struct_kgsl_syncsource_destroy',
|
|
'struct_kgsl_syncsource_signal_fence',
|
|
'struct_kgsl_timestamp_event',
|
|
'struct_kgsl_timestamp_event_fence',
|
|
'struct_kgsl_timestamp_event_genlock',
|
|
'struct_kgsl_ucode_version', 'struct_kgsl_version']
|