Files
StarPilot/tinygrad_repo/tinygrad/runtime/autogen/llvm_qcom.py
T
firestar5683 22a8575199 Vendor dependencies and resources for standalone builds
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.
2026-10-03 21:01:18 +00:00

104 lines
5.3 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
dll = c.DLL('llvm_qcom', 'llvm-qcom')
cl_llvm_instance: TypeAlias = ctypes.c_void_p
@dll.bind(cl_llvm_instance)
def cl_compiler_create_llvm_instance() -> cl_llvm_instance: ...
@dll.bind(None, cl_llvm_instance)
def cl_compiler_destroy_llvm_instance(inst:cl_llvm_instance) -> None: ...
enum_cl_handle_type: dict[int, str] = {(CL_HANDLE_COMPILED:=1): 'CL_HANDLE_COMPILED', (CL_HANDLE_LIBRARY:=2): 'CL_HANDLE_LIBRARY', (CL_HANDLE_LINKED:=3): 'CL_HANDLE_LINKED'}
@c.record
class struct_cl_compiled_data(c.Struct):
SIZE = 48
chip_id: int
mode: int
llvm_bitcode: ctypes.c_void_p
llvm_bitcode_size: int
build_log: c.POINTER[ctypes.c_char]
build_log_len: int
error_code: int
uint64_t: TypeAlias = ctypes.c_uint64
uint32_t: TypeAlias = ctypes.c_uint32
struct_cl_compiled_data.register_fields([('chip_id', uint64_t, 0), ('mode', uint32_t, 8), ('llvm_bitcode', ctypes.c_void_p, 16), ('llvm_bitcode_size', uint64_t, 24), ('build_log', c.POINTER[ctypes.c_char], 32), ('build_log_len', uint32_t, 40), ('error_code', uint32_t, 44)])
@c.record
class struct_cl_executable_data(c.Struct):
SIZE = 80
num_kernels: int
kernel_props: ctypes.c_void_p
error_code: int
build_log: c.POINTER[ctypes.c_char]
_unk0: c.Array[ctypes.c_char, Literal[32]]
chip_id: int
mode: int
int32_t: TypeAlias = ctypes.c_int32
struct_cl_executable_data.register_fields([('num_kernels', int32_t, 0), ('kernel_props', ctypes.c_void_p, 8), ('error_code', uint32_t, 16), ('build_log', c.POINTER[ctypes.c_char], 24), ('_unk0', c.Array[ctypes.c_char, Literal[32]], 32), ('chip_id', uint64_t, 64), ('mode', uint32_t, 72)])
@c.record
class cl_handle(c.Struct):
SIZE = 16
type: int
compiled: c.POINTER[struct_cl_compiled_data]
executable: c.POINTER[struct_cl_executable_data]
cl_handle.register_fields([('type', ctypes.c_uint32, 0), ('compiled', c.POINTER[struct_cl_compiled_data], 8), ('executable', c.POINTER[struct_cl_executable_data], 8)])
@dll.bind(c.POINTER[cl_handle], cl_llvm_instance, uint64_t, ctypes.c_int32, c.POINTER[ctypes.c_char], ctypes.c_int32, uint64_t, uint64_t, c.POINTER[ctypes.c_char], uint64_t, uint64_t, ctypes.c_void_p)
def cl_compiler_compile_source(inst:cl_llvm_instance, chip_id:uint64_t, mode:int, options:c.POINTER[ctypes.c_char], p5:int, p6:uint64_t, p7:uint64_t, source:c.POINTER[ctypes.c_char], source_len:uint64_t, source_type:uint64_t, p11:ctypes.c_void_p) -> c.POINTER[cl_handle]: ...
@dll.bind(c.POINTER[cl_handle], cl_llvm_instance, uint64_t, ctypes.c_int32, c.POINTER[ctypes.c_char], ctypes.c_int32, c.POINTER[c.POINTER[cl_handle]])
def cl_compiler_link_program(inst:cl_llvm_instance, chip_id:uint64_t, mode:int, options:c.POINTER[ctypes.c_char], num_handles:int, input_handles:c.POINTER[c.POINTER[cl_handle]]) -> c.POINTER[cl_handle]: ...
size_t: TypeAlias = ctypes.c_uint64
@dll.bind(None, c.POINTER[cl_handle], c.POINTER[ctypes.c_void_p], c.POINTER[size_t])
def cl_compiler_handle_create_binary(handle:c.POINTER[cl_handle], out_ptr:c.POINTER[ctypes.c_void_p], out_size:c.POINTER[size_t]) -> None: ...
@c.record
class cl_lib_section(c.Struct):
SIZE = 20
id: int
offset: int
size: int
count: int
entry_size: int
cl_lib_section.register_fields([('id', uint32_t, 0), ('offset', uint32_t, 4), ('size', uint32_t, 8), ('count', uint32_t, 12), ('entry_size', uint32_t, 16)])
@c.record
class cl_lib_header(c.Struct):
SIZE = 48
_unk0: c.Array[ctypes.c_uint32, Literal[6]]
num_sections: int
_unk1: c.Array[ctypes.c_uint32, Literal[5]]
sections: c.Array[cl_lib_section, Literal[0]]
cl_lib_header.register_fields([('_unk0', c.Array[uint32_t, Literal[6]], 0), ('num_sections', uint32_t, 24), ('_unk1', c.Array[uint32_t, Literal[5]], 28), ('sections', c.Array[cl_lib_section, Literal[0]], 48)])
@c.record
class cl_lib_prog(c.Struct):
SIZE = 28
name: c.Array[ctypes.c_char, Literal[8]]
_unk0: c.Array[ctypes.c_uint32, Literal[3]]
fregs: int
hregs: int
cl_lib_prog.register_fields([('name', c.Array[ctypes.c_char, Literal[8]], 0), ('_unk0', c.Array[uint32_t, Literal[3]], 8), ('fregs', uint32_t, 20), ('hregs', uint32_t, 24)])
@c.record
class cl_lib_img_desc(c.Struct):
SIZE = 344
_unk0: c.Array[ctypes.c_char, Literal[196]]
prg_offset: int
pvtmem: int
_unk1: c.Array[ctypes.c_char, Literal[12]]
shmem: int
samp_cnt: int
_unk2: c.Array[ctypes.c_char, Literal[40]]
brnchstck: int
_unk4: c.Array[ctypes.c_char, Literal[76]]
kernel_name: c.Array[ctypes.c_char, Literal[0]]
cl_lib_img_desc.register_fields([('_unk0', c.Array[ctypes.c_char, Literal[196]], 0), ('prg_offset', uint32_t, 196), ('pvtmem', uint32_t, 200), ('_unk1', c.Array[ctypes.c_char, Literal[12]], 204), ('shmem', uint32_t, 216), ('samp_cnt', uint32_t, 220), ('_unk2', c.Array[ctypes.c_char, Literal[40]], 224), ('brnchstck', uint32_t, 264), ('_unk4', c.Array[ctypes.c_char, Literal[76]], 268), ('kernel_name', c.Array[ctypes.c_char, Literal[0]], 344)])
@dll.bind(None, c.POINTER[cl_handle])
def cl_compiler_free_handle(handle:c.POINTER[cl_handle]) -> None: ...
@dll.bind(None, ctypes.c_void_p)
def cl_compiler_free_assembly(ptr:ctypes.c_void_p) -> None: ...
CL_MODE_32BIT = 0
CL_MODE_64BIT = 1
CL_SRC_STR = 0
CL_SRC_BLOB = 1
CL_LIB_PROGRAM = 0
CL_LIB_CONSTS = 6
CL_LIB_IMAGE = 7
CL_LIB_CODE = 10
CL_LIB_IMAGE_DESC = 11