mirror of
https://github.com/firestar5683/StarPilot.git
synced 2026-07-16 23:02:07 +08:00
559 lines
27 KiB
Python
559 lines
27 KiB
Python
# mypy: disable-error-code="empty-body"
|
|
from __future__ import annotations
|
|
import ctypes
|
|
from typing import Literal, TypeAlias
|
|
from tinygrad.runtime.support.c import _IO, _IOW, _IOR, _IOWR
|
|
from tinygrad.runtime.support import c
|
|
ion_user_handle_t: TypeAlias = ctypes.c_int32
|
|
enum_ion_heap_type: dict[int, str] = {(ION_HEAP_TYPE_SYSTEM:=0): 'ION_HEAP_TYPE_SYSTEM', (ION_HEAP_TYPE_SYSTEM_CONTIG:=1): 'ION_HEAP_TYPE_SYSTEM_CONTIG', (ION_HEAP_TYPE_CARVEOUT:=2): 'ION_HEAP_TYPE_CARVEOUT', (ION_HEAP_TYPE_CHUNK:=3): 'ION_HEAP_TYPE_CHUNK', (ION_HEAP_TYPE_DMA:=4): 'ION_HEAP_TYPE_DMA', (ION_HEAP_TYPE_CUSTOM:=5): 'ION_HEAP_TYPE_CUSTOM', (ION_NUM_HEAPS:=16): 'ION_NUM_HEAPS'}
|
|
@c.record
|
|
class struct_ion_allocation_data(c.Struct):
|
|
SIZE = 32
|
|
len: int
|
|
align: int
|
|
heap_id_mask: int
|
|
flags: int
|
|
handle: int
|
|
size_t: TypeAlias = ctypes.c_uint64
|
|
struct_ion_allocation_data.register_fields([('len', size_t, 0), ('align', size_t, 8), ('heap_id_mask', ctypes.c_uint32, 16), ('flags', ctypes.c_uint32, 20), ('handle', ion_user_handle_t, 24)])
|
|
@c.record
|
|
class struct_ion_fd_data(c.Struct):
|
|
SIZE = 8
|
|
handle: int
|
|
fd: int
|
|
struct_ion_fd_data.register_fields([('handle', ion_user_handle_t, 0), ('fd', ctypes.c_int32, 4)])
|
|
@c.record
|
|
class struct_ion_handle_data(c.Struct):
|
|
SIZE = 4
|
|
handle: int
|
|
struct_ion_handle_data.register_fields([('handle', ion_user_handle_t, 0)])
|
|
@c.record
|
|
class struct_ion_custom_data(c.Struct):
|
|
SIZE = 16
|
|
cmd: int
|
|
arg: int
|
|
struct_ion_custom_data.register_fields([('cmd', ctypes.c_uint32, 0), ('arg', ctypes.c_uint64, 8)])
|
|
enum_msm_ion_heap_types: dict[int, str] = {(ION_HEAP_TYPE_MSM_START:=6): 'ION_HEAP_TYPE_MSM_START', (ION_HEAP_TYPE_SECURE_DMA:=6): 'ION_HEAP_TYPE_SECURE_DMA', (ION_HEAP_TYPE_SYSTEM_SECURE:=7): 'ION_HEAP_TYPE_SYSTEM_SECURE', (ION_HEAP_TYPE_HYP_CMA:=8): 'ION_HEAP_TYPE_HYP_CMA'}
|
|
enum_ion_heap_ids: dict[int, str] = {(INVALID_HEAP_ID:=-1): 'INVALID_HEAP_ID', (ION_CP_MM_HEAP_ID:=8): 'ION_CP_MM_HEAP_ID', (ION_SECURE_HEAP_ID:=9): 'ION_SECURE_HEAP_ID', (ION_SECURE_DISPLAY_HEAP_ID:=10): 'ION_SECURE_DISPLAY_HEAP_ID', (ION_CP_MFC_HEAP_ID:=12): 'ION_CP_MFC_HEAP_ID', (ION_CP_WB_HEAP_ID:=16): 'ION_CP_WB_HEAP_ID', (ION_CAMERA_HEAP_ID:=20): 'ION_CAMERA_HEAP_ID', (ION_SYSTEM_CONTIG_HEAP_ID:=21): 'ION_SYSTEM_CONTIG_HEAP_ID', (ION_ADSP_HEAP_ID:=22): 'ION_ADSP_HEAP_ID', (ION_PIL1_HEAP_ID:=23): 'ION_PIL1_HEAP_ID', (ION_SF_HEAP_ID:=24): 'ION_SF_HEAP_ID', (ION_SYSTEM_HEAP_ID:=25): 'ION_SYSTEM_HEAP_ID', (ION_PIL2_HEAP_ID:=26): 'ION_PIL2_HEAP_ID', (ION_QSECOM_HEAP_ID:=27): 'ION_QSECOM_HEAP_ID', (ION_AUDIO_HEAP_ID:=28): 'ION_AUDIO_HEAP_ID', (ION_MM_FIRMWARE_HEAP_ID:=29): 'ION_MM_FIRMWARE_HEAP_ID', (ION_HEAP_ID_RESERVED:=31): 'ION_HEAP_ID_RESERVED'}
|
|
enum_ion_fixed_position: dict[int, str] = {(NOT_FIXED:=0): 'NOT_FIXED', (FIXED_LOW:=1): 'FIXED_LOW', (FIXED_MIDDLE:=2): 'FIXED_MIDDLE', (FIXED_HIGH:=3): 'FIXED_HIGH'}
|
|
enum_cp_mem_usage: dict[int, str] = {(VIDEO_BITSTREAM:=1): 'VIDEO_BITSTREAM', (VIDEO_PIXEL:=2): 'VIDEO_PIXEL', (VIDEO_NONPIXEL:=3): 'VIDEO_NONPIXEL', (DISPLAY_SECURE_CP_USAGE:=4): 'DISPLAY_SECURE_CP_USAGE', (CAMERA_SECURE_CP_USAGE:=5): 'CAMERA_SECURE_CP_USAGE', (MAX_USAGE:=6): 'MAX_USAGE', (UNKNOWN:=2147483647): 'UNKNOWN'}
|
|
@c.record
|
|
class struct_ion_flush_data(c.Struct):
|
|
SIZE = 24
|
|
handle: int
|
|
fd: int
|
|
vaddr: ctypes.c_void_p
|
|
offset: int
|
|
length: int
|
|
struct_ion_flush_data.register_fields([('handle', ion_user_handle_t, 0), ('fd', ctypes.c_int32, 4), ('vaddr', ctypes.c_void_p, 8), ('offset', ctypes.c_uint32, 16), ('length', ctypes.c_uint32, 20)])
|
|
@c.record
|
|
class struct_ion_prefetch_regions(c.Struct):
|
|
SIZE = 24
|
|
vmid: int
|
|
sizes: c.POINTER[ctypes.c_uint64]
|
|
nr_sizes: int
|
|
struct_ion_prefetch_regions.register_fields([('vmid', ctypes.c_uint32, 0), ('sizes', c.POINTER[size_t], 8), ('nr_sizes', ctypes.c_uint32, 16)])
|
|
@c.record
|
|
class struct_ion_prefetch_data(c.Struct):
|
|
SIZE = 32
|
|
heap_id: int
|
|
len: int
|
|
regions: c.POINTER[struct_ion_prefetch_regions]
|
|
nr_regions: int
|
|
struct_ion_prefetch_data.register_fields([('heap_id', ctypes.c_int32, 0), ('len', ctypes.c_uint64, 8), ('regions', c.POINTER[struct_ion_prefetch_regions], 16), ('nr_regions', ctypes.c_uint32, 24)])
|
|
@c.record
|
|
class struct_remote_buf64(c.Struct):
|
|
SIZE = 16
|
|
pv: int
|
|
len: int
|
|
uint64_t: TypeAlias = ctypes.c_uint64
|
|
struct_remote_buf64.register_fields([('pv', uint64_t, 0), ('len', uint64_t, 8)])
|
|
@c.record
|
|
class struct_remote_dma_handle64(c.Struct):
|
|
SIZE = 12
|
|
fd: int
|
|
offset: int
|
|
len: int
|
|
uint32_t: TypeAlias = ctypes.c_uint32
|
|
struct_remote_dma_handle64.register_fields([('fd', ctypes.c_int32, 0), ('offset', uint32_t, 4), ('len', uint32_t, 8)])
|
|
@c.record
|
|
class union_remote_arg64(c.Struct):
|
|
SIZE = 16
|
|
buf: struct_remote_buf64
|
|
dma: struct_remote_dma_handle64
|
|
h: int
|
|
union_remote_arg64.register_fields([('buf', struct_remote_buf64, 0), ('dma', struct_remote_dma_handle64, 0), ('h', uint32_t, 0)])
|
|
@c.record
|
|
class struct_remote_buf(c.Struct):
|
|
SIZE = 16
|
|
pv: ctypes.c_void_p
|
|
len: int
|
|
struct_remote_buf.register_fields([('pv', ctypes.c_void_p, 0), ('len', size_t, 8)])
|
|
@c.record
|
|
class struct_remote_dma_handle(c.Struct):
|
|
SIZE = 8
|
|
fd: int
|
|
offset: int
|
|
struct_remote_dma_handle.register_fields([('fd', ctypes.c_int32, 0), ('offset', uint32_t, 4)])
|
|
@c.record
|
|
class union_remote_arg(c.Struct):
|
|
SIZE = 16
|
|
buf: struct_remote_buf
|
|
dma: struct_remote_dma_handle
|
|
h: int
|
|
union_remote_arg.register_fields([('buf', struct_remote_buf, 0), ('dma', struct_remote_dma_handle, 0), ('h', uint32_t, 0)])
|
|
@c.record
|
|
class struct_fastrpc_ioctl_invoke(c.Struct):
|
|
SIZE = 16
|
|
handle: int
|
|
sc: int
|
|
pra: c.POINTER[union_remote_arg]
|
|
struct_fastrpc_ioctl_invoke.register_fields([('handle', uint32_t, 0), ('sc', uint32_t, 4), ('pra', c.POINTER[union_remote_arg], 8)])
|
|
@c.record
|
|
class struct_fastrpc_ioctl_invoke_fd(c.Struct):
|
|
SIZE = 24
|
|
inv: struct_fastrpc_ioctl_invoke
|
|
fds: c.POINTER[ctypes.c_int32]
|
|
struct_fastrpc_ioctl_invoke_fd.register_fields([('inv', struct_fastrpc_ioctl_invoke, 0), ('fds', c.POINTER[ctypes.c_int32], 16)])
|
|
@c.record
|
|
class struct_fastrpc_ioctl_invoke_attrs(c.Struct):
|
|
SIZE = 32
|
|
inv: struct_fastrpc_ioctl_invoke
|
|
fds: c.POINTER[ctypes.c_int32]
|
|
attrs: c.POINTER[ctypes.c_uint32]
|
|
struct_fastrpc_ioctl_invoke_attrs.register_fields([('inv', struct_fastrpc_ioctl_invoke, 0), ('fds', c.POINTER[ctypes.c_int32], 16), ('attrs', c.POINTER[ctypes.c_uint32], 24)])
|
|
@c.record
|
|
class struct_fastrpc_ioctl_invoke_crc(c.Struct):
|
|
SIZE = 40
|
|
inv: struct_fastrpc_ioctl_invoke
|
|
fds: c.POINTER[ctypes.c_int32]
|
|
attrs: c.POINTER[ctypes.c_uint32]
|
|
crc: c.POINTER[ctypes.c_uint32]
|
|
struct_fastrpc_ioctl_invoke_crc.register_fields([('inv', struct_fastrpc_ioctl_invoke, 0), ('fds', c.POINTER[ctypes.c_int32], 16), ('attrs', c.POINTER[ctypes.c_uint32], 24), ('crc', c.POINTER[ctypes.c_uint32], 32)])
|
|
@c.record
|
|
class struct_fastrpc_ioctl_init(c.Struct):
|
|
SIZE = 40
|
|
flags: int
|
|
file: int
|
|
filelen: int
|
|
filefd: int
|
|
mem: int
|
|
memlen: int
|
|
memfd: int
|
|
uintptr_t: TypeAlias = ctypes.c_uint64
|
|
int32_t: TypeAlias = ctypes.c_int32
|
|
struct_fastrpc_ioctl_init.register_fields([('flags', uint32_t, 0), ('file', uintptr_t, 8), ('filelen', uint32_t, 16), ('filefd', int32_t, 20), ('mem', uintptr_t, 24), ('memlen', uint32_t, 32), ('memfd', int32_t, 36)])
|
|
@c.record
|
|
class struct_fastrpc_ioctl_init_attrs(c.Struct):
|
|
SIZE = 48
|
|
init: struct_fastrpc_ioctl_init
|
|
attrs: int
|
|
siglen: int
|
|
struct_fastrpc_ioctl_init_attrs.register_fields([('init', struct_fastrpc_ioctl_init, 0), ('attrs', ctypes.c_int32, 40), ('siglen', ctypes.c_uint32, 44)])
|
|
@c.record
|
|
class struct_fastrpc_ioctl_munmap(c.Struct):
|
|
SIZE = 16
|
|
vaddrout: int
|
|
size: int
|
|
struct_fastrpc_ioctl_munmap.register_fields([('vaddrout', uintptr_t, 0), ('size', size_t, 8)])
|
|
@c.record
|
|
class struct_fastrpc_ioctl_munmap_64(c.Struct):
|
|
SIZE = 16
|
|
vaddrout: int
|
|
size: int
|
|
struct_fastrpc_ioctl_munmap_64.register_fields([('vaddrout', uint64_t, 0), ('size', size_t, 8)])
|
|
@c.record
|
|
class struct_fastrpc_ioctl_mmap(c.Struct):
|
|
SIZE = 32
|
|
fd: int
|
|
flags: int
|
|
vaddrin: int
|
|
size: int
|
|
vaddrout: int
|
|
struct_fastrpc_ioctl_mmap.register_fields([('fd', ctypes.c_int32, 0), ('flags', uint32_t, 4), ('vaddrin', uintptr_t, 8), ('size', size_t, 16), ('vaddrout', uintptr_t, 24)])
|
|
@c.record
|
|
class struct_fastrpc_ioctl_mmap_64(c.Struct):
|
|
SIZE = 32
|
|
fd: int
|
|
flags: int
|
|
vaddrin: int
|
|
size: int
|
|
vaddrout: int
|
|
struct_fastrpc_ioctl_mmap_64.register_fields([('fd', ctypes.c_int32, 0), ('flags', uint32_t, 4), ('vaddrin', uint64_t, 8), ('size', size_t, 16), ('vaddrout', uint64_t, 24)])
|
|
@c.record
|
|
class struct_fastrpc_ioctl_munmap_fd(c.Struct):
|
|
SIZE = 24
|
|
fd: int
|
|
flags: int
|
|
va: int
|
|
len: int
|
|
ssize_t: TypeAlias = ctypes.c_int64
|
|
struct_fastrpc_ioctl_munmap_fd.register_fields([('fd', ctypes.c_int32, 0), ('flags', uint32_t, 4), ('va', uintptr_t, 8), ('len', ssize_t, 16)])
|
|
@c.record
|
|
class struct_fastrpc_ioctl_perf(c.Struct):
|
|
SIZE = 24
|
|
data: int
|
|
numkeys: int
|
|
keys: int
|
|
struct_fastrpc_ioctl_perf.register_fields([('data', uintptr_t, 0), ('numkeys', uint32_t, 8), ('keys', uintptr_t, 16)])
|
|
@c.record
|
|
class struct_fastrpc_ctrl_latency(c.Struct):
|
|
SIZE = 8
|
|
enable: int
|
|
level: int
|
|
struct_fastrpc_ctrl_latency.register_fields([('enable', uint32_t, 0), ('level', uint32_t, 4)])
|
|
@c.record
|
|
class struct_fastrpc_ctrl_smmu(c.Struct):
|
|
SIZE = 4
|
|
sharedcb: int
|
|
struct_fastrpc_ctrl_smmu.register_fields([('sharedcb', uint32_t, 0)])
|
|
@c.record
|
|
class struct_fastrpc_ctrl_kalloc(c.Struct):
|
|
SIZE = 4
|
|
kalloc_support: int
|
|
struct_fastrpc_ctrl_kalloc.register_fields([('kalloc_support', uint32_t, 0)])
|
|
@c.record
|
|
class struct_fastrpc_ioctl_control(c.Struct):
|
|
SIZE = 12
|
|
req: int
|
|
lp: struct_fastrpc_ctrl_latency
|
|
smmu: struct_fastrpc_ctrl_smmu
|
|
kalloc: struct_fastrpc_ctrl_kalloc
|
|
struct_fastrpc_ioctl_control.register_fields([('req', uint32_t, 0), ('lp', struct_fastrpc_ctrl_latency, 4), ('smmu', struct_fastrpc_ctrl_smmu, 4), ('kalloc', struct_fastrpc_ctrl_kalloc, 4)])
|
|
@c.record
|
|
class struct_smq_null_invoke(c.Struct):
|
|
SIZE = 16
|
|
ctx: int
|
|
handle: int
|
|
sc: int
|
|
struct_smq_null_invoke.register_fields([('ctx', uint64_t, 0), ('handle', uint32_t, 8), ('sc', uint32_t, 12)])
|
|
@c.record
|
|
class struct_smq_phy_page(c.Struct):
|
|
SIZE = 16
|
|
addr: int
|
|
size: int
|
|
struct_smq_phy_page.register_fields([('addr', uint64_t, 0), ('size', uint64_t, 8)])
|
|
@c.record
|
|
class struct_smq_invoke_buf(c.Struct):
|
|
SIZE = 8
|
|
num: int
|
|
pgidx: int
|
|
struct_smq_invoke_buf.register_fields([('num', ctypes.c_int32, 0), ('pgidx', ctypes.c_int32, 4)])
|
|
@c.record
|
|
class struct_smq_invoke(c.Struct):
|
|
SIZE = 32
|
|
header: struct_smq_null_invoke
|
|
page: struct_smq_phy_page
|
|
struct_smq_invoke.register_fields([('header', struct_smq_null_invoke, 0), ('page', struct_smq_phy_page, 16)])
|
|
@c.record
|
|
class struct_smq_msg(c.Struct):
|
|
SIZE = 40
|
|
pid: int
|
|
tid: int
|
|
invoke: struct_smq_invoke
|
|
struct_smq_msg.register_fields([('pid', uint32_t, 0), ('tid', uint32_t, 4), ('invoke', struct_smq_invoke, 8)])
|
|
@c.record
|
|
class struct_smq_invoke_rsp(c.Struct):
|
|
SIZE = 16
|
|
ctx: int
|
|
retval: int
|
|
struct_smq_invoke_rsp.register_fields([('ctx', uint64_t, 0), ('retval', ctypes.c_int32, 8)])
|
|
remote_handle: TypeAlias = ctypes.c_uint32
|
|
remote_handle64: TypeAlias = ctypes.c_uint64
|
|
fastrpc_async_jobid: TypeAlias = ctypes.c_uint64
|
|
@c.record
|
|
class remote_buf(c.Struct):
|
|
SIZE = 16
|
|
pv: ctypes.c_void_p
|
|
nLen: int
|
|
remote_buf.register_fields([('pv', ctypes.c_void_p, 0), ('nLen', size_t, 8)])
|
|
@c.record
|
|
class remote_dma_handle(c.Struct):
|
|
SIZE = 8
|
|
fd: int
|
|
offset: int
|
|
remote_dma_handle.register_fields([('fd', int32_t, 0), ('offset', uint32_t, 4)])
|
|
@c.record
|
|
class remote_arg(c.Struct):
|
|
SIZE = 16
|
|
buf: remote_buf
|
|
h: int
|
|
h64: int
|
|
dma: remote_dma_handle
|
|
remote_arg.register_fields([('buf', remote_buf, 0), ('h', remote_handle, 0), ('h64', remote_handle64, 0), ('dma', remote_dma_handle, 0)])
|
|
enum_fastrpc_async_notify_type: dict[int, str] = {(FASTRPC_ASYNC_NO_SYNC:=0): 'FASTRPC_ASYNC_NO_SYNC', (FASTRPC_ASYNC_CALLBACK:=1): 'FASTRPC_ASYNC_CALLBACK', (FASTRPC_ASYNC_POLL:=2): 'FASTRPC_ASYNC_POLL', (FASTRPC_ASYNC_TYPE_MAX:=3): 'FASTRPC_ASYNC_TYPE_MAX'}
|
|
@c.record
|
|
class struct_fastrpc_async_callback(c.Struct):
|
|
SIZE = 16
|
|
fn: c.CFUNCTYPE[None, [ctypes.c_uint64, ctypes.c_void_p, ctypes.c_int32]]
|
|
context: ctypes.c_void_p
|
|
struct_fastrpc_async_callback.register_fields([('fn', c.CFUNCTYPE[None, [fastrpc_async_jobid, ctypes.c_void_p, ctypes.c_int32]], 0), ('context', ctypes.c_void_p, 8)])
|
|
fastrpc_async_callback_t: TypeAlias = struct_fastrpc_async_callback
|
|
@c.record
|
|
class struct_fastrpc_async_descriptor(c.Struct):
|
|
SIZE = 32
|
|
type: int
|
|
jobid: int
|
|
cb: struct_fastrpc_async_callback
|
|
struct_fastrpc_async_descriptor.register_fields([('type', ctypes.c_uint32, 0), ('jobid', fastrpc_async_jobid, 8), ('cb', fastrpc_async_callback_t, 16)])
|
|
fastrpc_async_descriptor_t: TypeAlias = struct_fastrpc_async_descriptor
|
|
enum_fastrpc_process_type: dict[int, str] = {(PROCESS_TYPE_SIGNED:=0): 'PROCESS_TYPE_SIGNED', (PROCESS_TYPE_UNSIGNED:=1): 'PROCESS_TYPE_UNSIGNED'}
|
|
enum_handle_control_req_id: dict[int, str] = {(DSPRPC_CONTROL_LATENCY:=1): 'DSPRPC_CONTROL_LATENCY', (DSPRPC_GET_DSP_INFO:=2): 'DSPRPC_GET_DSP_INFO', (DSPRPC_CONTROL_WAKELOCK:=3): 'DSPRPC_CONTROL_WAKELOCK', (DSPRPC_GET_DOMAIN:=4): 'DSPRPC_GET_DOMAIN'}
|
|
enum_remote_rpc_latency_flags: dict[int, str] = {(RPC_DISABLE_QOS:=0): 'RPC_DISABLE_QOS', (RPC_PM_QOS:=1): 'RPC_PM_QOS', (RPC_ADAPTIVE_QOS:=2): 'RPC_ADAPTIVE_QOS', (RPC_POLL_QOS:=3): 'RPC_POLL_QOS'}
|
|
remote_rpc_control_latency_t: TypeAlias = ctypes.c_uint32
|
|
@c.record
|
|
class struct_remote_rpc_control_latency(c.Struct):
|
|
SIZE = 8
|
|
enable: int
|
|
latency: int
|
|
struct_remote_rpc_control_latency.register_fields([('enable', remote_rpc_control_latency_t, 0), ('latency', uint32_t, 4)])
|
|
enum_remote_dsp_attributes: dict[int, str] = {(DOMAIN_SUPPORT:=0): 'DOMAIN_SUPPORT', (UNSIGNED_PD_SUPPORT:=1): 'UNSIGNED_PD_SUPPORT', (HVX_SUPPORT_64B:=2): 'HVX_SUPPORT_64B', (HVX_SUPPORT_128B:=3): 'HVX_SUPPORT_128B', (VTCM_PAGE:=4): 'VTCM_PAGE', (VTCM_COUNT:=5): 'VTCM_COUNT', (ARCH_VER:=6): 'ARCH_VER', (HMX_SUPPORT_DEPTH:=7): 'HMX_SUPPORT_DEPTH', (HMX_SUPPORT_SPATIAL:=8): 'HMX_SUPPORT_SPATIAL', (ASYNC_FASTRPC_SUPPORT:=9): 'ASYNC_FASTRPC_SUPPORT', (STATUS_NOTIFICATION_SUPPORT:=10): 'STATUS_NOTIFICATION_SUPPORT', (FASTRPC_MAX_DSP_ATTRIBUTES:=11): 'FASTRPC_MAX_DSP_ATTRIBUTES'}
|
|
@c.record
|
|
class struct_remote_dsp_capability(c.Struct):
|
|
SIZE = 12
|
|
domain: int
|
|
attribute_ID: int
|
|
capability: int
|
|
struct_remote_dsp_capability.register_fields([('domain', uint32_t, 0), ('attribute_ID', uint32_t, 4), ('capability', uint32_t, 8)])
|
|
fastrpc_capability: TypeAlias = struct_remote_dsp_capability
|
|
@c.record
|
|
class struct_remote_rpc_control_wakelock(c.Struct):
|
|
SIZE = 4
|
|
enable: int
|
|
struct_remote_rpc_control_wakelock.register_fields([('enable', uint32_t, 0)])
|
|
@c.record
|
|
class struct_remote_rpc_get_domain(c.Struct):
|
|
SIZE = 4
|
|
domain: int
|
|
struct_remote_rpc_get_domain.register_fields([('domain', ctypes.c_int32, 0)])
|
|
remote_rpc_get_domain_t: TypeAlias = struct_remote_rpc_get_domain
|
|
enum_session_control_req_id: dict[int, str] = {(FASTRPC_THREAD_PARAMS:=1): 'FASTRPC_THREAD_PARAMS', (DSPRPC_CONTROL_UNSIGNED_MODULE:=2): 'DSPRPC_CONTROL_UNSIGNED_MODULE', (FASTRPC_RELATIVE_THREAD_PRIORITY:=4): 'FASTRPC_RELATIVE_THREAD_PRIORITY', (FASTRPC_REMOTE_PROCESS_KILL:=6): 'FASTRPC_REMOTE_PROCESS_KILL', (FASTRPC_SESSION_CLOSE:=7): 'FASTRPC_SESSION_CLOSE', (FASTRPC_CONTROL_PD_DUMP:=8): 'FASTRPC_CONTROL_PD_DUMP', (FASTRPC_REMOTE_PROCESS_EXCEPTION:=9): 'FASTRPC_REMOTE_PROCESS_EXCEPTION', (FASTRPC_REMOTE_PROCESS_TYPE:=10): 'FASTRPC_REMOTE_PROCESS_TYPE', (FASTRPC_REGISTER_STATUS_NOTIFICATIONS:=11): 'FASTRPC_REGISTER_STATUS_NOTIFICATIONS'}
|
|
@c.record
|
|
class struct_remote_rpc_thread_params(c.Struct):
|
|
SIZE = 12
|
|
domain: int
|
|
prio: int
|
|
stack_size: int
|
|
struct_remote_rpc_thread_params.register_fields([('domain', ctypes.c_int32, 0), ('prio', ctypes.c_int32, 4), ('stack_size', ctypes.c_int32, 8)])
|
|
@c.record
|
|
class struct_remote_rpc_control_unsigned_module(c.Struct):
|
|
SIZE = 8
|
|
domain: int
|
|
enable: int
|
|
struct_remote_rpc_control_unsigned_module.register_fields([('domain', ctypes.c_int32, 0), ('enable', ctypes.c_int32, 4)])
|
|
@c.record
|
|
class struct_remote_rpc_relative_thread_priority(c.Struct):
|
|
SIZE = 8
|
|
domain: int
|
|
relative_thread_priority: int
|
|
struct_remote_rpc_relative_thread_priority.register_fields([('domain', ctypes.c_int32, 0), ('relative_thread_priority', ctypes.c_int32, 4)])
|
|
@c.record
|
|
class struct_remote_rpc_process_clean_params(c.Struct):
|
|
SIZE = 4
|
|
domain: int
|
|
struct_remote_rpc_process_clean_params.register_fields([('domain', ctypes.c_int32, 0)])
|
|
@c.record
|
|
class struct_remote_rpc_session_close(c.Struct):
|
|
SIZE = 4
|
|
domain: int
|
|
struct_remote_rpc_session_close.register_fields([('domain', ctypes.c_int32, 0)])
|
|
@c.record
|
|
class struct_remote_rpc_control_pd_dump(c.Struct):
|
|
SIZE = 8
|
|
domain: int
|
|
enable: int
|
|
struct_remote_rpc_control_pd_dump.register_fields([('domain', ctypes.c_int32, 0), ('enable', ctypes.c_int32, 4)])
|
|
@c.record
|
|
class struct_remote_process_type(c.Struct):
|
|
SIZE = 8
|
|
domain: int
|
|
process_type: int
|
|
struct_remote_process_type.register_fields([('domain', ctypes.c_int32, 0), ('process_type', ctypes.c_int32, 4)])
|
|
remote_rpc_process_exception: TypeAlias = struct_remote_rpc_process_clean_params
|
|
enum_remote_rpc_status_flags: dict[int, str] = {(FASTRPC_USER_PD_UP:=0): 'FASTRPC_USER_PD_UP', (FASTRPC_USER_PD_EXIT:=1): 'FASTRPC_USER_PD_EXIT', (FASTRPC_USER_PD_FORCE_KILL:=2): 'FASTRPC_USER_PD_FORCE_KILL', (FASTRPC_USER_PD_EXCEPTION:=3): 'FASTRPC_USER_PD_EXCEPTION', (FASTRPC_DSP_SSR:=4): 'FASTRPC_DSP_SSR'}
|
|
remote_rpc_status_flags_t: TypeAlias = ctypes.c_uint32
|
|
fastrpc_notif_fn_t: TypeAlias = c.CFUNCTYPE[ctypes.c_int32, [ctypes.c_void_p, ctypes.c_int32, ctypes.c_int32, ctypes.c_uint32]]
|
|
@c.record
|
|
class struct_remote_rpc_notif_register(c.Struct):
|
|
SIZE = 24
|
|
context: ctypes.c_void_p
|
|
domain: int
|
|
notifier_fn: c.CFUNCTYPE[ctypes.c_int32, [ctypes.c_void_p, ctypes.c_int32, ctypes.c_int32, ctypes.c_uint32]]
|
|
struct_remote_rpc_notif_register.register_fields([('context', ctypes.c_void_p, 0), ('domain', ctypes.c_int32, 8), ('notifier_fn', fastrpc_notif_fn_t, 16)])
|
|
remote_rpc_notif_register_t: TypeAlias = struct_remote_rpc_notif_register
|
|
enum_remote_mem_map_flags: dict[int, str] = {(REMOTE_MAP_MEM_STATIC:=0): 'REMOTE_MAP_MEM_STATIC', (REMOTE_MAP_MAX_FLAG:=1): 'REMOTE_MAP_MAX_FLAG'}
|
|
enum_remote_buf_attributes: dict[int, str] = {(FASTRPC_ATTR_NON_COHERENT:=2): 'FASTRPC_ATTR_NON_COHERENT', (FASTRPC_ATTR_COHERENT:=4): 'FASTRPC_ATTR_COHERENT', (FASTRPC_ATTR_KEEP_MAP:=8): 'FASTRPC_ATTR_KEEP_MAP', (FASTRPC_ATTR_NOMAP:=16): 'FASTRPC_ATTR_NOMAP', (FASTRPC_ATTR_FORCE_NOFLUSH:=32): 'FASTRPC_ATTR_FORCE_NOFLUSH', (FASTRPC_ATTR_FORCE_NOINVALIDATE:=64): 'FASTRPC_ATTR_FORCE_NOINVALIDATE', (FASTRPC_ATTR_TRY_MAP_STATIC:=128): 'FASTRPC_ATTR_TRY_MAP_STATIC'}
|
|
enum_fastrpc_map_flags: dict[int, str] = {(FASTRPC_MAP_STATIC:=0): 'FASTRPC_MAP_STATIC', (FASTRPC_MAP_RESERVED:=1): 'FASTRPC_MAP_RESERVED', (FASTRPC_MAP_FD:=2): 'FASTRPC_MAP_FD', (FASTRPC_MAP_FD_DELAYED:=3): 'FASTRPC_MAP_FD_DELAYED', (FASTRPC_MAP_MAX:=4): 'FASTRPC_MAP_MAX'}
|
|
@c.record
|
|
class struct__cstring1_s(c.Struct):
|
|
SIZE = 16
|
|
data: c.POINTER[ctypes.c_char]
|
|
dataLen: int
|
|
struct__cstring1_s.register_fields([('data', c.POINTER[ctypes.c_char], 0), ('dataLen', ctypes.c_int32, 8)])
|
|
_cstring1_t: TypeAlias = struct__cstring1_s
|
|
apps_std_FILE: TypeAlias = ctypes.c_int32
|
|
enum_apps_std_SEEK: dict[int, str] = {(APPS_STD_SEEK_SET:=0): 'APPS_STD_SEEK_SET', (APPS_STD_SEEK_CUR:=1): 'APPS_STD_SEEK_CUR', (APPS_STD_SEEK_END:=2): 'APPS_STD_SEEK_END', (_32BIT_PLACEHOLDER_apps_std_SEEK:=2147483647): '_32BIT_PLACEHOLDER_apps_std_SEEK'}
|
|
apps_std_SEEK: TypeAlias = ctypes.c_uint32
|
|
@c.record
|
|
class struct_apps_std_DIR(c.Struct):
|
|
SIZE = 8
|
|
handle: int
|
|
uint64: TypeAlias = ctypes.c_uint64
|
|
struct_apps_std_DIR.register_fields([('handle', uint64, 0)])
|
|
apps_std_DIR: TypeAlias = struct_apps_std_DIR
|
|
@c.record
|
|
class struct_apps_std_DIRENT(c.Struct):
|
|
SIZE = 260
|
|
ino: int
|
|
name: c.Array[ctypes.c_char, Literal[255]]
|
|
struct_apps_std_DIRENT.register_fields([('ino', ctypes.c_int32, 0), ('name', c.Array[ctypes.c_char, Literal[255]], 4)])
|
|
apps_std_DIRENT: TypeAlias = struct_apps_std_DIRENT
|
|
@c.record
|
|
class struct_apps_std_STAT(c.Struct):
|
|
SIZE = 96
|
|
tsz: int
|
|
dev: int
|
|
ino: int
|
|
mode: int
|
|
nlink: int
|
|
rdev: int
|
|
size: int
|
|
atime: int
|
|
atimensec: int
|
|
mtime: int
|
|
mtimensec: int
|
|
ctime: int
|
|
ctimensec: int
|
|
uint32: TypeAlias = ctypes.c_uint32
|
|
int64: TypeAlias = ctypes.c_int64
|
|
struct_apps_std_STAT.register_fields([('tsz', uint64, 0), ('dev', uint64, 8), ('ino', uint64, 16), ('mode', uint32, 24), ('nlink', uint32, 28), ('rdev', uint64, 32), ('size', uint64, 40), ('atime', int64, 48), ('atimensec', int64, 56), ('mtime', int64, 64), ('mtimensec', int64, 72), ('ctime', int64, 80), ('ctimensec', int64, 88)])
|
|
apps_std_STAT: TypeAlias = struct_apps_std_STAT
|
|
ION_HEAP_SYSTEM_MASK = ((1 << ION_HEAP_TYPE_SYSTEM))
|
|
ION_HEAP_SYSTEM_CONTIG_MASK = ((1 << ION_HEAP_TYPE_SYSTEM_CONTIG))
|
|
ION_HEAP_CARVEOUT_MASK = ((1 << ION_HEAP_TYPE_CARVEOUT))
|
|
ION_HEAP_TYPE_DMA_MASK = ((1 << ION_HEAP_TYPE_DMA))
|
|
ION_FLAG_CACHED = 1
|
|
ION_FLAG_CACHED_NEEDS_SYNC = 2
|
|
ION_IOC_MAGIC = 'I'
|
|
ION_IOC_ALLOC = _IOWR(ION_IOC_MAGIC, 0, struct_ion_allocation_data)
|
|
ION_IOC_FREE = _IOWR(ION_IOC_MAGIC, 1, struct_ion_handle_data)
|
|
ION_IOC_MAP = _IOWR(ION_IOC_MAGIC, 2, struct_ion_fd_data)
|
|
ION_IOC_SHARE = _IOWR(ION_IOC_MAGIC, 4, struct_ion_fd_data)
|
|
ION_IOC_IMPORT = _IOWR(ION_IOC_MAGIC, 5, struct_ion_fd_data)
|
|
ION_IOC_SYNC = _IOWR(ION_IOC_MAGIC, 7, struct_ion_fd_data)
|
|
ION_IOC_CUSTOM = _IOWR(ION_IOC_MAGIC, 6, struct_ion_custom_data)
|
|
ION_IOMMU_HEAP_ID = ION_SYSTEM_HEAP_ID
|
|
ION_HEAP_TYPE_IOMMU = ION_HEAP_TYPE_SYSTEM
|
|
ION_FLAG_CP_TOUCH = (1 << 17)
|
|
ION_FLAG_CP_BITSTREAM = (1 << 18)
|
|
ION_FLAG_CP_PIXEL = (1 << 19)
|
|
ION_FLAG_CP_NON_PIXEL = (1 << 20)
|
|
ION_FLAG_CP_CAMERA = (1 << 21)
|
|
ION_FLAG_CP_HLOS = (1 << 22)
|
|
ION_FLAG_CP_HLOS_FREE = (1 << 23)
|
|
ION_FLAG_CP_SEC_DISPLAY = (1 << 25)
|
|
ION_FLAG_CP_APP = (1 << 26)
|
|
ION_FLAG_ALLOW_NON_CONTIG = (1 << 24)
|
|
ION_FLAG_SECURE = (1 << ION_HEAP_ID_RESERVED)
|
|
ION_FLAG_FORCE_CONTIGUOUS = (1 << 30)
|
|
ION_FLAG_POOL_FORCE_ALLOC = (1 << 16)
|
|
ION_FLAG_POOL_PREFETCH = (1 << 27)
|
|
ION_SECURE = ION_FLAG_SECURE
|
|
ION_FORCE_CONTIGUOUS = ION_FLAG_FORCE_CONTIGUOUS
|
|
ION_HEAP = lambda bit: (1 << (bit)) # type: ignore
|
|
ION_ADSP_HEAP_NAME = "adsp"
|
|
ION_SYSTEM_HEAP_NAME = "system"
|
|
ION_VMALLOC_HEAP_NAME = ION_SYSTEM_HEAP_NAME
|
|
ION_KMALLOC_HEAP_NAME = "kmalloc"
|
|
ION_AUDIO_HEAP_NAME = "audio"
|
|
ION_SF_HEAP_NAME = "sf"
|
|
ION_MM_HEAP_NAME = "mm"
|
|
ION_CAMERA_HEAP_NAME = "camera_preview"
|
|
ION_IOMMU_HEAP_NAME = "iommu"
|
|
ION_MFC_HEAP_NAME = "mfc"
|
|
ION_WB_HEAP_NAME = "wb"
|
|
ION_MM_FIRMWARE_HEAP_NAME = "mm_fw"
|
|
ION_PIL1_HEAP_NAME = "pil_1"
|
|
ION_PIL2_HEAP_NAME = "pil_2"
|
|
ION_QSECOM_HEAP_NAME = "qsecom"
|
|
ION_SECURE_HEAP_NAME = "secure_heap"
|
|
ION_SECURE_DISPLAY_HEAP_NAME = "secure_display"
|
|
ION_SET_CACHED = lambda __cache: (__cache | ION_FLAG_CACHED) # type: ignore
|
|
ION_SET_UNCACHED = lambda __cache: (__cache & ~ION_FLAG_CACHED) # type: ignore
|
|
ION_IS_CACHED = lambda __flags: ((__flags) & ION_FLAG_CACHED) # type: ignore
|
|
ION_IOC_MSM_MAGIC = 'M'
|
|
ION_IOC_CLEAN_CACHES = _IOWR(ION_IOC_MSM_MAGIC, 0, struct_ion_flush_data)
|
|
ION_IOC_INV_CACHES = _IOWR(ION_IOC_MSM_MAGIC, 1, struct_ion_flush_data)
|
|
ION_IOC_CLEAN_INV_CACHES = _IOWR(ION_IOC_MSM_MAGIC, 2, struct_ion_flush_data)
|
|
ION_IOC_PREFETCH = _IOWR(ION_IOC_MSM_MAGIC, 3, struct_ion_prefetch_data)
|
|
ION_IOC_DRAIN = _IOWR(ION_IOC_MSM_MAGIC, 4, struct_ion_prefetch_data)
|
|
FASTRPC_IOCTL_INVOKE = _IOWR('R', 1, struct_fastrpc_ioctl_invoke)
|
|
FASTRPC_IOCTL_MMAP = _IOWR('R', 2, struct_fastrpc_ioctl_mmap)
|
|
FASTRPC_IOCTL_MUNMAP = _IOWR('R', 3, struct_fastrpc_ioctl_munmap)
|
|
FASTRPC_IOCTL_MMAP_64 = _IOWR('R', 14, struct_fastrpc_ioctl_mmap_64)
|
|
FASTRPC_IOCTL_MUNMAP_64 = _IOWR('R', 15, struct_fastrpc_ioctl_munmap_64)
|
|
FASTRPC_IOCTL_INVOKE_FD = _IOWR('R', 4, struct_fastrpc_ioctl_invoke_fd)
|
|
FASTRPC_IOCTL_SETMODE = _IOWR('R', 5, uint32_t)
|
|
FASTRPC_IOCTL_INIT = _IOWR('R', 6, struct_fastrpc_ioctl_init)
|
|
FASTRPC_IOCTL_INVOKE_ATTRS = _IOWR('R', 7, struct_fastrpc_ioctl_invoke_attrs)
|
|
FASTRPC_IOCTL_GETINFO = _IOWR('R', 8, uint32_t)
|
|
FASTRPC_IOCTL_GETPERF = _IOWR('R', 9, struct_fastrpc_ioctl_perf)
|
|
FASTRPC_IOCTL_INIT_ATTRS = _IOWR('R', 10, struct_fastrpc_ioctl_init_attrs)
|
|
FASTRPC_IOCTL_INVOKE_CRC = _IOWR('R', 11, struct_fastrpc_ioctl_invoke_crc)
|
|
FASTRPC_IOCTL_CONTROL = _IOWR('R', 12, struct_fastrpc_ioctl_control)
|
|
FASTRPC_IOCTL_MUNMAP_FD = _IOWR('R', 13, struct_fastrpc_ioctl_munmap_fd)
|
|
FASTRPC_GLINK_GUID = "fastrpcglink-apps-dsp"
|
|
FASTRPC_SMD_GUID = "fastrpcsmd-apps-dsp"
|
|
DEVICE_NAME = "adsprpc-smd"
|
|
FASTRPC_ATTR_NOVA = 0x1
|
|
FASTRPC_ATTR_NON_COHERENT = 0x2
|
|
FASTRPC_ATTR_COHERENT = 0x4
|
|
FASTRPC_ATTR_KEEP_MAP = 0x8
|
|
FASTRPC_ATTR_NOMAP = (16)
|
|
FASTRPC_MODE_PARALLEL = 0
|
|
FASTRPC_MODE_SERIAL = 1
|
|
FASTRPC_MODE_PROFILE = 2
|
|
FASTRPC_MODE_SESSION = 4
|
|
FASTRPC_INIT_ATTACH = 0
|
|
FASTRPC_INIT_CREATE = 1
|
|
FASTRPC_INIT_CREATE_STATIC = 2
|
|
FASTRPC_INIT_ATTACH_SENSORS = 3
|
|
REMOTE_SCALARS_INBUFS = lambda sc: (((sc) >> 16) & 0x0ff) # type: ignore
|
|
REMOTE_SCALARS_OUTBUFS = lambda sc: (((sc) >> 8) & 0x0ff) # type: ignore
|
|
REMOTE_SCALARS_INHANDLES = lambda sc: (((sc) >> 4) & 0x0f) # type: ignore
|
|
REMOTE_SCALARS_OUTHANDLES = lambda sc: ((sc) & 0x0f) # type: ignore
|
|
REMOTE_SCALARS_LENGTH = lambda sc: (REMOTE_SCALARS_INBUFS(sc) + REMOTE_SCALARS_OUTBUFS(sc) + REMOTE_SCALARS_INHANDLES(sc) + REMOTE_SCALARS_OUTHANDLES(sc)) # type: ignore
|
|
__TOSTR__ = lambda x: __STR__(x) # type: ignore
|
|
remote_arg64_t = union_remote_arg64
|
|
remote_arg_t = union_remote_arg
|
|
FASTRPC_CONTROL_LATENCY = (1)
|
|
FASTRPC_CONTROL_SMMU = (2)
|
|
FASTRPC_CONTROL_KALLOC = (3)
|
|
REMOTE_SCALARS_METHOD_ATTR = lambda dwScalars: (((dwScalars) >> 29) & 0x7) # type: ignore
|
|
REMOTE_SCALARS_METHOD = lambda dwScalars: (((dwScalars) >> 24) & 0x1f) # type: ignore
|
|
REMOTE_SCALARS_INBUFS = lambda dwScalars: (((dwScalars) >> 16) & 0x0ff) # type: ignore
|
|
REMOTE_SCALARS_OUTBUFS = lambda dwScalars: (((dwScalars) >> 8) & 0x0ff) # type: ignore
|
|
REMOTE_SCALARS_INHANDLES = lambda dwScalars: (((dwScalars) >> 4) & 0x0f) # type: ignore
|
|
REMOTE_SCALARS_OUTHANDLES = lambda dwScalars: ((dwScalars) & 0x0f) # type: ignore
|
|
REMOTE_SCALARS_MAKEX = lambda nAttr,nMethod,nIn,nOut,noIn,noOut: ((((uint32_t) (nAttr) & 0x7) << 29) | (((uint32_t) (nMethod) & 0x1f) << 24) | (((uint32_t) (nIn) & 0xff) << 16) | (((uint32_t) (nOut) & 0xff) << 8) | (((uint32_t) (noIn) & 0x0f) << 4) | ((uint32_t) (noOut) & 0x0f)) # type: ignore
|
|
REMOTE_SCALARS_MAKE = lambda nMethod,nIn,nOut: REMOTE_SCALARS_MAKEX(0,nMethod,nIn,nOut,0,0) # type: ignore
|
|
REMOTE_SCALARS_LENGTH = lambda sc: (REMOTE_SCALARS_INBUFS(sc) + REMOTE_SCALARS_OUTBUFS(sc) + REMOTE_SCALARS_INHANDLES(sc) + REMOTE_SCALARS_OUTHANDLES(sc)) # type: ignore
|
|
__QAIC_REMOTE = lambda ff: ff # type: ignore
|
|
NUM_DOMAINS = 4
|
|
NUM_SESSIONS = 2
|
|
DOMAIN_ID_MASK = 3
|
|
DEFAULT_DOMAIN_ID = 0
|
|
ADSP_DOMAIN_ID = 0
|
|
MDSP_DOMAIN_ID = 1
|
|
SDSP_DOMAIN_ID = 2
|
|
CDSP_DOMAIN_ID = 3
|
|
ADSP_DOMAIN = "&_dom=adsp"
|
|
MDSP_DOMAIN = "&_dom=mdsp"
|
|
SDSP_DOMAIN = "&_dom=sdsp"
|
|
CDSP_DOMAIN = "&_dom=cdsp"
|
|
FASTRPC_WAKELOCK_CONTROL_SUPPORTED = 1
|
|
REMOTE_MODE_PARALLEL = 0
|
|
REMOTE_MODE_SERIAL = 1
|
|
ITRANSPORT_PREFIX = "'\":;./\\"
|
|
__QAIC_HEADER = lambda ff: ff # type: ignore
|
|
__QAIC_IMPL = lambda ff: ff # type: ignore |